原创 升级HotWC3/CRC网上演算器(已支持CRC4和CRC12)

2009-7-10 01:17 3273 3 3 分类: MCU/ 嵌入式

(已支持CRC4和CRC12并加入可逆选择)


本次升级主要是添加CRC表格查询及CRC可逆运算验证功能。


大家从本版本可以清晰地看到CRC实际有很多表,


例如常用的CRC8实际多达2*32*1024张表格。


而我们常用的实际只是其中的一张表格。


大家可以自己验证在CRC密钥(初值、权及方向)不变时(一张表),


明文和密文是一对一的关系。


点击直接在网上运行: http://www.hotc51.com/HotPower_HotWC3.html


点击看大图


 


点击开大图


点击开大图


点击开大图


点击开大图


点击开大图


 


玩熟这个演算器后,就会发现CRC查表法实际是围绕在某个多项式(权)和初值为0时得到的“初表”。
随后初值以某规律移动和异或后得到的“新表”,不过一般只取一值。

再我们可以看到CRC如此的“勤劳”,在CRC密钥(初值和权及方向)一定时,CRC表内值是不重复的,
即一对一的关系。故我们可以“查表”求CRC.

当CRC密钥的初值非0或权非0时,表内看似“伪随机”。

故我们可以用来做“摇奖程序”~~~在此处绝对比随机函数好用~~~
某些时候真可以替代随机函数~~~

注意CRC的“半可逆性”(菜农做过手脚后发生的现象):

右移CRC8  权8C和0C是一张表
左移CRC8  权07和06是一张表

故CRC8有2*32*1024张表(左右移算法各有32K张表)。
并且在“弱密钥”权=0时,左右移算法表是一样的。
故CRC8有2*32*1024-256张表。

这里给出一些“性质”(以CRC8为例,其他一样):

1.当明文=上次密文时, 本次密文(结果)=0
2.右移时
  初值=0x00,明文=0x80时,本次密文=权
  初值=0x80,明文=0x00时,本次密文=权
3.左移时
  初值=0x00,明文=0x01时,本次密文=权
  初值=0x01,明文=0x00时,本次密文=权
4.初值=权=0时,明文=密文
5.初值=0xff,权=0时,明文=!密文

升级HotWC3/CRC网上演算器为2.01的目的主要是有助于研究古典密码和分组密码。

例如维吉尼亚密码的排列:
  A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 
  B C D E F G H I J K L M N O P Q R S T U V W X Y Z A 
  C D E F G H I J K L M N O P Q R S T U V W X Y Z A B 
  D E F G H I J K L M N O P Q R S T U V W X Y Z A B C 
  E F G H I J K L M N O P Q R S T U V W X Y Z A B C D 
  F G H I J K L M N O P Q R S T U V W X Y Z A B C D E 
  G H I J K L M N O P Q R S T U V W X Y Z A B C D E F 
  H I J K L M N O P Q R S T U V W X Y Z A B C D E F G 
  I J K L M N O P Q R S T U V W X Y Z A B C D E F G H 
  J K L M N O P Q R S T U V W X Y Z A B C D E F G H I 
  K L M N O P Q R S T U V W X Y Z A B C D E F G H I J 
  L M N O P Q R S T U V W X Y Z A B C D E F G H I J K 
  M N O P Q R S T U V W X Y Z A B C D E F G H I J K L 
  N O P Q R S T U V W X Y Z A B C D E F G H I J K L M 
  O P Q R S T U V W X Y Z A B C D E F G H I J K L M N 
  P Q R S T U V W X Y Z A B C D E F G H I J K L M N O 
  Q R S T U V W X Y Z A B C D E F G H I J K L M N O P 
  R S T U V W X Y Z A B C D E F G H I J K L M N O P Q 
  S T U V W X Y Z A B C D E F G H I J K L M N O P Q R 
  T U V W X Y Z A B C D E F G H I J K L M N O P Q R S 
  U V W X Y Z A B C D E F G H I J K L M N O P Q R S T 
  V W X Y Z A B C D E F G H I J K L M N O P Q R S T U 
  W X Y Z A B C D E F G H I J K L M N O P Q R S T U V 
  X Y Z A B C D E F G H I J K L M N O P Q R S T U V W 
  Y Z A B C D E F G H I J K L M N O P Q R S T U V W X 
  Z A B C D E F G H I J K L M N O P Q R S T U V W X Y 

根据数学的“全排列”定义,它的排列数应该有26!=40329...584000000
故此密码的编码只是其全排列的很小一部分。

再入DES的8个S盒。(6入4出)
每个S盒有4列16行,共16行32列。
根据数学的“全排列”定义,DES的S盒排列数应该有16!=20927789888000
故此密码的编码只是其全排列的很小一部分。

CRC4和DES的S盒都属于这个全排列,CRC4有16行(明文)256列(初值、权)。
可惜在CRC4的一行(表)中找不到DES的S盒的一行~~~
但我们可以在CRC4表中到处找到S盒的“身影”。
新版本可以让学密码学的新菜鸟们不会再害怕分组密码中“神奇的S盒”了~~~

菜农个人的理解为“类同CRC运算(编码)的输出表”,只是“非线性的程度”或“表达式”的不同。

虽然S盒号称“完全非线性”,但俺认为肯定有一确定的表达式,只不过是美国佬不愿公开。

新版本增添了对CRC4和CRC12的支持,并增添了“可逆选择”。以便菜农与专家论证HotWC3正式版。

特别是菜农认为的“CRC半可逆性”。

新版本还增添了在CRC密钥(初值、权及方向)确定时,明文和密文的“一对一”的关系的实际测试。

由于脚本软件的限制,只在CRC4上作出了“完全一对一”的验证和表格显示。其他CRC也可在某权值时证明。

由于界面尺寸和数据长度的问题,用CRC4研究可能更方便些。因为CRC4~CRC64甚至到CRCXXX内核算法完全一致。

新版本增添了“CRC表”按钮。功能最全的是CRC4,其他主要受PC环境和脚本软件的限制无法发挥。

操作“CRC表”我们可以得到在某“权值”下的“CRC表”,可以看到各种"CRC初值"下“CRC表”的奇妙排列。

每个表都像是个“古典密码”和“S盒”~~~

真是“CRC真奇妙”----这就是菜农钟爱CRC最大的原因~~~

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
3
关闭 站长推荐上一条 /3 下一条