24小时热门版块排行榜    

查看: 2354  |  回复: 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):给个红包,谢谢回帖交流
楼主能不能把问题阐述得更清楚一些呢?
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的回帖

lphit

新虫 (小有名气)

引用回帖:
Originally posted by lizh714285 at 2010-06-24 20:29:32:
先说第一步,如果给定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分 ...

非常感谢,说得很正确.
再次谢谢

不过对于第二步,是否可以用Lagrange插值求解,如果不是有限域,是实数域的话肯定就可以了。
5楼2010-06-25 16:04:19
已阅   回复此楼   关注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的回帖

lizh714285

金虫 (小有名气)


小木虫(金币+0.5):给个红包,谢谢回帖交流
不是有限域那就太简单了,三元一次方程组
7楼2010-06-25 18:25:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

武源

新虫 (初入文坛)


小木虫: 金币+0.5, 给个红包,谢谢回帖
这个问题,楼主搞定没有?
8楼2015-08-17 22:22:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lphit 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见