一种针对RISC-V处理器的NTRU优化实现方法与流程

未命名 09-23 阅读:265 评论:0

一种针对risc-v处理器的ntru优化实现方法
技术领域
1.本发明涉及电力技术领域,具体为一种针对risc-v处理器的ntru优化实现方法。


背景技术:

2.后量子密码算法利用了比传统公钥密码算法更复杂的数学困难问题,可以有效抵后量子计算带来的威胁;然而,后量子密码算法所提供的密钥交换协议和数字签名协议占用空间大,难以直接部署到资源受限的物联网设备中,如无线传感器网络中常用的8-bit处理器,其rom空间为128kb左右,还需要部署操作系统和大量的业务逻辑,留给密码算法的空间十分有限,在此类处理器上部署后量子密码十分困难,如无线传感器网络中常用的8-bit处理器,其rom空间为128kb左右,还需要部署操作系统和大量的业务逻辑,留给密码算法的空间十分有限,在此类处理器上部署后量子密码十分困难。此外,大多数物联网应用都非常强调运行效率,如智能家居及可穿戴设备上常用arm cortex-m系列处理器(如cortex-m0、cortex-m3等),其主频通常在32mhz~120mhz左右,在该场景下,密码算法的延时对用户感知的影响较大,在使用后量子密码算法为物联网应用提供安全保障的同时,需要大力提升后量子密码算法的运行效率,为物联网用户提供良好的使用体验。
3.当前,后量子密码算法在资源受限的物联网嵌入式设备上的相关适配性、性能优化以及内存优化研究不够充分;现有的技术方案大多使用ntt算法来加速算法中多项式乘法的运算速度,这虽然能够降低运算的时间复杂度,但是会大幅度增加算法指令周期,拖慢算法的运行效率,为此我们提出一种针对risc-v处理器的ntru优化实现方法用于解决上述问题。


技术实现要素:

4.本发明的目的是进行ntru算法在risc-v 32bit处理器上的优化实现,给后量子密码算法在资源受限的物联网嵌入式设备上的相关适配性、性能优化以及内存优化研究不够充分的问题提供一个解决方案;ntru与其他后量子密码算法相比,拥有相对较短并且容易产生的密钥、算法的运算速度快、所需的存储空间小的特点;ntru的主要算术运算是将438次多项式(与ntru的128位安全等级对应)与小系数相乘,这显然比对3072位(与rsa的128位安全等级对应)整数执行的模幂运算或256位椭圆曲线组中的标量乘法成本更低;这一特性使ntru非常适合于多种资源受限的设备,例如智能卡、无线传感器节点和rfid设备。
5.在ntru算法加解密的过程中,多项式乘法运算对算法的性能和内存占用影响最大;针对在嵌入式平台上实现后量子密码算法需要兼顾空间占用和性能优化的需求,本发明在risc-v平台上为ntru适配恒定时间的稀疏多项式乘法算法的汇编实现,减少了加解密过程中的循环次数,在保证安全性和算法性能的同时,减少了运算过程中乘法指令的使用次数。
6.为实现上述目的,本发明提供如下技术方案:一种针对risc-v处理器的ntru优化实现方法,包括临时寄存器gp、指针寄存器tp、若干个暂存寄存器s和ntru算法,步骤如下:
7.s1、将ntru算法中的多项式乘法运算改写为卷积运算,所述卷积运算由若干因式卷积得到,所述因式中至少有一个稀疏多项式;
8.s2、通过对稀疏多项式预处理,将包含n个系数的稀疏多项式转化为存储稀疏多项式中非零系数索引的数组v(x);
9.s3、对存储稀疏多项式中非零系数索引的数组v(x)进行预计算,将预计算得到多项式地址临时存放至临时寄存器gp中;
10.s4、在进行完预计算后,使用若干因式进行卷积运算,即完成算法的优化,卷积运算是由一个外循环和两个内循环循环嵌套组成;
11.s41、外循环,将未改写前ntru算法中多项式系数进行迭代,每次迭代计算出未改写前ntru算法中的若干多项式系数;
12.s42、通过两个内循环分别对计算出的若干多项式系数,进行若干次的加减法运算。
13.优选的,s1至s3具体步骤如下:
14.s11、改写之后的ntru算法可以表示为n次多项式数组h(x)与稀疏多项式数组r(x)卷积运算;
15.s21、对稀疏多项式数组r(x)进行遍历,记稀疏多项式r(x)中系数为1的数量为n,-1的数量为m,通过n+m的值确定存储稀疏多项式中非零系数索引v(x)的大小;
16.s22、再次对数组r(x)进行遍历,当遍历到数组r(j)=1时,将此时的索引j的值从v(0)开始按顺序记录;当遍历到数组r(j)=-1,将此时的索引j的值从v(x)开始按顺序记录;
17.s31、提取数组v(x)中记录的索引j,将索引j乘以2以获得字节偏移量,并于此时h(n)的地址进行减法运算,获得h(n-j)的地址,该地址信息位32位;
18.s32、将运算得到的32位地址信息存入到临时寄存器gp中。
19.优选的,s4具体步骤如下:
20.s411、未改写前的ntru算法中的多项式系数记为数组w(x),计算出数组w(x)的8个系数wk,w
k+1
,...,w
k+7
,首次计算从w(x)中最小角标系数w0开始;
21.s412、当计算wk索引j的值为0时,临时寄存器gp存入的是h(0)的地址;
22.s413、当计算wk索引j的值不为0时,临时寄存器gp存入的是h(n-j+k)的地址;
23.s414、步骤s411至s413循环执行ceil((n+7)/8)次;
24.s421、第一个内循环迭代a次,进行每迭代循环8次,每次循环对wk,w
k+1
,...,w
k+7
其中一个系数进行加法运算;
25.s422、第二个内循环迭代b次进行每迭代循环8次,每次循环对wk,w
k+1
,...,w
k+7
其中一个系数进行减法运算;
26.其中,a+b=n。
27.优选的,第一个内循环包括如下步骤:
28.s4211、从临时寄存器gp中取出索引为j的h(n-j+k)地址,并将该地址存放至指针寄存器tp中;
29.s4212、根据指针寄存器tp中存放索引为j的h(n-j+k)地址取出n次多项式数组h(n-j+k)的值,并将系数wk与取出的h(n-j+k)值相加,并将相加结果存入到其中一个暂存寄存器s中;
30.s4213、在指针寄存器tp中移向下一个地址,得到n次多项式数组下一个h(n-j+k+1)值的地址,为下次内循环与w
k+1
计算调用做好准备,若下一个地址超出h(n)的地址范围,将该地址减去2n个字节偏移量;
31.s4214、步骤s4213中得到的将n次多项式数组中h(n-j+k+1)值的地址存放到临时寄存器gp中。
32.优选的,第二个内循环包括如下步骤:
33.s4221、从临时寄存器gp中取出索引为j的h(n-j+k)地址,并将该地址存放至指针寄存器tp中;
34.s4222、根据指针寄存器tp中存放索引为j的h(n-j+k)地址取出n次多项式数组h(n-j+k)的值,并将系数wk与取出的h(n-j+k)值相减;
35.s4223、在指针寄存器tp中移向下一个地址,得到n次多项式数组下一个h(n-j+k+1)值的地址,为下次内循环与w
k+1
计算调用做好准备,若下一个地址超出h(n)的地址范围,将该地址减去2n个字节偏移量;
36.s4224、步骤s4223中得到的将n次多项式数组中h(n-j+k+1)值的地址存放到临时寄存器gp中。
37.优选的,外循环进行ceil((n+7)/8)次迭代,由每个内循环都需要读取外循环输出的8个系数wk,w
k+1
,...,w
k+7
,每次循环需要取出8个系数对应的h(x)值的地址,存入到时指针寄存器tp,当外循环迭代一定次数的时候,指针寄存器tp存储的n次多项式数组h(j)的地址都会移动到指向h(n)值的地址,此时将指针寄存器tp存储的h(j)地址移回h(0)值的地址,再以h(0)值的地址为起点进行移动。
38.优选的,将原由n位多项式数组h(x)扩展到n+7位,其中,h(0)为h(n)赋值、h(1)为h(n+1)赋值,依此类推,直到h(n+7)被赋予h(7)的值。
39.优选的,wk的计算方式如下:
40.wk=∑
r(j)=1
h(n-j+k)-∑
r(j)=-1
h(n-j+k)
41.其中,j为wk对应稀疏多项式中非零系数的索引,∑
r(j)=1
h(n-j+k)表示数组r(j)中数值为1对应的h(n-j+k)值的累加,∑
r(j)=-1
h(n-j+k)表示数组r(j)中数值为-1对应的h(n-j+k)值的累加。
42.与现有技术相比,本发明的有益效果是:
43.第一、利用稀疏多项式乘法替代ntt算法或是传统的karatsuba算法,将运算过程中会占用大量指令周期的乘法指令替换成加法指令,提高了流水线的吞吐率,提高算法的运行效率。
44.第二、针对risc-v平台设计稀疏多项式乘法的汇编实现,利用汇编实现能够充分利用平台各个寄存器的特点,优化运算计算过程,提高算法的运行效率。
45.第三、通过设计恒定时间的优化实现,避免攻击者利用执行时间信息来破解密码算法,提高了算法的可靠性。
附图说明
46.图1为本发明流程示意图;
47.图2为本发明预处理原理示意图;
48.图3为本发明预计算原理示意图;
49.图4为本发明内循环原理示意图。
具体实施方式
50.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
51.ntru算法是基于多项式乘法运算,由于n次截断多项式环的特性,ntru算法中的多项式乘法运算可以改写为卷积运算。
52.具体的,假设n次截断多项式环r中的两个元素a(x)、b(x),其中n=5,则a(x)=a4x4+a3x3+a2x2+a1x1+a0x0,b(x)=b4x4+b3x3+b2x2+b1x1+b0x0,用常用的多项式乘法schoolbook乘法算法进行运算,但这里需要注意的是a(x)、b(x)属于环上的元素,在运算过程中会进行模x
n-1操作,那么此时的f(x)=a(x)*b(x)mod x
n-1的运算流程和结果如下表所示:
[0053][0054][0055]
以第五行为例(a4,a3,a2,a1,a0为第一行),原本的乘积为:
[0056]
a4b2x6+a3b2x5+a2b2x4+a1b2x3+a0b2x2[0057]
在进行模x5操作后,化简如下形式并写回运算过程中:
[0058]
a2b2x4+a1b2x3+a0b2x2+a4b2x1+a3b2x0[0059]
对每一列fi的积分过程进行分析可以发现,fi是a
x
与by的卷积,fi是满足x+y=i mod n情况下(即),所有a
xby
的积分。
[0060]
ntru算法中的多项式乘法运算都可以被当作卷积运算,调整之后ntru的算法流程中,共涉及h(x)=f(x)-1

g(x)mod q、c(x)=ph(x)

r(x)+m(x)mod q、r(x)=h(x)

r(x)和a(x)=c(x)

f(x)mod q四次卷积运算,前三个卷积中涉及g(x)、r(x)两个稀疏多项式,而在a(x)=c(x)

f(x)mod q中,已知私钥f(x)=1+pf(x),代入可得:
[0061]
a(x)=c(x)

f(x)mod q=pc(x)

f(x)+c(x)mod q
[0062]
其中f(x)也是一个稀疏多项式,因此可以得出:调整之后的ntru算法中的所有卷积运算都会涉及到g(x)、r(x)和f(x)三个稀疏多项式,都有一个因式属于稀疏多项式。
[0063]
参考图2,以r(x)=h(x)

r(x)为例,h(x)是系数属于[0,q-1]的n次多项式,r(x)
是稀疏多项式,预处理方式如下:
[0064]
第一次扫描:假设对稀疏多项式r(x)进行遍历,记稀疏多项式r(x)中系数为1的数量为n,-1的数量为m,通过n+m的值确定存储稀疏多项式中非零系数索引v(x)的大小;
[0065]
第二次扫描:再次对r(x)进行扫描,当扫描到r(j)=1时,将此时的索引j的值从v(0)开始按顺序继续;当扫描到r(j)=-1,将此时的索引的值从v(x)开始按顺序记录。
[0066]
存储稀疏多项式中非零系数索引的数组v(0),由于只考虑数组中的非0系数,相较于r(x),存储v(x)不会占用太多的内存空间。
[0067]
参考图3,预计算具体包括如下:
[0068]
步骤1、将数组v(x)中记录的索引j乘以2以获得字节偏移量;
[0069]
步骤2、以n次多项式数组h(x)以h(n)值的地址为起点,起点地址减偏移量计算下一个地址信息;
[0070]
步骤3、将计算得到的地址信息存储到临时寄存器gp中,得到32位的地址信息。
[0071]
由于risc-v设备上的地址信息为32位,因此不能将预计算得出的地址直接存回数组v(x)中,而需要将其存进一个临时寄存器gp中。
[0072]
观察上述表格中的每一列,可以发现索引j对应h(n-j)值的地址。
[0073]
参考图4,计算数未调整前的ntru算法中的多项式的系数,将未调整前的ntru算法中的多项式系数记为数组w(x),以w(x)中最小角标系数w0开始,wk的计算方式如下:
[0074]
wk=∑
r(j)=1
h(n-j+k)-∑
r(j)=-1
h(n-j+k)
[0075]
其中,j为wk对应稀疏多项式中非零系数的索引,∑
r(j)=1
h(n-j+k)表示数组r(j)中数值为1对应的h(n-j+k)值的累加,∑
r(j)=-1
h(n-j+k)表示数组r(j)中数值为-1对应的h(n-j+k)值的累加。
[0076]
当计算wk索引j的值为0时,临时寄存器gp存入的是h(0)的地址;
[0077]
当计算wk索引j的值不为0时,临时寄存器gp存入的是h(n-j+k)的地址;
[0078]
具体的,每进行一下外循环,外循环计算出8个系数wk,w
k+1
,...,w
k+7
,直到外循环计算出所有的系数,第一个内循环迭代a次,进行每迭代循环8次,每次循环对wk,w
k+1
,...,w
k+7
其中一个系数进行加法运算,第二个内循环迭代b次进行每迭代循环8次,每次循环对wk,w
k+1
,...,w
k+7
其中一个系数进行减法运算,a+b=n。
[0079]
通过一次外循环,计算w(x)的八个系数wk、w
k+1
、w
k+2
、w
k+3
、w
k+4
、w
k+5
、w
k+6
、w
k+7
,这意味着在内循环过程中,每次进行八个系数的加减法运算,这就需要利用八个寄存器对数据进行保存,而由于risc-v设备提供32个寄存器,因此可以实现。
[0080]
通过每进行八个系数的加法(或减法)运算后,才进行一次地址校正。与原本的每一次加减法运算后都进行地址校正相比,本方案能够大量减少进行地址校正所消耗的指令周期数,显著减少进行稀疏多项式卷积运算的时钟周期数。
[0081]
第一个内循环包括如下步骤:
[0082]
步骤1、从临时寄存器gp中取出索引为j的h(n-j+k)地址,并将该地址存放至指针寄存器tp中;
[0083]
步骤2、根据指针寄存器tp中存放索引为j的h(n-j+k)地址取出n次多项式数组h(n-j+k)的值,并将系数wk与取出的h(n-j+k)值相加,并将相加结果存入到其中一个暂存寄存器s中;
[0084]
步骤3、在指针寄存器tp中移向下一个地址,得到n次多项式数组下一个h(n-i+k+1)值的地址,为下次内循环与w
k+1
计算调用做好准备,若下一个地址超出h(n)的地址范围,将该地址减去2n个字节偏移量;
[0085]
步骤4、步骤3中得到的将n次多项式数组中h(n-i+k+1)值的地址存放到临时寄存器gp中。
[0086]
第二个内循环包括如下步骤:
[0087]
步骤1、从临时寄存器gp中取出索引为j的h(n-j+k)地址,并将该地址存放至指针寄存器tp中;
[0088]
步骤2、根据指针寄存器tp中存放索引为j的h(n-j+k)地址取出n次多项式数组h(n-j+k)的值,并将系数wk与取出的h(n-j+k)值相减;
[0089]
步骤3、在指针寄存器tp中移向下一个地址,得到n次多项式数组下一个h(n-i+k+1)值的地址,为下次内循环与w
k+1
计算调用做好准备,若下一个地址超出h(n)的地址范围,将该地址减去2n个字节偏移量;
[0090]
步骤4、步骤3中得到的将n次多项式数组中h(n-i+k+1)值的地址存放到临时寄存器gp中。
[0091]
算过程中会占用大量指令周期的乘法指令替换成加法指令,提高了流水线的吞吐率,提高算法的运行效率。
[0092]
由于每次内循环需要一次性读取八个wk、w
k+1
、w
k+2
、w
k+3
、w
k+4
、w
k+5
、w
k+6
、w
k+7
进行加减法,当索引j=k+7的时候,数组h(x)对应的值为h(n+7),为了保证数组h(n+7)有数据进行加减运算,需要将原由n位多项式数组h(x)扩展到n+7位,其中,h(0)为h(n)赋值、h(1)为h(n+1)赋值,依此类推,直到h(n+7)被赋予h(7)的值。
[0093]
由于通过一次外循环计算w(x)中的八个系数,那么外循环的迭代次数也不再是n次,而是ceil((n+7)/8)次,也减少了地址校正以的次数,进行了ntru中稀疏多项式卷积运算的高性能、抗侧信道攻击实现。
[0094]
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

技术特征:
1.一种针对risc-v处理器的ntru优化实现方法,包括临时寄存器gp、指针寄存器tp、若干个暂存寄存器s和ntru算法,其特征在于:步骤如下:s1、将ntru算法中的多项式乘法运算改写为卷积运算,所述卷积运算由若干因式卷积得到,所述因式中至少有一个稀疏多项式;s2、通过对稀疏多项式预处理,将包含n个系数的稀疏多项式转化为存储稀疏多项式中非零系数索引的数组v(x);s3、对存储稀疏多项式中非零系数索引的数组v(x)进行预计算,将预计算得到多项式地址临时存放至临时寄存器gp中;s4、在进行完预计算后,使用若干因式进行卷积运算,即完成算法的优化,卷积运算是由一个外循环和两个内循环循环嵌套组成;s41、外循环,将未改写前ntru算法中多项式系数进行迭代,每次迭代计算出未改写前ntru算法中的若干多项式系数;s42、通过两个内循环分别对计算出的若干多项式系数,进行若干次的加减法运算。2.根据权利要求1所述的一种针对risc-v处理器的ntru优化实现方法,其特征在于:s1至s3具体步骤如下:s11、改写之后的ntru算法可以表示为n次多项式数组h(x)与稀疏多项式数组r(x)卷积运算;s21、对稀疏多项式数组r(x)进行遍历,记稀疏多项式r(x)中系数为1的数量为n,-1的数量为m,通过n+m的值确定存储稀疏多项式中非零系数索引v(x)的大小;s22、再次对数组r(x)进行遍历,当遍历到数组r(j)=1时,将此时的索引j的值从v(0)开始按顺序记录;当遍历到数组r(j)=-1,将此时的索引j的值从v(x)开始按顺序记录;s31、提取数组v(x)中记录的索引j,将索引j乘以2以获得字节偏移量,并于此时h(n)的地址进行减法运算,获得h(n-j)的地址,该地址信息位32位;s32、将运算得到的32位地址信息存入到临时寄存器gp中。3.根据权利要求2所述的一种针对risc-v处理器的ntru优化实现方法,其特征在于:s4具体步骤如下:s411、未改写前的ntru算法中的多项式系数记为数组w(x),计算出数组w(x)的8个系数w
k
,w
k+1
,...,w
k+7
,首次计算从w(x)中最小角标系数w0开始;s412、当计算w
k
索引j的值为0时,临时寄存器gp存入的是h(0)的地址;s413、当计算w
k
索引j的值不为0时,临时寄存器gp存入的是h(n-j+k)的地址;s414、步骤s411至s413循环执行ceil((n+7)/8)次;s421、第一个内循环迭代a次,进行每迭代循环8次,每次循环对w
k
,w
k+1
,...,w
k+7
其中一个系数进行加法运算;s422、第二个内循环迭代b次进行每迭代循环8次,每次循环对w
k
,w
k+1
,...,w
k+7
其中一个系数进行减法运算;其中,a+b=n。4.根据权利要求3所述的一种针对risc-v处理器的ntru优化实现方法,其特征在于:第一个内循环包括如下步骤:s4211、从临时寄存器gp中取出索引为j的h(n-j+k)地址,并将该地址存放至指针寄存
器tp中;s4212、根据指针寄存器tp中存放索引为j的h(n-j+k)地址取出n次多项式数组h(n-j+k)的值,并将系数w
k
与取出的h(n-j+k)值相加,并将相加结果存入到其中一个暂存寄存器s中;s4213、在指针寄存器tp中移向下一个地址,得到n次多项式数组下一个h(n-j+k+1)值的地址,为下次内循环与w
k+1
计算调用做好准备,若下一个地址超出h(n)的地址范围,将该地址减去2n个字节偏移量;s4214、步骤s4213中得到的将n次多项式数组中h(n-j+k+1)值的地址存放到临时寄存器gp中。5.根据权利要求3所述的一种针对risc-v处理器的ntru优化实现方法,其特征在于:第二个内循环包括如下步骤:s4221、从临时寄存器gp中取出索引为j的h(n-j+k)地址,并将该地址存放至指针寄存器tp中;s4222、根据指针寄存器tp中存放索引为j的h(n-j+k)地址取出n次多项式数组h(n-j+k)的值,并将系数w
k
与取出的h(n-j+k)值相减;s4223、在指针寄存器tp中移向下一个地址,得到n次多项式数组下一个h(n-j+k+1)值的地址,为下次内循环与w
k+1
计算调用做好准备,若下一个地址超出h(n)的地址范围,将该地址减去2n个字节偏移量;s4224、步骤s4223中得到的将n次多项式数组中h(n-j+k+1)值的地址存放到临时寄存器gp中。6.根据权利要求4或5所述的一种针对risc-v处理器的ntru优化实现方法,其特征在于:外循环进行ceil((n+7)/8)次迭代,由每个内循环都需要读取外循环输出的8个系数w
k
,w
k+1
,...,w
k+7
,每次循环需要取出8个系数对应的h(x)值的地址,存入到时指针寄存器tp,当外循环迭代一定次数的时候,指针寄存器tp存储的n次多项式数组h(j)的地址都会移动到指向h(n)值的地址,此时将指针寄存器tp存储的h(j)地址移回h(0)值的地址,再以h(0)值的地址为起点进行移动。7.根据权利要求3所述的一种针对risc-v处理器的ntru优化实现方法,其特征在于:在进入步骤s4,将原由n位多项式数组h(x)扩展到n+7位,其中,h(0)为h(n)赋值、h(1)为h(n+1)赋值,依此类推,直到h(n+7)被赋予h(7)的值。8.根据权利要求3所述的一种针对risc-v处理器的ntru优化实现方法,其特征在于:w
k
的计算方式如下:w
k
=∑
r(j)=1
h(n-j+k)-∑
r(j)=-1
h(n-j+k)其中,j为w
k
对应稀疏多项式中非零系数的索引,∑
r(j)=1
h(n-j+k)表示数组r(j)中数值为1对应的h(n-j+k)值的累加,∑
r(j)=-1
h(n-j+k)表示数组r(j)中数值为-1对应的h(n-j+k)值的累加。

技术总结
本发明公开了一种针对RISC-V处理器的NTRU优化实现方法,包括将NTRU算法中的多项式乘法运算改写为卷积运算,使得卷积运算由若干因式卷积得到,因式中至少有一个稀疏多项式,通过一个外循环和两个内循环,将乘法指令替换为加法指令,本发明达到NTRU算法在RISC-V 32bit处理器上的优化实现并且能够抵御侧信道攻击的目的,考虑到乘法指令占用的指令周期较多,如果连续执行数条乘法指令,会导致流水线长期阻塞,流水线吞吐量降低,进而拖慢算法运行效率的问题,针对嵌入式平台特点设计了恒定时间的稀疏多项式乘法汇编实现在将乘法指令替换为加法指令,节约了大量的指令周期的同时,保证了该实现的可靠性。保证了该实现的可靠性。保证了该实现的可靠性。


技术研发人员:张峰 石建 章文 刘哲 韩朝阳
受保护的技术使用者:杭州后量子密码科技有限公司
技术研发日:2023.06.12
技术公布日:2023/9/22
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐