国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 5479|回復: 2
打印 上一主題 下一主題

與王育民教授郵件中揭示的一些CRC編碼矩陣與CRC編解碼表之間的關系

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2009-8-11 01:24:11 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
關鍵詞: CRC , 教授 , 矩陣 , 郵件 , 育民
本帖最后由 hotpower 于 2009-8-11 01:41 編輯


http://vipblog.cqvip.com/user1/3643147/
HotWC3已升級到128位流密碼體系。
點擊直接運行: 128位HotWC3/CRC通用網上演算器V3.08


王老在某次郵件中指出:
XXX:你好!

...

     我想請你能將你的方案寫一個較簡明的說明,給出一個原理圖(不是軟件實現的流程圖),將流密鑰生成器的主要運算和步驟描述清楚,能反映出你的主要涉及思想和新穎之處。能讓別人能明白你的方案。

     當我能搞清楚了你的設計思想后,我們就可以做些討論了。

      祝好!

                                王育民


王老您好!
    不好意思,出差了幾天。
近日我又將CRC正運算和逆運算程序做了規范化,將其歸為CRC編解碼矩陣或CRC編解碼表。
這樣從編程角度很清晰,但數學證明對我很難。也許“隔行如隔山”吧。但我用窮舉證明都是對的。
只是在密碼學方面論據不足。
這些關系如下:(其中:初值為上次的密文)
//密文=CRC編碼矩陣[初值,明文]=CRC編碼矩陣[上次的密文,明文]
//密文=CRC編碼矩陣[0, 初值 xor 明文]=CRC編碼表[初值 xor 明文]
//密文=CRC編碼矩陣[0, 上次的密文 xor 明文]=CRC編碼表[上次的密文 xor 明文]
//明文=CRC解碼矩陣[初值,密文] = CRC解碼矩陣[上次的密文,密文]
//明文=初值 xor CRC解碼矩陣[0, 密文] = 初值 xor CRC解碼表[密文]

目前教科書和網上流傳的CRC查表法可歸納為:(注一般為左移CRCN)
//密文=CRC編碼表[((初值 >> (N-k)) ^ 明文) & (2 ** k - 1)] ^ (初值 << k)
其中N為CRCN,即CRC4,CRC8,CRC16,....k=4,8,16,...  **表示乘方運算 ^表示異或運算 >> <<表示移位
    N >= 4,一般取N>=16,k=8,即256個數據一個CRC表。

您說的“原理圖”我知道,不過太繁瑣。我畫的也不是程序流程圖。
“流密鑰生成器”我做的與鐘控、走停流密鑰偽隨機生成器相似。
總之是想得到“無限周期”的密鑰流。
圖中的子密鑰流主要為CRC核的各個參數都提供一個獨立的密鑰流。
本來CRC就是單向的,但知道了CRC密鑰就可逆了。
像A5密碼是由3個密鑰流組成的,它的核只是簡單的xor,而 HotWC3的核是CRC
故可為CRC核的各個參數都提供一個獨立的密鑰流。
這就是我選擇CRC做核的主要原因,這樣破解HotWC3只能窮舉,因為CRC的參數很多。
又由于CRC可“任意碰撞”,即冗余的原因。
一對多或多對一導致即使知道全部明文與密文對也無法知道CRC 密鑰。
CRC本不能作為密碼,因為它是單向的,但若加密和解密雙方都知道密鑰流即生成方法,
則加密和解密都是很容易的,反之不知道密鑰流則無法解密。
現列舉加密和解密程序片段:
/*
右移crc8正算法:
初值:crcvalue
權值:crcval
明文:crcbyte  = 輸入
結果:crcvalue = 輸出密文或下次初值
*/
function crc8r(crcbyte)
{
var i;
  crcbyte &= 0xff;//明文,它在正運算中的作用是提供跳變標志
//密文=CRC編碼矩陣[初值,明文]=CRC編碼矩陣[上次的密文,明文]
//密文=CRC編碼矩陣[0, 初值 ^ 明文]=CRC編碼表[初值 ^ 明文]
//密文=CRC編碼矩陣[0, 上次的密文 ^ 明文]=CRC編碼表[上次的密文 ^ 明文]
  crcvalue ^= crcbyte;
  for(i = 0; i < 8; i++){
    if (crcvalue & 0x01)
{
   crcvalue >>>= 1;
   crcvalue ^= crcval;
   if (checkbox.checked)//可逆選擇,不選擇將不可逆,主要驗證權值可逆的“論據”
     crcvalue |= 0x80;//強行可逆
}
else
{
   crcvalue >>>= 1;
}
  }
  crcvalue &= 0xff;//輸出密文(下次的初值)
}
/*
右移crc8逆算法:

初值:crcvalue
權值:crcval
密文:crcbyte
結果:crcvalue = 輸出明文
*/
function discrc8r(crcbyte)
{
var i;
  crcbyte &= 0xff;//初值
//明文=CRC解碼矩陣[初值,密文] = CRC解碼矩陣[上次的密文,密文]
//明文=初值 ^ CRC解碼矩陣[0, 密文] = 初值 ^ CRC解碼表[密文]
  for(i = 0; i < 8; i++){
    if(crcbyte & 0x80){//CRC正運算時隱含告訴過需要X8權的XOR運算
      crcbyte ^= crcval;//0x8C;//CRC=X8+X5+X4 D7(X8)的XOR被下句移位破壞
      crcbyte <<= 1;//與正運算移位相反才能還原
   crcbyte ^= 0x01;//強行可逆
    }
else
{
      crcbyte <<= 1;//與正運算移位相反才能還原
}
  }
  crcvalue ^= crcbyte;
  crcvalue &= 0xff;//輸出明文
}
祝好!
XXXX XXX  2009.8.10 1:15


我們可以發現:
密文 = CRC編碼表[初值 xor 明文]
明文 = 初值 xor CRC解碼表[密文]

固有:
明文 xor 初值 = CRC解碼表[密文]

則:
密文 = CRC編碼表[初值 xor 明文] = CRC編碼表[CRC解碼表[密文]]
明文 = 初值 xor CRC解碼表[密文] = 初值 xor CRC解碼表[CRC編碼表[初值 xor 明文]] = CRC解碼表[CRC編碼表[明文]]

故:CRC編解碼矩陣或CRC編解碼表是可逆的。

CRC算法做CRC密碼的加密強度不高的原因:

根據上述推導,“CRC編解碼表”實際就是在CRC密鑰(CRC權值和方向)確定時的置換序列。
由于CRC初值=上次CRC密文,故有:
密文 = CRC編碼表[上次CRC密文 xor 明文]
明文 = 上次CRC密文 xor CRC解碼表[密文]

故在解密CRC密碼時,“初值”只是一種擺設而已,其強度只能由CRC密鑰(CRC權值和方向)確定。

那么若CRC初值不等于上次CRC密文,則CRC密鑰將由三部分組成:CRC初值、CRC權值和CRC移位方向。

HotWC3就是根據這個思路來達到HotWC3密碼的“一次一密”即CRC初值也在隨機變換,增大密鑰實用長度。
沙發
發表于 2010-11-3 20:49:41 | 只看該作者
學習
板凳
發表于 2015-2-7 10:27:39 | 只看該作者
支持一下
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久国产99久久国产一 | 久草www| 亚洲自拍偷拍专区 | 天天摸日日操 | 失乐园在线观看 | 欧美日本一区二区 | 晚上看的www视频高清免费动漫 | 久久久综合视频 | 日本精品视频一区 | chinese在线播放91国内 | 青草青青产国视频在线 | 高清中文字幕免费观在线 | 日本在线观看www免费 | 91真实强推绝对不是演的 | 日韩欧美一区二区三区免费观看 | 国产精品国产三级国产专区不 | 国产欧美精品一区二区三区 | 一级片在线免费观看 | 精品欧美一区二区在线观看 | 精品精品国产高清a毛片牛牛 | jizz日本女护士 | 99久久精品无码一区二区毛片 | 国产美女白丝袜精品_a不卡 | 99在线小视频 | 免费人成在线观看网站视频 | 99精品在线 | 天天超逼 | 激情啪啪精品一区二区 | 日韩在线视频一区二区三区 | 岛国免费大片 | 国产成人精品三级 | 欧美freex| 99re6在线精品视频免费播放 | 久久精品国产99久久99久久久 | 亚洲精品国产精品国自产 | 成在线人永久免费视频下载 | 91天堂视频 | h版欧美一区二区三区四区 h版欧美大片免费观看 | 4虎.最新地址 | 亚洲午夜久久久久久噜噜噜 | 亚洲天堂男人天堂 |