当前位置: 首页 > 工具软件 > NTRU > 使用案例 >

密码学---公钥密码---NTRU公钥密码系统

佘飞鸣
2023-12-01

NTRU公钥密码系统概念

NTRU是一种基于环的公钥密码系统,系统的特点是密钥短且容易产生、算法的运算速度快、所需的存储空间小

NTRU公钥密码系统流程

系统建立在整系数多项式环上,现对多项式环做如下介绍:
设R表示最高次数不超过N-1的所有整系数多项式集合,设a=a0+a1x+a2x2+…+aN-1xN-1,b=b0+b1x+b2x2+…+bN-1xN-1是R上的两个元素,且定义R上的加法定义为:a+b=(a0+b0)+(a1+b1)x+(a2+b2)x2+…+(aN-1+bN-1)xN-1。乘法定义为:a×b=c0+c1x+c2x2+…+cN-1xN-1,其中ck的定义如下所示:

参数

NTRU公钥密码的参数包括3个整数(N,p,q),其中p和q不要求是素数,但满足gcd(p,q)=1其q大于p
还包括4个次数为N-1的整系数多项式集合Lf,Lg,LΦ,Lm

密钥产生

密钥的产生由接受方B完成。过程如下:
1.随机选取两个多项式f,g∈Lg,且多项式f在模q和模p下均可逆,逆元用Fq和Fp表示。即Fq×f ≡ 1 (mod q)和Fp×f ≡ 1 (mod p)
2.计算h=Fq×g (mod q)
3.确定公钥为h,私钥为f,且接收者还需要保存Fp

加密流程

有明文数据m∈Lm,对m进行加密操作:
1.随机选取多项式Φ∈LΦ
2.用公钥h对明文消息进行加密,得到密文c的结果如下所示:
e≡pΦ*h+m (mod p)

解密流程

对密文数据e,用私钥f对其进行如下解密操作:
1.计算a≡f*e (mod q),a的系数选在(-q/2,q/2)范围内
2.将a作为一个整系数多项式,计算Fp*a(mod p)即可恢复明文m

 类似资料: