原创 根据“CRC编解码矩阵”扩充一些“CRC性质”

2009-7-23 23:19 2767 3 3 分类: MCU/ 嵌入式

点击直接运行: 112位HotWC3/CRC通用网上演算器V2.20

运行后点击“CRC表”皆可看到“CRC编解码矩阵”,只给出了CRC4的,其他CRC我都验证过。


“CRC性质”:
CRCN=4,8,12,16,32,64,...
    CRC4时:2^(N-1)=0x8    2^N-1=0xF
    CRC8时:2^(N-1)=0x80  2^N-1=0xFF
    CRCN时:...
注意右移时的2^(N-1),这可能是大多的CRC选择左移方式(0x01简单和位数无关)的原因所在。
特别注意:CRC内部运算时,右移时,权最高位恒为1。左移时,权最低位恒为1.


1.当明文=上次密文即明文=初值时, 本次密文(结果)=0
2.右移时
  初值=0x00,明文=2^(N-1)时,本次密文=权
  初值=2^(N-1),明文=0x00时,本次密文=权
  故有初值在明文的位置和权在明文的位置互为相反数2^(N-1)


  在初值和权确定且未知时,穷举明文:
    穷举明文对应的密文为0x00时的穷举位置=初值,穷举结束。
    穷举位置^(2^(N-1))做为明文对应的密文=权。
    初值=0x00时,权必对应明文2^(N-1)。
    初值=2^N-1时,权必对应明文0.
3.左移时
  初值=0x00,明文=0x01时,本次密文=权
  初值=0x01,明文=0x00时,本次密文=权
  故有初值在明文的位置和权在明文的位置互为相反数0x01


  在初值和权确定且未知时,穷举明文:
    穷举明文对应的密文为0x00时的穷举位置=初值,穷举结束。
    穷举位置^0x01做为明文对应的密文=权。
    初值=0x00时,权必对应明文0x01。
    初值=2^N-1时,权必对应明文(2^N-1)^0x01.
4.初值=权=0时,明文=密文
5.初值=2^N-1,权=0时,明文=~密文。即明文=密文^(2^N-1)


根据“CRC编解码矩阵”扩充一些“CRC性质”
6. 一个CRC权值确定一对唯一的CRC编解码矩阵。
   CRC编码矩阵的行列对应CRC初值和明文,矩阵行列内的元素即为密文。
   CRC解码矩阵的行列对应CRC初值和密文,矩阵行列内的元素即为明文。
7. CRC编码矩阵是一个对称矩阵,初值和明文满足交换率。
8. CRC解码矩阵是一个非对称矩阵。有两种CRC解码矩阵除外。
8.1 右移时,由于权最高位恒为1,当权=2^(N-1)时,
CRC解码矩阵=CRC编码矩阵。明文和密文满足交换率。
8.2 左移时,由于权最低位恒为1,当权=1时,
CRC解码矩阵=CRC编码矩阵。明文和密文满足交换率。


从“性质”7,8可以看出一个很有意思的事情:
当CRC解码矩阵=CRC编码矩阵时,初值、明文和密文可以互相交换。


点击开大图


点击开大图


点击开大图

PARTNER CONTENT

文章评论0条评论)

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