二进制域运算
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
模乘
有 a= a159z159+ … + a1z1+ a0 b= b159z159+ … + b1z1+ b0 求模乘 c=a*b
模乘
方法一:根据bi选择a或0,移位后模加到部分积上。 可以对每个部分结果进行模约减。
c = 0; for i = 0 … 159 t = bi * a * zi (mod f(z)); c = c ^ t;
基于GF(2m)的ECC
一、有限域运算
同济大学微电子中心 任浩琪
v1.0
约束条件
二进制域GF(2m) 多项式表示法
am-1zm-1+ … + a1z1+ a0 zm+r(z)
其中z=2
ai=0或1
选取一个既约(约减)多项式f(z)
以GF(2160)为例
m=160 a159z159+ … + a1z1+ a0 f(z) = z160+r(z) = z160+z5+z3+z2+1
模约减
当i= 315时,k=155,得到 z160、z158、z157、 z155 ,进一步得到: z158、z157、 z155 、z5、z3、z2、1 当i= 316时,k=156,得到 z161、z159、z158、 z156 ,进一步得到: z159、z158、 z156 、z6、z4、z3、z 当i= 317时,k=157,得到 z162、z160、z159、 z157 ,进一步得到: z159、 z157 、Βιβλιοθήκη Baidu7、z5、 z5、 z4、 z3、 z2 、z2、1,即: z159、 z157 、z7、z4、 z3、 1, 当i= 318时,k=158,得到 z163、z161、z160、 z158 ,进一步得到: z158 、z8、z6、 z6、 z5、 z5、 z4、 z3、 z3、z3、z2、 z、 1即: z158 、z8、z4、 z3、z2、 z、 1
模平方
有 a= a159z159+ … + a1z1+ a0 求模平方 c = a2 mod f(z)
c = a2 mod f(z) = a*a mod f(z) 可以用模乘求解 也可以找出规律,进一步化简
模逆
有 a= a159z159+ … + a1z1+ a0 求模逆 a-1,使得: a* a-1 mod f(z) = 1
模乘
方法二:多项式展开,并行计算所有ci。该方法不需要模约减。
c0 = a0 * b0; c1 = a1 * b0 ^ a0 * b1; …… cm-1 = am-1 * b0 ^ am-2 * b1 ^ …… ^ a1 * bm-2 ^ a0 * bm-1 ; …… c2m-3 = am-1 * bm-2 ^ am-2 * bm-1; c2m-2 = am-1 * bm-1;
费马小定理: a-1 = a2 * a2*2 * a2*2*2 * ……* a2*2*……*2 可以找出规律,用较少次数的平方实现
(即:2(m-1))
模加
有 a= a159z159+ … + a1z1+ a0 b= b159z159+ … + b1z1+ b0 求模加 c=a+b 则 c= c159z159+ … + c1z1+ c0 c159 = a159 ^ b159 c158 = a158 ^ b158 …… c1 = a1 ^ b1 c0 = a0 ^ b0
模约减
例如:a230= 1,则有z230项 由于 z230 =z160+70 = r(z)*z70 mod f(z) = z75+z73+z72+ z70 因此可以将z230约减为z75+z73+z72+ z70, 即用‘1’与z75 、z73、z72、z70项模加(异或)
容易推导得: 当i=0~159时:只会得到 zi 一项 当i= 160~314时: 即k=0…154,会产生zk+5、zk+3、zk+2、 zk+0 四项
模约减
有 a= a159z159+ … + a1z1+ a0 f(z) = z160+r(z) = z160+z5+z3+z2+1 求模约减 c = a mod f(z)
注意: f(z) = z160+r(z) z160 = -r(z) mod f(z) = r(z) mod f(z) z161 = r(z)*z mod f(z) z162 = r(z)*z2 mod f(z) …… z160+k = r(z)*zk mod f(z)