真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

經(jīng)典密碼學(xué)——行置換加密法-創(chuàng)新互聯(lián)

很多教材上對于行置換密碼、列置換密碼的定義都不是完全相同,甚至核心思想根本不一樣。筆者就自己學(xué)習(xí)的經(jīng)歷,簡單介紹一種一些教材上所謂的“行置換密碼”的算法,大家一起交流、探討。

創(chuàng)新互聯(lián)公司專注于利辛企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),商城建設(shè)。利辛網(wǎng)站建設(shè)公司,為利辛等地區(qū)提供建站服務(wù)。全流程按需策劃,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

利用這種加密方法,明文按行填寫在一個矩陣中,而明文則是以預(yù)定的順序按列讀取生成的。例如如果矩陣是4列5行,那么明文“encryption algorithm”(省去空格后)可以如下寫入該矩陣:

2 3 1 4
e n c r
y p t i
o n a l
g o r i
t h m s

按一定的順序讀取列以生成密文。

對于這個示例,如果讀取順序為遞增順序,則明文就是:“ctarm eyogt npnoh rilis”(添加空格只是為了便于觀察)。這種加密法的密鑰是列數(shù)和讀取列的順序。如果列數(shù)很多,記起來可能會比較困難,因此它可以表示成一個關(guān)鍵詞,該關(guān)鍵詞的長度等于列數(shù),而其字母順序決定讀取列的順序。

例如,關(guān)鍵詞“general”有7個字母,意味著矩陣有7列。由于“a”是“general”中字母順序最低的,因此數(shù)字1放在第6列;從左往右,第一個“e”為其次,所以數(shù)字2放在第2列;第二個“e”則是使數(shù)字3放在第4列。最后的順序如下:

g  e  n  e  r  a  l

4  2  6  3  7  1  5

_______________________________________________________________________________________

This scheme is to write the message in a rectangle, row by row, and read the message off, column by column, but permute the order of the columns.The order of the columns then becomes the key to the algorithm.For example,

      Key:   4  3  1  2  5  6  7

   Plaintext:   a  t  t  a  c  k  p

          o  s  t  p  o  n  e

          d  u  n  t  i  l  t

          w  o  a  m  x  y  z

   Ciphertext:  ttna aptm tsuo aodw coix knly petz (再次強調(diào),空格只是為了便于觀察)

Thus, in this example, the key is 4312567.To encrypt, start with the column that is labeled 1, in this case column 3. Write down all the letters in that column.

**************************************************************************************

上述的是一次加密,也可把上述密文當做新一輪加密的明文,再次進行行置換加密。

參考資料:

《Cryptography and Network Security Principles and Practice, Fifth Edition》

                        ————William Stallings

《Classical And Contemporary Cryptology》    ————Richard Spillman

  1. //Z26上的行置換密碼
  2. #include
  3. #include
  4. #include
  5. #include
  6. int//明文長度
  7. char
  8. char
  9. char
  10. int//密鑰長度
  11. int//密鑰
  12. int//標記是否已經(jīng)被轉(zhuǎn)換為數(shù)字
  13. int//把密鑰換成數(shù)字
  14. int//臨時矩陣,存放使順序遞增的下標序號
  15. void//密鑰生成算法
  16. void
  17. void
  18. intint
  19. int
  20. int
  21. FILE
  22. "plain.txt""r"
  23. "%s"http://從文件讀入明文
  24. "以上正確"
  25. for
  26. "%c"
  27. return
  28. void//密鑰生成算法
  29. int
  30. "請輸入想生成的隨機密鑰的長度:"
  31. "%d"
  32. for
  33. "\n隨機產(chǎn)生的密鑰串為:"
  34. for
  35. "%c "
  36. "\n\n"
  37. char//臨時矩陣,為了更方便的把密文轉(zhuǎn)換出來
  38. //這個數(shù)組必須設(shè)置為全局的,在函數(shù)中聲明的話申請內(nèi)存會出錯!!!
  39. void
  40. ///轉(zhuǎn)換:把密鑰字符串排序,變成數(shù)字
  41. int
  42. int
  43. int//每輪循環(huán)給"最小"的字母編號(未編號的、靠前的、序號小的字母為最小)
  44. for//把字母換成從1開始的數(shù)字
  45. while
  46. for
  47. if//沒轉(zhuǎn)換則繼續(xù)
  48. if
  49. //
  50. "The order of the key is :\n"
  51. for
  52. "%d "
  53. "\n"
  54. for//忽略非字母字符,把大寫轉(zhuǎn)換為小寫
  55. if
  56. while
  57. "p"http://不能整除時補上無效字符p
  58. //生成密文矩陣
  59. for//行
  60. for//列
  61. for//列
  62. for
  63. if
  64. for//列
  65. for//行
  66. char
  67. void//解密函數(shù)
  68. int
  69. for//num[i]作為列
  70. for//行
  71. for//行
  72. for//列

 //同文件夾下需要有“plain.txt”文件,里面必須全部是英文字母,可大小寫混雜,但是不能出現(xiàn)其他字符,如空格、回車換行、數(shù)字等。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


網(wǎng)頁標題:經(jīng)典密碼學(xué)——行置換加密法-創(chuàng)新互聯(lián)
URL分享:http://weahome.cn/article/jeiip.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部