24小时热门版块排行榜    

查看: 2356  |  回复: 7
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

lphit

新虫 (小有名气)

[交流] 【求助】关于在有限域GF(2^8)里计算的问题 已有3人参与

各位xdjm,我遇到了一个关于在有限域GF(2^8)里计算的问题,特此请教大家。

问题描述:
    为了把计算结果限制在0到255之间,采用有限域GF(2^8)内运算。
    f(x)=(a+b*x+c*x^2)mod g(x), 其中g(x)=x^8+x^4+x^3+x+1;

由不同的整数x计算出三个坐标(x1,f(x1)),(x2,f(x2)),(x3,f(x3)).
然后利用三个坐标求解 a,b,c。

问题:如何利用x值计算出f(x),使其大小在0到255之间的?
      如何利用坐标值,求解a,b,c.

谢谢大家!

[ Last edited by Doctorcbw on 2010-6-24 at 08:17 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lizh714285

金虫 (小有名气)


小木虫(金币+0.5):给个红包,谢谢回帖交流
第二步仿佛不那么简单。因为牵涉取模,有些值已经变了。
所以,一般说三组数据可能求不出a,b,c来。
如果数据多,可以遍历。
比如,分别令a,b,c遍历0到255,检查是否总是能把x变换为f(x)
这个计算量可能太大了,要检查2的24次方那么多种组合。
2的10次方是1024,20次方是百万级的,2的24次方是1600万级别的。


这个问题我没有想透,看有没有高手有更好的建议

[ Last edited by lizh714285 on 2010-6-25 at 17:49 ]
6楼2010-06-25 17:44:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 8 个回答

lizh714285

金虫 (小有名气)


小木虫(金币+0.5):给个红包,谢谢回帖交流
楼主能不能把问题阐述得更清楚一些呢?
2楼2010-06-24 07:28:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lphit

新虫 (小有名气)

分两步:
1、给定a,b,c,如何求坐标
2、给定坐标,如何求系数a,b,c
3楼2010-06-24 08:31:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lizh714285

金虫 (小有名气)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
javeey(金币+3):谢谢提供帮助 2010-06-24 20:49:06
先说第一步,如果给定a,b,c和x,求f(x)
         要求a,b,c和x都是在0到255之间的整数(含0和255)
    (如果x不在这个范围,理应通过变换 x‘=x+256*K,(K是某个整数)使其进入这个范围)
   1)将a,b,c,x分别写成2的各次幂的多项式形式,(除以2取余,商再除以2取余....)
           譬如27,写成16+8+2+1, 即1*2^4+1*2^3+1*2+1的形式;
      2)  取上述各结果中,2的各次幂的系数,作为多项式形式的同次幂系数,构成多项式
           譬如 27  就对应 1*y^4    +    1*y^3   +    1*y  + 1
           这样就获得了a,b,c,x四个关于y的多项式
   3)对这4个多项式做:f(x)=(a+b*x+c*x^2)  (依据普通的多项式乘法和加法运算规则)
                     f(x)也是一个关于y的多项式(最高次幂可能会大于8,没关系)
   4)对f(x)的各项系数,做模2运算(单数得1,双数为0),令为Q,这还是一个关于y的多项式
   5)将Q除以多项式 y^8  +  y^4  +  y^3  +  y  +  1  取余 (依据普通的多项式除法取余运算规则);令这个余式为 h
       6) 对于h的各项系数,做模2运算(单数为1,双数为0)结果令为p(是关于y的小于8次幂的,各系数为0或1的多项式)
   7)将y=2带入p,求出数值就是楼主想要的f(x)了

[ Last edited by lizh714285 on 2010-6-24 at 20:33 ]
4楼2010-06-24 20:29:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见