我念叨Hill Cipher加密算法,從維基百科。我看到我有一個關鍵矩陣,它必須乘以值的矩陣。但有兩件事我不明白。26模在山上密碼加密
我不知道的(MOD 26)的平均值。我知道這是模26,但我不知道它是什麼應用?
至於第二個問題,我無法理解其中矩陣[15 14 7]是來自?
任何好的解釋將不勝感激。
我念叨Hill Cipher加密算法,從維基百科。我看到我有一個關鍵矩陣,它必須乘以值的矩陣。但有兩件事我不明白。26模在山上密碼加密
我不知道的(MOD 26)的平均值。我知道這是模26,但我不知道它是什麼應用?
至於第二個問題,我無法理解其中矩陣[15 14 7]是來自?
任何好的解釋將不勝感激。
26
是你的字典,這恰好是英文字母(A至Z)的長度的長度。使用模運算符可以將矩陣乘法(加密)的每個可能輸出映射到字母表中的一個字母(834 = 2 (mod 26)
,它是B),它允許您以字母串的形式存儲加密的消息。
的[15 4 7]
從基質[67 222 319] (mod 26)
傳來:
三重等號指基質[67 222 319]
是全等[15 4 7]
模26在左側矩陣的每個元素應該是一致的模26到右邊矩陣的相應元素,因此您可以將模運算符應用於左手矩陣中的每個元素以獲取右手矩陣中的每個元素。
所以,你乘兩個矩陣在一起,然後你得到的加密矩陣。然後你可以以26爲模數生成矩陣的每個值。
國防部26只是一般意味着,「該值模26」
嗨,這就是所謂的模塊化算術它是becoz有26個字母在字母表中0是A 1是B ... 25是Z所以什麼字母是27不清楚這就是爲什麼你用模運算符圍繞數字%或mod每次你得到一個大於25或小於0的數字,那麼0在這方面用mod 26環繞27是B becoz 27 mod 26 = 1矩陣[15 14 7]來自[67 222 319] becoz 67 mod 26 = 15 222 mod 26 = 14和319 mod 26 = 7 :)
怎樣才能在程序中計算它,java中使用'fir'的fir示例? – Adham
是的,這是模運算符。如果您不想使用矩陣代數庫,則需要手動將加密矩陣和消息向量相乘。 – Blender
是的,我已經做了,但是在「矩陣代數庫」中你是什麼意思? – Adham