文章**知乎
threathunter
看乙個小時候經常在《趣味數學》這類書裡的乙個數學小魔術:
讓對方任意想乙個3位數,並把這個數和91相乘,然後告訴我積的最後三位數,我就可以猜出對方想的是什麼數字啦!比如對方想的是123,那麼對方就計算出123 * 91等於11193,並把結果的末三位193告訴我。看起來,這麼做似乎損失了不少資訊,讓我沒法反推出原來的數。不過,我仍然有辦法:只需要把對方告訴我的結果再乘以11,乘積的末三位就是對方剛開始想的數了。可以驗證一下,193 * 11 = 2123,末三位正是對方所想的秘密數字!
其實道理很簡單,91乘以11等於1001,而任何乙個三位數乘以1001後,末三位顯然都不變(例如123乘以1001就等於123123)。
知道原理後,我們可以構造乙個定義域和值域更大的加密解密系統。比方說,任意乙個數乘以400000001後,末8位都不變,而400000001 = 19801 * 20201,於是你來乘以19801,我來乘以20201,又乙個加密解密不對稱的系統就構造好了。
甚至可以構造得更大一些:4000000000000000000000000000001 = 1199481995446957 * 3334772856269093,這樣我們就成功構造了乙個30位的加密系統。
這是一件非常coooooooool的事情,任何人都可以按照我公布的方法加密乙個數,但是只有我才知道怎麼把所得的密文變回去。
其安全性就建立在算乘積非常容易,但是要把4000000000000000000000000000001分解成後面兩個數相乘,在沒有計算機的時代幾乎不可能成功!但如果僅僅按照上面的思路,如果對方知道原理,知道我要構造出帶很多0的數,根據19801和8位演算法這2個條件非常容易窮舉出400000001這個目標值。
要解決這個問題,真實世界就不是使用乘法了,比如rsa演算法使用的是指數和取模運算,但本質上就是上面這套思想。
對稱加密 非對稱加密理解
首先,對稱加密是指傳送方和接收方,都使用一套加密方式進行加密。比如a向b傳送訊息 holle,按英文本母分別向後移動12345進行加密,那麼得到的加密後的是訊息是 isooj,將isooj傳送給b,b再按按英文本母向前移123456位,則解密出holle這個正確的訊息。這就是對稱加密。但是對稱加密存...
對稱加密 非對稱加密
區別在於加密金鑰和解密金鑰是否一樣,一樣則是對稱加密,不一樣則是非對稱加密。對稱加密計算量小,但若不同的客戶端使用不能的金鑰時,伺服器的複雜大。常用的對稱加密包括 des 3des aes des 3des使用的架構為feistel。des金鑰長度為56位,3des相容des,可設定3個56位密碼,...
對稱加密 非對稱加密
1 對稱加密 對稱加密採用了對稱密碼編碼技術,它的特點是檔案加密和解密使用相同的金鑰,即加密金鑰也可以用作解密金鑰,這種方法在密碼學中叫做對稱加密演算法,對稱加密演算法使用起來簡單快捷,金鑰較短,且破譯困難,除了資料加密標準 des 另乙個對稱金鑰加密系統是國際資料加密演算法 idea 它比des的...