爲什麼DES只能用於56bit密鑰?如果我們使用更長的鍵,會發生什麼?另外,爲什麼明文的長度必須是64位?爲什麼DES只能用於56bit密鑰?爲什麼明文的長度必須是64位?
1
A
回答
2
當時美國法規要求用戶使用強於56位密鑰的密鑰,提交至「密鑰恢復」以啓用執法後門訪問。
因此,作爲標準,在最大允許密鑰長度爲56位時指定了DES。如果您使用了更長的密鑰,則不會與其他DES系統兼容。
參見:http://en.wikipedia.org/wiki/56-bit_encryption
如果要實現一個系統&具有的加密選擇,更現代的&更強的密碼是絕對推薦。目前的標準將是AES(高級加密系統),它是廣泛可用的,強大的,並允許密鑰大小從128 - 256位。
對於桌面或服務器應用程序,AES-256將是一個很好的默認選擇。
參見:http://en.wikipedia.org/wiki/Advanced_Encryption_Standard
當加密數據,明文必須經常「填充」的最小尺寸。密碼依賴於多個位之間的混淆和相互作用,以保護明文的祕密,避免潛在揭示密鑰。對於沒有填充的簡短明文,混淆和交互作用被刪除,因爲數學複雜性下降很大。
只加密一個沒有填充的字符,例如'y'或'n'響應可能會將2^256的空間縮小到可能的2^24。這可能會在幾分鐘內被破解。這將使攻擊者能夠猜測密鑰的大部分,迅速將其破解,然後(最糟糕的是)解密通道上的所有其他流量。
相關問題
- 1. ValueError:密鑰必須是128位長XTEA
- 2. 錯誤:RSA密鑰長度必須至少爲512位?
- 3. 爲什麼WinRT類型必須密封?
- 4. 爲什麼我必須聲明var = Class.new?
- 5. DES加密明文與密碼長度
- 6. 爲什麼WPA2-PSK密鑰長度限制爲63個字符?
- 7. 爲什麼我們必須輸入vim〜/ .vimrc,爲什麼不只是vim〜.vimrc?
- 8. 爲什麼OpenSSL :: PKCS5.pbkdf2_hmac_sha1生成不同長度的密鑰?
- 9. 爲什麼UISearchDisplayController必須是類變量?
- 10. 爲什麼x86-64的jmpq只需要32位長度的地址?
- 11. 爲什麼推介密鑰?
- 12. 爲什麼長度不適用於NSString?
- 13. 爲什麼必須'自動'聲明都是相同的類型?
- 14. 爲什麼鎖定對象必須是隻讀的?
- 15. 爲什麼CORS基於目標服務器?爲什麼我必須使用JSONP?
- 16. 爲什麼jsp中的EL函數必須聲明爲靜態?
- 17. Python的加密庫 - ValueError異常:密文長度必須等於密鑰大小
- 18. 爲什麼我的Java密鑰輸入有時只能工作?
- 19. ValueError:AES密鑰長度必須爲16,24或32字節PyCrypto 2.7a1
- 20. EhCache:什麼是用於密鑰身份?
- 21. 密鑰的值爲零。爲什麼?
- 22. 爲什麼mapping.xml和configuration.xml必須位於pojo包之外?
- 23. 爲什麼必須使用「throws IOException」
- 24. 爲什麼必須使用malloc?
- 25. 爲什麼我必須使用-lstdC++ fs?
- 26. 爲什麼必須使用value.length?
- 27. 爲什麼必須調用io_service :: reset()?
- 28. 爲什麼我必須使用this.canvas?
- 29. 爲什麼我必須使用Sobel Operator?
- 30. Zend_Db_Table_Row:爲什麼我必須使用createRow()?
我真的剛剛開始學習密碼學。謝謝。那麼,對於純文本來說,64位是最小的? –
另外,爲什麼DES工作?這很難理解......我的意思是使用S盒似乎是一個非常糟糕的主意。如果DES的設計者放置某些位,那麼他們可以很容易地解密它。你如何證明它是安全的?或者這是不可能的? –
順便說一句,如果64位是最低限度,如果我使用101位純文本會發生什麼?這些位如何劃分? –