爲什麼不使用OTP來加密多個消息,但XOR之後的每個加密都可以在CT上執行諸如替代/ ceasar密碼之類的操作?使用ceasar加密的OTP加密
1
A
回答
0
重複使用一次性鍵盤很不好,因爲它提供了有關鍵的信息。
p: a plaintext message to be encrypted: p_1 p_2 ... p_n
e_i: encryption of p_i with key k_i
otp: e_i = p_i^k_i for ii in 1..n
如果您加密多條消息,你異或在一起你喜歡的東西
e1_1^e2_1 = p1_1^k_1^k_1^p2_1
,自k_1^k_1
取消變成
e1_1^e2_1 = p1_1^p2_1
讓你即刻了解消息的信息,但如果你碰巧知道關於輸入的一些信息,你還可以學習一些關於密鑰的知識。
通過像愷撒密碼,你可能意味着
e2_1 = p2_1^(k_1+13)
這是假設你的鑰匙和信息空間的26字母表。 不幸的是,在2封郵件之後,你的鑰匙再次包裝,你又回到了以前的同樣的問題。 (還有其他很大的問題)
更一般地說,無論你做了什麼簡單的事情,你都會放棄關於消息的信息,而且通常是關鍵信息。攻擊者通常可以建立一個大矩陣的方程,並使用線性代數來解決密鑰,一旦你給他們足夠的信息。
但是,如果你把你正在做簡單的事情,並使其越來越複雜,最終得到一個點,
kn: the key for the nth message
kn = f(k,n) for some function k
使得攻擊者不能學顯著有關f(k,n) given
F(K, m)for
n!= m , you've invented a stream cipher. People do use stream ciphers all the time; they are not as secure as OTP, but they are a core of internet security. The trick of course is figuring out a good function
f`;描述如何做到這一點超出了這個問題的範圍。 (而且我實際上並沒有這個技能)。
相關問題
- 1. 使用Crypto ++/AES CFB加密的加密
- 2. 使用Javascript加密密碼
- 3. 加密,使用Rails解密
- 4. 使用Carrierwave加密/解密
- 5. 加密/解密使用EVP_ *
- 6. 使用PGP密鑰加密
- 7. 使用AES加密/解密
- 8. 使用AES加密來加密文件
- 9. C中的簡單Ceasar密碼
- 10. 解密 - 加密加密JS
- 11. 使用Jasypt加密和解密密碼
- 12. 使用node.js加密/解密密碼
- 13. 使用TripleDES加密解密密碼
- 14. 解密AES加密在C#中使用加密的js
- 15. 是否可以解密使用「IonCube」加密加密的文件?
- 16. 加密:使用基於密碼的加密(PBE)
- 17. Ceasar密碼方法的解密不工作,並沒有打印
- 18. 加密的加密數據
- 19. CryptoJS中加密解密的Javascript加密
- 20. 未加密密碼的加密密碼用戶羣
- 21. 加密/解密文件。用於加密/解密的ASCII +1
- 22. 加密使用AES 128位加密和密鑰
- 23. 使用ansible對加密AWS .pem密鑰文件進行加密
- 24. 有關加密和解密使用加密++庫
- 25. Cron Curl - 使用加密的密碼?
- 26. 使用ZipArchive類的加密/解密
- 27. 使用php加密
- 28. 使用用戶密碼進行加密
- 29. 加密密碼
- 30. 加密密碼
而這樣的事情:cipher = m ^鍵,然後洗牌的人物?如果攻擊者不知道我們的洗牌功能,攻擊者將無法獲得關於我們的密鑰或純文本的任何信息。 –
如果攻擊者確實無法獲得任何信息,那麼確定。它不會是通過此外,請注意,洗牌功能不能超過一次。通常還認爲攻擊者知道你的所有功能,只是不知道他們的密鑰。 –