欢迎来到天天文库
浏览记录
ID:58863253
大小:68.50 KB
页数:7页
时间:2020-09-22
《基于环面自同构的公钥加密算法.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于环面自同构的公钥加密算法公开密钥加密算法,也称为非对称算法,其主要特征为加密密钥与解密密钥不同,加密密钥是可以公开的,并且很难从加密密钥计算出解密密钥,所以,公钥加密算法被广泛应用,接下来,我就给大家介绍一种基于环面自同构的公钥加密算法。一、环面自同构环面自同构(TorusAutomorphisms)是一种典型的混沌映射,其表达式如下:其中,A是一个形如的2×2的矩阵;a,b,c,d皆为整数;且detA=1;mod1表示只取小数部分,即xi,yi∈(0,1)。k=a+d为A的迹,则特征多项式为f(λ)=λ2-kλ+1,其较大
2、的一个特征值为:当k2-4>0即k<2时(只考虑k为正),自同构A具有强烈的混沌特性。环面自同构的周期轨道,它由坐标为ξ=p1/q1,η=p2/q2的有理点组成,其中pi,qi为整数。使pi,qi互素,g为q1,q2的最小公倍数。去分母,使M成为Z2(整数向量的网格)上的映射。因此,将映射(1)扩展到[0,N)×[0,N)上。设xi=Xi/N,yi=Yi/N,x≤Xi,Yi3、的情况下,它的周期根据这3类素数,有着3种不同类型的周期轨道。确定方式如下:定义整数d,其中k2-4=n2D,D为square-free。若L(d,N)=-1,素数N为inert,映射(2)的周期为N+1的因子。若L(d,N)=1,素数N为splits,映射(2)的周期为N-1的因子。若L(d,N)=0,素数N为ramifies,若k≡2(modN),映射(2)的周期为N或1;若k≡-2(modN)则为2N或2。其中L(d,N)是勒让德符号。二、基于环面自同构的公钥加密算法笔者提出的公开密钥加密算法与RSA相似,其安全性都是基于4、大数因式分解的难度,所不同的是利用混沌映射进行迭代,并利用了该映射的周期性。因为映射(2)是周期性的,所以:即:1、加密算法的描述加密算法的描述主要分成3个部分,即密钥产生,加密和解密。密钥产生:(1)Alice随机选取2个大素数p和q,它们具有相同的长度;(2)计算N=pq,φ=(p3-p)(q3-q);(3)随即选取整数e,使得15、e);2)将需要加密的信息表达成整数m1,m2,且0≤m1,m26、p3-p的因子;因为φ=(p3-p)(q3-q),Tp也就必是φ的因子。又ed=1modφ,所以ed=1+k<=1+k1Tp。因此:Aed=A1+kφ=A1+k1Tp=A(modp)。同理可得:Aed=A1+kφ=A1+k2Tq=A(modq)。根据中国剩余定理,N=pq,所以Aed=A1+kφ=A1+k′T=A(modN)。3、简单的例子下面举一个例子来进行说明:Alice随机选取2个大素数p=3391和q=3793,计算N=,φ=。Alice选取的e=65537,通过欧几里德扩展算法计算d=。Alice的公开密钥就是(N,e7、),私人密钥就是(N,d)。为了加密消息m=890,Bob将消息表示为m1=,m2=,再使用Alice提供的公钥(N,e),根据公式(4)运算,得出ca=,cb=,cc=,cd=。Bob将密文ca,cb,cc,cd传给Alice。Alice则根据公式(5)和私人密钥(N,d)来计算出m1=,m2=,再将其组合成为m=890。4、软件实现我们所说的公钥算法步骤简洁,运算简单,与RSA相似,容易软件实现。但是需要注意的是,本加密算法的安全性基于因式分解2个大素数的乘积,在运算中需要涉及大整数的存储和运算。程序语言中提供的整数类型是不8、能满足需求的,所以需要单独定义。其次,本加密算法最主要的运算就是矩阵的乘方。采用快速矩阵乘法算法将大大加快运算速度。计算矩阵A的n次方:X=I;for(i=n.bitsnumber();i>0;i–){X=X2;if(n.bitat(i)==1)X=XA;}其中
3、的情况下,它的周期根据这3类素数,有着3种不同类型的周期轨道。确定方式如下:定义整数d,其中k2-4=n2D,D为square-free。若L(d,N)=-1,素数N为inert,映射(2)的周期为N+1的因子。若L(d,N)=1,素数N为splits,映射(2)的周期为N-1的因子。若L(d,N)=0,素数N为ramifies,若k≡2(modN),映射(2)的周期为N或1;若k≡-2(modN)则为2N或2。其中L(d,N)是勒让德符号。二、基于环面自同构的公钥加密算法笔者提出的公开密钥加密算法与RSA相似,其安全性都是基于
4、大数因式分解的难度,所不同的是利用混沌映射进行迭代,并利用了该映射的周期性。因为映射(2)是周期性的,所以:即:1、加密算法的描述加密算法的描述主要分成3个部分,即密钥产生,加密和解密。密钥产生:(1)Alice随机选取2个大素数p和q,它们具有相同的长度;(2)计算N=pq,φ=(p3-p)(q3-q);(3)随即选取整数e,使得15、e);2)将需要加密的信息表达成整数m1,m2,且0≤m1,m26、p3-p的因子;因为φ=(p3-p)(q3-q),Tp也就必是φ的因子。又ed=1modφ,所以ed=1+k<=1+k1Tp。因此:Aed=A1+kφ=A1+k1Tp=A(modp)。同理可得:Aed=A1+kφ=A1+k2Tq=A(modq)。根据中国剩余定理,N=pq,所以Aed=A1+kφ=A1+k′T=A(modN)。3、简单的例子下面举一个例子来进行说明:Alice随机选取2个大素数p=3391和q=3793,计算N=,φ=。Alice选取的e=65537,通过欧几里德扩展算法计算d=。Alice的公开密钥就是(N,e7、),私人密钥就是(N,d)。为了加密消息m=890,Bob将消息表示为m1=,m2=,再使用Alice提供的公钥(N,e),根据公式(4)运算,得出ca=,cb=,cc=,cd=。Bob将密文ca,cb,cc,cd传给Alice。Alice则根据公式(5)和私人密钥(N,d)来计算出m1=,m2=,再将其组合成为m=890。4、软件实现我们所说的公钥算法步骤简洁,运算简单,与RSA相似,容易软件实现。但是需要注意的是,本加密算法的安全性基于因式分解2个大素数的乘积,在运算中需要涉及大整数的存储和运算。程序语言中提供的整数类型是不8、能满足需求的,所以需要单独定义。其次,本加密算法最主要的运算就是矩阵的乘方。采用快速矩阵乘法算法将大大加快运算速度。计算矩阵A的n次方:X=I;for(i=n.bitsnumber();i>0;i–){X=X2;if(n.bitat(i)==1)X=XA;}其中
5、e);2)将需要加密的信息表达成整数m1,m2,且0≤m1,m26、p3-p的因子;因为φ=(p3-p)(q3-q),Tp也就必是φ的因子。又ed=1modφ,所以ed=1+k<=1+k1Tp。因此:Aed=A1+kφ=A1+k1Tp=A(modp)。同理可得:Aed=A1+kφ=A1+k2Tq=A(modq)。根据中国剩余定理,N=pq,所以Aed=A1+kφ=A1+k′T=A(modN)。3、简单的例子下面举一个例子来进行说明:Alice随机选取2个大素数p=3391和q=3793,计算N=,φ=。Alice选取的e=65537,通过欧几里德扩展算法计算d=。Alice的公开密钥就是(N,e7、),私人密钥就是(N,d)。为了加密消息m=890,Bob将消息表示为m1=,m2=,再使用Alice提供的公钥(N,e),根据公式(4)运算,得出ca=,cb=,cc=,cd=。Bob将密文ca,cb,cc,cd传给Alice。Alice则根据公式(5)和私人密钥(N,d)来计算出m1=,m2=,再将其组合成为m=890。4、软件实现我们所说的公钥算法步骤简洁,运算简单,与RSA相似,容易软件实现。但是需要注意的是,本加密算法的安全性基于因式分解2个大素数的乘积,在运算中需要涉及大整数的存储和运算。程序语言中提供的整数类型是不8、能满足需求的,所以需要单独定义。其次,本加密算法最主要的运算就是矩阵的乘方。采用快速矩阵乘法算法将大大加快运算速度。计算矩阵A的n次方:X=I;for(i=n.bitsnumber();i>0;i–){X=X2;if(n.bitat(i)==1)X=XA;}其中
6、p3-p的因子;因为φ=(p3-p)(q3-q),Tp也就必是φ的因子。又ed=1modφ,所以ed=1+k<=1+k1Tp。因此:Aed=A1+kφ=A1+k1Tp=A(modp)。同理可得:Aed=A1+kφ=A1+k2Tq=A(modq)。根据中国剩余定理,N=pq,所以Aed=A1+kφ=A1+k′T=A(modN)。3、简单的例子下面举一个例子来进行说明:Alice随机选取2个大素数p=3391和q=3793,计算N=,φ=。Alice选取的e=65537,通过欧几里德扩展算法计算d=。Alice的公开密钥就是(N,e
7、),私人密钥就是(N,d)。为了加密消息m=890,Bob将消息表示为m1=,m2=,再使用Alice提供的公钥(N,e),根据公式(4)运算,得出ca=,cb=,cc=,cd=。Bob将密文ca,cb,cc,cd传给Alice。Alice则根据公式(5)和私人密钥(N,d)来计算出m1=,m2=,再将其组合成为m=890。4、软件实现我们所说的公钥算法步骤简洁,运算简单,与RSA相似,容易软件实现。但是需要注意的是,本加密算法的安全性基于因式分解2个大素数的乘积,在运算中需要涉及大整数的存储和运算。程序语言中提供的整数类型是不
8、能满足需求的,所以需要单独定义。其次,本加密算法最主要的运算就是矩阵的乘方。采用快速矩阵乘法算法将大大加快运算速度。计算矩阵A的n次方:X=I;for(i=n.bitsnumber();i>0;i–){X=X2;if(n.bitat(i)==1)X=XA;}其中
此文档下载收益归作者所有