密碼
此條目沒有列出任何參考或來源。 (2016年3月16日) |
在密碼學中,密碼(英語:cipher,或cypher),是一種用於執行加密或解密的算法——一系列可以作為一個過程來遵循的定義明確的步驟。另一個不太常見的術語是加密(encipherment)。加密或編碼(encode)的目的是將明文的信息轉換為密文(密碼或代碼)。
通常的說法中,「密碼」(cipher)與「代碼」(code)是同義的,因為它們都是一組加密消息的步驟;然而,它們在密碼學中的概念是不同的,特別是在經典密碼學中。
具體而言,代碼通常會在輸出中替換不同長度的字符串,其操作一般通過代碼本來進行,它將單詞或短語鏈接到一系列隨機的字符串或數字。例如,「UQJHSE」可能是「繼續執行以下坐標」的代碼。
而相應的,密碼一般會替換與輸入相同數量的字符。一些例外情況中,某些密碼系統在輸出時可能會使用稍多或更少的字符,而非輸入的長度。當使用密碼時,原始信息被稱為明文(plain text),而加密的形式被稱為密文(cipher text)。密文消息包含明文消息的所有信息,但若沒有適當的機制解密它,人或計算機是不能讀取的。
密碼的操作通常取決於一個輔助信息,稱為「密鑰」(或者,按照傳統 NSA 的說法,密碼變量——cryptovariable)。加密過程根據密鑰而變化,它改變了算法的具體操作。在使用密碼加密消息之前,必須選擇一個密鑰。在不知道密鑰的情況下,將結果密文解密為可讀的明文應該是非常困難的(甚至是不可實現的)。
大多數現代密碼可以用幾種方式分類: