2012-02-05 18 views
0

我正在研究一個實現Merkle Hellman揹包的java問題。維基百科頁面是http://en.wikipedia.org/wiki/Merkle%E2%80%93Hellman_knapsack_cryptosystemMerkle Hellman揹包加密系統

用一些簡單的樣本數據進行測試後,其中一些成功,另一些則不成功。例如, input ='f'; (01100110)

加密:

w = (1,2,4,7,12,20,33,54) 

r = 147 

q = 250 

b = (147,44,88,29,14,190,101,188) 

r-1(reverse) = 233 (r*r-1 mod q =1) 

The cryptogram is therefore 423 (=44+88+190+101) 

Decryption: 

Then 423 * 233 mod 250 = 59 

59-54=5 
5-4=1 
1-1=0 

結果是10100001.但它是錯誤的!

我已經檢查了很多次,只是找不到我的過程中哪一步出錯。另外,我知道我使用的數字應該是隨機的。在這裏,我只是想舉一個例子。

任何人都可以點亮這個燈?

非常感謝!

回答

5

你的w不是超級增加。

+1

這給了我一些關於stackoverflow實際工作方式的新見解...... – 2012-02-05 23:25:47