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

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

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值