CN108712256B - 一种基于椭圆曲线子域子码的加密解密算法 - Google Patents

一种基于椭圆曲线子域子码的加密解密算法 Download PDF

Info

Publication number
CN108712256B
CN108712256B CN201810707563.2A CN201810707563A CN108712256B CN 108712256 B CN108712256 B CN 108712256B CN 201810707563 A CN201810707563 A CN 201810707563A CN 108712256 B CN108712256 B CN 108712256B
Authority
CN
China
Prior art keywords
polynomial
elliptic curve
matrix
encryption
polynomials
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810707563.2A
Other languages
English (en)
Other versions
CN108712256A (zh
Inventor
金玲飞
赵鸿伯
钱路雁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fudan University
Original Assignee
Fudan University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fudan University filed Critical Fudan University
Priority to CN201810707563.2A priority Critical patent/CN108712256B/zh
Publication of CN108712256A publication Critical patent/CN108712256A/zh
Application granted granted Critical
Publication of CN108712256B publication Critical patent/CN108712256B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明属于密码安全技术领域,具体为一种基于椭圆曲线子域子码的加密解密算法。本发明的加密解密算法包括:密钥生成,随机选择在有限域上椭圆曲线函数,并找出其有理点集合,计算获得生成多项式集合,重排多项式集合,通过生成多项式和点集构造出密码的生成矩阵,并得到私钥和公钥;加密算法,消息与生成的公钥矩阵相乘从而得到密文,随机选取误差向量,加到密文上;解密算法,构造二维多项式,解方程并计算解码多项式,解得消息向量。本发明的加密解密算法加密解密效率高,安全性能好。

Description

一种基于椭圆曲线子域子码的加密解密算法
技术领域
本发明属于密码安全技术领域,具体涉及一种基于椭圆曲线子域子码的加密解密算法。
背景技术
密码技术是网络安全的根基。在网络行为已经渗透到社会生活每个领域的今天,无论是网上银行、电子商务还是电子邮件、即时消息服务,密码技术无时无刻不在保护着用户的信息安全。如果当前普遍运用的密码系统遭到根本性威胁,所有网络活动的安全性无疑都将面临严峻挑战。事实上,具有强大密码破解能力的量子计算机近年来已经不断取得实质性进展,研究者们普遍认为应该尽早部署能够抵御这种威胁的后量子密码技术,从而将全球信息网络系统面临的总体风险降至最低。
加密算法都是建立在特定数学难题的基础之上,但是这些数学问题的困难性可能会因新型计算能力或者算法的出现而削弱。由于量子计算机技术取得了出人意料的快速发展,大量仅能抵御经典计算机暴力破解的密码算法面临被提前淘汰的困境。
随着计算能力的发展,密码系统也需要做出调整和改进,从而确保其计算安全性继续成立。例如, IBM公司和美国国家安全局在20世纪70年代开发出了使用56位密钥的DES密码系统,即计算机需要在256的搜索空间内寻找可能的密钥,这对于当时以及此后相当长一段时间内的计算机来说都是不可能完成的任务。但到了90年代,先进的超级计算机已经开始能够在合理的时间内遍历DES密码系统的密钥空间。因此,在计算安全性遭到破坏的情况下,DES密码系统也很快被至少使用128位密钥的AES密码系统所取代。
在当前的网络通信协议中,使用范围最广的密码技术是RSA密码系统、诸如CDSA/ECDH等ECC 密码系统以及DH密钥交换技术,这些通用密码系统共同构成了确保网络信息安全的底层机制。诸如大数分解和离散对数等经过长期深入研究的数学问题构建出上述先进加密技术的底层机制,而且此类困难问题在过去数十年间的运行过程中表现出了充分的可靠性。但随着量子计算机技术不断取得突破,特别是以肖氏算法为典型代表的量子算法的提出,相关运算操作在理论上可以实现从指数级别向多项式级别的转变,这些对于经典计算机来说足够“困难”的问题必将在可预期的将来被实用型量子计算机轻易破解。
到目前为止,只有四种公认的尚未被量子计算机攻破的密码方案,它们分别是以Merkle哈希树的公钥签名方案、以二进制Goppa码的McEliece密码系统、格密码系统以及MQE密码系统。
发明内容
为了克服现有技术的不足,本发明的目的在于提供一种基于椭圆曲线子域子码的代数理论的加密解密算法。本发明的加密解密效率高,安全性能好。
本发明的技术方案具体介绍如下。
本发明提供一种基于椭圆曲线子域子码的加密解密算法,其包括密钥生成算法、加密算法和解密算法;其中:
密钥生成算法,通过随机选择在有限域上椭圆曲线函数,并找出其有理点集合,计算获得生成多项式集合,重排多项式集合,通过生成多项式和点集构造出密码的生成矩阵,并得到私钥和公钥;
加密算法,消息与生成的公钥矩阵相乘从而得到密文,随机选取误差向量,加到密文上;解密算法,
构造二维多项式,解方程并计算解码多项式,解得消息向量。
本发明中,密钥生成算法的具体流程如下:
(1)构造有限域Fq,q=2n,构造方法是基于有限域扩张的方法,在F2={0,1}域的基础上找出n次不可约多项式g(x),则
Figure BDA0001715834110000021
随机选择在有限域Fq,q=2n上的椭圆曲线函数{(x,y)∈ R2 y2+y=x3+Ax+B,并计算出该曲线上的有理点Pi=αi,βi使得该点满足βi2+βi=αi3+Aαi+B,并将得到的所有有理点放入集合R中得到有理点集R={P1,...,Pn};
(2)计算椭圆曲线码的生成多项式,要求多项式满足F(x,y)={xiyj|i,j≥0,j≤1,2i+3j≤N-t-1},其中N为生成的椭圆曲线码的点集的数目,使用两次循环遍历所有符合条件的多项式放入集合F中,得到多项式集合F={f1,...,fN-t-1}
(3)根据V(f1)≤V(f2)≤…≤V(fk),V(fk)=v(xiyj)=2i+3j的规则,从小到大重新排列多项式集合 F={f1,...,fN-t-1};
(4)选取前K个生成多项式,K为生成的椭圆曲线码的维数,和有理点集={P1,...,Pn}构造生成矩阵G';
Figure BDA0001715834110000022
(5)由G'获得其椭圆曲线码的校验矩阵H,在将其校验矩阵通过线性变换φ转换为F2上的校验矩阵H′, 其中
Figure BDA0001715834110000023
映射函数;
(6)通过对H′进行求解空间集合,获得其子域子码的生成矩阵G;
(7)将多项式集合F以及椭圆曲线函数的有理点集R保留作为私钥;
(8)随机生成一个K×K的可逆矩阵S,N×N的置换矩阵P,计算Gpub=SGP作为公钥。
本发明中,加密算法包括以下流程:
(1)随机生成一个长度为N的随机错误向量e,要求e满足
Figure BDA0001715834110000024
(2)生成密文c=mGpub+e,其中m为初始消息。
本发明中,解密算法记为O(x),其具体流程如下:
(1)构造两个二维多项式A0(x,y),A1(x,y),
A0(x,y)=a01f1(x,y)+a02f2(x,y)+…+a0,n-t-1fn-t-1(x,y)a0i∈Fq,fi∈F
A1(x,y)=a11f1(x,y)+a12f2(x,y)+…+a1,n-t-k-1fn-t-k-1(x,y)a1i∈Fq,fi∈F
(2)解方程A0(Pi(xi,yi)+A1(Pi(xi,yi)r′i=0,其中r′i为接收到的消息的第i为数据,即解线性方程组:
a01f1((Pi(xi,yi))+a02f2((Pi(xi,yi))+…+a0,n-t-1fn-t-1((Pi(xi,yi))+[a11f1((Pi(xi,yi))+ a12f2((Pi(xi,yi))+…+a1,n-t-k-1fn-t-k-1((Pi(xi,yi))]ri=0;
(3)通过于高斯消去的矩阵的三角分解LU算法,计算出最终需要的解码多项式
Figure BDA0001715834110000031
(4)利用解码多项式
Figure BDA0001715834110000032
得到最终解码后的消息向量
r=(r1,...,rn)=(O(P1(x1,y1)),...,O(Pn(xn,yn))。
本发明中,解码算法包括以下流程:
(1)r′=cPT=mSG+eP^T;
(2)r=O(r');
(3)解得消息向量为m=rS-1
和现有技术相比,本发明的有益效果在于,本发明的算法用于加密解密,加密解密算法时间复杂度低,公钥大小不逊于基于Binary Goppa码的解码方案,安全性能好,本文提出的公钥密码方案基于线性码解码这一NP完全问题,具有很好的对抗量子计算机攻击的能力。
附图说明
图1是本发明的基于椭圆曲线子域子码的加密解密算法流程图。
图2是实施例1中的子域子码的生成矩阵。
具体实施方式
下面结合附图和实施例对本发明的技术方案进行详细介绍。
图1是本发明的基于椭圆曲线子域子码的加密解密算法流程图。
本发明中,基于椭圆曲线子域子码的密钥生成与加密算法的具体流程如下:
(1)构造有限域Fq,q=2n,构造方法是基于有限域扩张的方法,在F2={0,1}域的基础上找出n次不可约多项式g(x),则
Figure BDA0001715834110000033
随机选择在有限域Fq,q=2n上的椭圆曲线函数{(x,y)∈R2 y2+y=x3+Ax+B,并计算出该曲线上的有理点Pi=αi,βi使得该点满足βi2+βi=αi3+Aαi+B,并将得 到的所有有理点放入集合R中得到有理点集R={P1,…,Pn};
(2)计算椭圆曲线码的生成多项式,要求多项式满足F(x,y)={xiyj|i,j≥0,j≤1,2i+3j≤N t-1,其中N为生成的椭圆曲线码的点集的数目,使用两次循环遍历所有符合条件的多项式放入集合中,得到多项式集合F={f1,…,fN-t-1};
(3)根据V(f1)≤V(f2)≤…≤V(fk),V(f)=v(xiyj)=2i+3j的规则,从小到大重新排列多项式集合F={f1,...,fN-t-1};
(4)选取前K个生成多项式,K为生成的椭圆曲线码的维数,和有理点集={P1,...,Pn}构造生成矩阵G′:
Figure BDA0001715834110000041
(5)由G′获得其椭圆曲线码的校验矩阵H,在将其校验矩阵通过线性变换φ转换为F2上的校验矩阵 H′,其中
Figure BDA0001715834110000042
映射函数;
(6)通过对由H′进行求解空间集合,获得其子域子码的生成矩阵G;
(7)将多项式集合F以及椭圆曲线函数的有理点集R保留作为私钥;
(8)随机生成一个K×K的可逆矩阵S,N×N的置换矩阵P,计算Gpub=SGP作为公钥;
(9)随机生成一个长度为N的随机错误向量e,要求e满足
Figure BDA0001715834110000043
(10)生成密文c=mGpub+e,其中m为初始消息;
本发明中,基于椭圆曲线子域子码的解密算法,记为O(x),具体流程如下:
(1)构造两个二维多项式A0(x,y),A1(x,y),其中:
A0(x,y)=a01f1(x,y)+a02f2(x,y)+…+a0,n-t-1fn-t-1(x,y)a0i∈Fq,fi∈F
A1(x,y)=a11f1(x,y)+a12f2(x,y)+…+a1,n-t-k-1fn-t-k-1(x,y)a1i∈Fq,fi∈F
(2)解方程A0(Pi(xi,yi)+A1(Pi(xi,yi)r′i=0,其中r′i为接收到的消息的第i为数据,即解线性方程组:a01f1((Pi(xi,yi))+a02f2((Pi(xi,yi))+…+a0,n-t-1fn-t-1((Pi(xi,yi))+[a11f1((Pi(xi,yi)) a12f2((Pi(xi,yi))+…+a1,n-t-k-1fn-t-k-1((Pi(xi,yi))]ri=0;
(3)通过于高斯消去的矩阵的三角分解LU算法,计算出最终需要的解码多项式
Figure BDA0001715834110000044
(4)利用解码多项式
Figure BDA0001715834110000045
得到最终解码后的消息向量 r=(r1,...,rn)=(O(P1(x1,y1)),...,O(Pn(xn,yn));
本发明中,一种基于椭圆曲线子域子码的解码算法的具体流程如下:
(1)r′=cPT=mSG+eP^T;
(2)r=O(r′);
(3)解得消息向量为m=rS-1
下面将结合具体实例来对本发明所述的基于椭圆曲线子域子码的密码系统进行进一步的详细说明,但是该详细说明不构成对本发明的限制。
实施例1
1、密钥生成和加密实现
(1)在有限域F64上选取椭圆曲线函数y2+y=x3+ax+b,其中a=α+α2345, b=α+α5,遍历搜索有限域F64上所有满足椭圆曲线函数的点对,最满足要求的点对数量为64个,其中三个点实例如下(1,α+α3,α5),(1,1+α+α35),(α,α+α2345)。
(2)计算生成多项式,要求多项式满足F(x,y)={xiyj|i,j≥0,j≤1,2i+3j≤N-t-1},其中
Figure BDA0001715834110000051
为理论最大纠错距离,F(x,y)={xiyj|i,j≥0,j≤1,2i+3j≤57}即获得多项式集合
F={1,x,y,x2,xy,x3,x2y,x4,x3y,x5,x4y,x6,x5y,x7,x6y,x8,x7y,x9,x8y,x10,x9y,x11,x10y, x12,x11y,x13,x12y,x14,x13y,x15,x14y,x16,x15y,x17,x16y,x18,x17y,x19,x18y,x20,x19y,x21, x20y,x22,x21y,x23,x22y,x24,x23y,x25,x24y,x26,x25y,x27,x26y,x28,x27y,x29,x28y,x30,x29y, x31,x30y,x32};
(3)根据V(f1)≤V(f2)≤…≤V(f57),V(f)=v(xiyj)=2i+3j重排多项式集合
(4)选取前54个生成多项式,和有理点Pi构造生成矩阵G′:
Figure BDA0001715834110000052
(5)由G′获得其椭圆曲线码的校验矩阵H,在将其校验矩阵通过线性变换φ转换为F2上的校验矩阵 H′,其中
Figure BDA0001715834110000053
映射函数;
(7)通过对由H′进行求解空间集合,获得其子域子码的生成矩阵G,维数为10×64,如图2所示;
(8)将多项式集合F以及椭圆曲线函数的有理点集R保留作为私钥;
(9)随机生成一个10×10的可逆矩阵S,64×64的置换矩阵P,计算Gpub=SGP作为公钥;
(10)随机生成一个长度为64的随机错误向量e,要求e满足
Figure BDA0001715834110000054
e=[0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];
(11)生成密文c=mGpub+e,其中m为初始消息,m=[0 0 0 0 1 0 0 0 0 1], mGpub=[1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 11 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0]
c=[1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 00 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0];
2、译码算法实现,记为O(x),其中:
(1)构造两个二维多项式A0(x,y),A1(x,y),其中:
A0(x,y)=a01f1+a02f2+…+a0,54f54 a0i∈Fq,fi∈F
A1(x,y)=a11f1+a12f2+…+a1,54f54 a1i∈Fq,fi∈F
(2)解方程A0(Pi)+A1(Pi)ri=0,获得A0和A1的一个非零解;
(3)计算解码多项式
Figure BDA0001715834110000061
(4)解码后的消息向量r=(r1,...,r64)=(d(P1),...,d(P64))
r=[1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 00 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0];
3、基于椭圆曲线子域子码的解码方案,其中:
(1)r′=cPT=mSG+ePT
(2)r=O(r′);
(3)解得消息向量为m=rS-1=[0 0 0 0 1 0 0 0 0 1]
实施例2
1、密钥生成与加密实现:
(1)选择在有限域F1024上的椭圆曲线函数y2+y=x3,使用暴力穷搜算法,遍历有限域F1024上的所有点对Pi=(αi,βi),判断其是否满足
Figure BDA0001715834110000062
若满足,则将其加入有理点集R;
(2)计算生成多项式,要求多项式满足F(x,y)={xiyj|i,j≥0,j≤1,2i+3j≤N-t-1},其中
Figure BDA0001715834110000063
为理论最大纠错距离,F(x,y)={xiyj|i,j≥0,j≤1,2i+3j≤995}即获得多项式集合 F={f1,...,f995};
(3)根据V(f1)≤V(f2)≤…≤V(f995),V(f)=v(xiyj)=2i+3j重排多项式集合
(4)选取前964个生成多项式,和有理点Pi构造生成矩阵G′:
Figure BDA0001715834110000064
(5)由G′获得其椭圆曲线码的校验矩阵H,在将其校验矩阵通过线性变换φ转换为F2上的校验矩阵 H′,其中
Figure BDA0001715834110000065
映射函数;
(7)通过对由H′进行求解空间集合,获得其子域子码的生成矩阵G,维数为424×1024;
(8)将多项式集合F以及椭圆曲线函数的有理点集R保留作为私钥;
(9)随机生成一个424×424的可逆矩阵S,1024×1024的置换矩阵P,计算Gpub=SGP作为公钥;
(10)随机生成一个长度为1024的随机错误向量e,要求e满足
Figure BDA0001715834110000066
(11)生成密文c=mGpub+e,其中m为初始消息;
2、解密算法实现,记为O(x),其中:
(1)构造两个二维多项式A0(x,y),A1(x,y),其中:
A0(x,y)=a01f1+a02f2+…+a0,964f964 a0i∈Fq,fi∈F
A1(x,y)=a11f1+a12f2+…+a1,964f964 a1i∈Fq,fi∈F
(2)解方程A0(Pi)+A1(Pi)ri=0,使用基于高斯消去的矩阵的三角分解LU算法;
(3)计算解码多项式
Figure BDA0001715834110000071
(4)解码后的消息向量r=(r1,...,r1024)=(d(P1),...,d(P1024));
3、基于椭圆曲线子域子码的解码方案,其中:
(1)r′=cPT=mSG+ePT
(2)r=O(r′);
(3)解得消息向量为n=rS-1
安全性能分析
(1)暴力搜索攻击:所选子域子码的生成矩阵G被隐藏在公钥Gpub=SGP中,最典型的的暴力搜索攻击方法就是通过尝试搜索所有可能的可逆矩阵S与置换矩阵P来尝试恢复出原来的生成矩阵G,如果用|S|表示K×K维可逆矩阵的个数,|P|表示N×N维置换矩阵的个数,则猜出S与P的概率为
Figure BDA0001715834110000072
其中
Figure BDA0001715834110000073
Figure BDA0001715834110000074
对于现实情况,如果选择在
Figure BDA0001715834110000077
域上构建子域子码,则|S|大约为2180199,|P|≈28769.6那么一次搜索成功的几率为2-188968.4,所以对于暴力搜索,本算法是安全可靠的;
(2)信息集解码攻击:信息集解码算法是目前最有效的解决一般线性码的解码问题的算法。最早由Prange在1967年提出。在McEliece密码系统提出后,这一算法被延伸用于所有类McEliece系统的密文恢复攻击。
信息集定义:令I为集合{1,2,...,n}的一个大小为k的子集,G为一个线性码的生成矩阵,GI是G的一个子矩阵,由G中以I为索引的行向量组成,若GI可逆,则称I为G的一个信息集。值得注意的是
Figure BDA0001715834110000075
和 G是同一个线性码的两个不同的生产矩阵。
举一个简单的信息集攻击的例子。令y代表一个被错误向量混淆过得码字,令c代表一个正确的码字。根据信息集I获得y和c的子集yI和cI,如果yI没有被错误向量影响,即yI=cI则我们能够恢复出未被混淆的码字
Figure BDA0001715834110000076
最早将信息集解码算法用于McEliece密码系统的密文恢复攻击的是P.J.Lee和E.F.Brickell。在他们提出的算法的基础上,有许多改进方案,表1中列出了不同方案对不同码长的线性码的复杂度。
当选用的线性码的码长到2048之后,目前的信息集攻击算法的复杂度仍然很高,对于我们的密码系统并不构成威胁。
表1:对于不同码长,不同信息集攻击方法的时间复杂度
码长 MO BJMM Stern Prange
1024 O(2<sup>49</sup>) O(2<sup>51</sup>) O(2<sup>58</sup>) O(2<sup>59</sup>)
2048 O(2<sup>97</sup>) O(2<sup>102</sup>) O(2<sup>115</sup>) O(2<sup>118</sup>)
(3)Minder攻击:2007年,Minder提出了一个基于代数几何码的密钥恢复攻击方法。首先,椭圆曲线上的有理点集构成一个交换群。在这个交换群的基础上,攻击者可以找到一个和原先选择的曲线同构的椭圆曲线。之后,攻击者可以通过找到同构的曲线和原先选择的曲线的双射从而恢复出原来的曲线。如果攻击者使用这个方法来攻击我们的密码,他首先需要知道码字的最小汉明距离,对于椭圆曲线子域子码来说,最小汉明距离大于等于原码的最小汉明距离。例如,我们可以从[128,113,15]的椭圆曲线码中构造出一个[128,23,36]的子域子码。从而使得攻击者并不能知道最小汉明距离,攻击无效。

Claims (4)

1.一种基于椭圆曲线子域子码的加密解密方法,其特征在于:其包括密钥生成方法、加密方法和解密方法;其中:
密钥生成方法:通过随机选择在有限域上的椭圆曲线函数,并找出其有理点集合,计算获得生成多项式集合,重排多项式集合,通过生成多项式和点集构造出密码的生成矩阵,并得到私钥和公钥;
加密方法,消息与生成的公钥矩阵相乘从而得到密文,随机选取误差向量,加到密文上;
解密方法,构造二维多项式,解方程并计算解码多项式,解得消息向量;其中:
密钥生成方法的具体流程如下:
(1)构造有限域Fq,其中q=2n,n为自然数,构造方法是基于有限域扩张的方法,在有限域F2={0,1}域的基础上找出n次不可约多项式g(x),x为不定元,扩域F2n=F2(x)/g(x);随机选择在有限域Fq上的椭圆曲线函数{(x,y)∈R2|y2+y=x3+Ax+B},其中A,B∈Fq,x,y为不定元,R2为实数域上的2维欧式空间,并计算出该曲线上的有理点Pi=(αi,βi),其中αi,βi∈Fq,i=1,...,n,使得该点满足βi 2i=αi 3+Aαi+B,并将得到的所有有理点放入集合R中得到有理点集R={P1,...,Pn};
(2)计算椭圆曲线码的生成多项式,多项式集合F(x,y)={xiyj|i,j≥0,j≤1,2i+3j≤N-t-1},其中N为生成的椭圆曲线码的点集的数目,t为理论最大纠错距离,
Figure FDA0003258410390000011
x,y为不定元,i,j为多项式集合F={f1,...,fN-t-1}中的多项式f=xiyj的不定元x与y的次数,使用两次循环遍历所有符合条件的多项式放入集合F(x,y)中,得到多项式集合F(x,y)={f1,...,fN-t-1},其中f1,...,fN-t-1表示多项式集合F(x,y)中的不同多项式;
(3)根据V(f1)≤V(f2)≤…≤V(fN-t-1),其中V()=V(xiyj)=2i+3j,从小到大重新排列多项式集合F={f1,...,fN-t-1};
(4)选取前K个生成多项式,K为生成的椭圆曲线码的维数,和有理点集R={P1,...,PN}构造生成矩阵G′,fi(Pj)表示将有理点Pj带入fi这个多项式中,fi表示从小到大重新排列多项集合F中的第i个多项式,i=1,2,...,K,j=1,2,...,N:
Figure FDA0003258410390000012
(5)由G′获得其椭圆曲线码的校验矩阵H,再将其校验矩阵通过线性变换φ转换为F2上的校验矩阵H′,其中φ为有限域
Figure FDA0003258410390000013
的映射函数;
(6)通过对H′进行求解空间集合,获得其子域子码的生成矩阵G;
(7)将多项式集合F以及椭圆曲线函数的有理点集R保留作为私钥;
(8)随机生成一个K×K的可逆矩阵S,N×N的置换矩阵P,计算Gpub=SGP作为公钥。
2.根据权利要求1所述的加密解密方法,其特征在于,加密方法包括以下流程:
(1)随机生成一个长度为N的随机错误向量e,要求e满足其汉明重量
Figure FDA0003258410390000021
(2)生成密文c=mGpub+e,其中m为初始消息。
3.根据权利要求1所述的加密解密方法,其特征在于,解密方法记为O(x),其具体流程如下:
(1)构造两个二维多项式A0(x,y),A1(x,y),其中x,y∈Fq,a01,a02,...a0,N-t-1,a11,a12,...a1,N-t-K-1∈Fq,f1(x,y),f2(x,y),...,fN-t-K-1(x,y),...,fN-t-1(x,y)分别表示多项式集合F(x,y)中的第1,2,...,N-t-K-1,...,N-t-1个多项式,x,y为不定元,N表示椭圆曲线码的码长,K表示椭圆曲线码的维数,t为理论最大纠错距离:
A0(x,y)=a01f1(x,y)+a02f2(x,y)+…+a0,N-t-1fN-t-1(x,y)
A1(x,y)=a11f1(x,y)+a12f2(x,y)+…+a1,N-t-K-1fN-t-K-1(x,y)
(2)解方程A0(Pi(xi,yi))+A1(Pi(xi,yi))r′i=0,其中r′i为接收到的消息的第i位数据,Pi(xi,yi)表示R中的第i个点,R为上文中构造的有理点集,xi,yi表示点Pi的第一维和第二维的值,i=1,2,...,N,N表示椭圆曲线码的码长,即解线性方程组:
a01f1((Pi(xi,yi))+a02f2((Pi(xi,yi))+…+a0,n-t-1fN-t-1((Pi(xi,yi))+[a11f1((Pi(xi,yi))+a12f2((Pi(xi,yi))+…+a1,N-t-K-1fN-t-K-1((Pi(xi,yi))]r′i=0;
(3)通过于高斯消去的矩阵的三角分解LU方法,计算出最终需要的解码多项式
Figure FDA0003258410390000022
(4)利用解码多项式
Figure FDA0003258410390000023
得到最终解码后的消息向量r=(r1,...,rn)=(O(P1(x1,y1)),...,O(Pn(xn,yn)),其中r1,...,rn分别表示解码后的第1位,...,第n位消息,P1(x1,y1),...,(Pn(xn,yn)分别表示R中的第1,...,n个点,R为上文中构造的有理点集,x1,y1表示点P1的第一维和第二维的值,xn,yn表示点Pn的第一维和第二维的值。
4.一种用于权利要求1所述的基于椭圆曲线子域子码的加密解密方法所生成的密文的解码方法,其特征在于,包括以下流程:
对收到的密文c:
(1)消除置换矩阵P的影响得到变量:r′=cPT=mSG+ePT,其中m为明文,S为上文生成的K×K的可逆矩阵S,G为子域子码的生成矩阵,PT为P的转置矩阵,e为之前随机生成的长度为N的错误向量;
(2)清除错误位:r=O(r′),其中O为解码多项式;
(3)解得消息向量:m=rS-1,其中S-1表示矩阵S的逆矩阵。
CN201810707563.2A 2018-07-02 2018-07-02 一种基于椭圆曲线子域子码的加密解密算法 Active CN108712256B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810707563.2A CN108712256B (zh) 2018-07-02 2018-07-02 一种基于椭圆曲线子域子码的加密解密算法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810707563.2A CN108712256B (zh) 2018-07-02 2018-07-02 一种基于椭圆曲线子域子码的加密解密算法

Publications (2)

Publication Number Publication Date
CN108712256A CN108712256A (zh) 2018-10-26
CN108712256B true CN108712256B (zh) 2021-10-26

Family

ID=63873142

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810707563.2A Active CN108712256B (zh) 2018-07-02 2018-07-02 一种基于椭圆曲线子域子码的加密解密算法

Country Status (1)

Country Link
CN (1) CN108712256B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109379178B (zh) * 2018-11-15 2022-01-11 成都卫士通信息产业股份有限公司 加解密装置构建方法、系统、介质及设备
WO2020130869A1 (en) * 2018-12-21 2020-06-25 Communique Laboratory Inc. A cryptographic system and method
CN109889321B (zh) * 2019-02-26 2020-09-18 清华大学 一种用于格公钥密码的错误采样方法
CN110348229B (zh) * 2019-06-11 2021-09-21 北京思源理想控股集团有限公司 数据的加密方法及装置、数据的解密方法及装置
CN110266481B (zh) * 2019-06-14 2022-05-20 深圳职业技术学院 基于矩阵的后量子加、解密方法与解密装置
CN113098691B (zh) * 2021-03-25 2021-11-23 北京百度网讯科技有限公司 数字签名方法、签名信息的验证方法、相关装置及电子设备
CN113726505B (zh) * 2021-07-29 2022-11-04 中国科学院信息工程研究所 加密解密方法、装置、电子设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1232588A (zh) * 1996-08-19 1999-10-20 Ntru密码系统公司 公用密钥密码系统方法及设备
CN1890916A (zh) * 2003-10-03 2007-01-03 松下电器产业株式会社 使用椭圆曲线的信息传输系统、加密设备和解密设备
CN102484588A (zh) * 2009-06-16 2012-05-30 茂福公司 基于简化椭圆曲线的加密方法
CN106911461A (zh) * 2017-01-13 2017-06-30 江苏大学 一种安全轻量的McEliece公钥掩码加密方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180176015A1 (en) * 2016-12-16 2018-06-21 Yongge Wang Method and Apparatus for Public Key Encryption Scheme RLCE and IND-CCA2 Security

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1232588A (zh) * 1996-08-19 1999-10-20 Ntru密码系统公司 公用密钥密码系统方法及设备
CN1890916A (zh) * 2003-10-03 2007-01-03 松下电器产业株式会社 使用椭圆曲线的信息传输系统、加密设备和解密设备
CN102484588A (zh) * 2009-06-16 2012-05-30 茂福公司 基于简化椭圆曲线的加密方法
CN106911461A (zh) * 2017-01-13 2017-06-30 江苏大学 一种安全轻量的McEliece公钥掩码加密方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于LDPC码的McEliece加密体制研究;冷文燕;《中国优秀硕士学位论文全文数据库 信息科技辑》;20110915;第三章 *

Also Published As

Publication number Publication date
CN108712256A (zh) 2018-10-26

Similar Documents

Publication Publication Date Title
CN108712256B (zh) 一种基于椭圆曲线子域子码的加密解密算法
Sendrier Code-based cryptography: State of the art and perspectives
Overbeck Structural attacks for public key cryptosystems based on Gabidulin codes
Wang Quantum resistant random linear code based public key encryption scheme RLCE
Janwa et al. McEliece public key cryptosystems using algebraic-geometric codes
Shrestha et al. New McEliece cryptosystem based on polar codes as a candidate for post-quantum cryptography
Rashwan et al. Security of the GPT cryptosystem and its applications to cryptography
Hooshmand et al. Reducing the key length of McEliece cryptosystem using polar codes
Agrawal et al. Elliptic curve cryptography with hill cipher generation for secure text cryptosystem
Gabidulin Attacks and counter-attacks on the GPT public key cryptosystem
Baldi et al. Soft McEliece: MDPC code-based McEliece cryptosystems with very compact keys through real-valued intentional errors
Hooshmand et al. Secret key cryptosystem based on non-systematic polar codes
Gabidulin et al. On improving security of GPT cryptosystems
Vambol et al. McEliece and Niederreiter Cryptosystems Analysis in the Context of Post-Quantum Network Security
Kobara et al. On the one-wayness against chosen-plaintext attacks of the Loidreau's modified McEliece PKC
Liu et al. A secure and efficient code-based signature scheme
Kumar et al. McEliece cryptosystem: simulation and security vulnerabilities
CN113132100B (zh) 一种基于滑窗QC-LDPC码的McEliece体制加解密方法
Pham et al. Security of the Cryptosystem GPT Based on Rank Codes and Term-rank Codes
Bhatia et al. Post-Quantum Cryptography
Samokhina et al. Code-based cryptosystems evolution
Xu et al. Attacking the Niederreiter-type cryptosystem based on rank metric
Dharani et al. Quantum Resistant Cryptographic Systems for Blockchain Network
Sahu et al. Secure Modified QC-LDPC Code Based McEliece Public Key Encryption Scheme
Niebuhr et al. Application of algebraic-geometric codes in cryptography

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant