此條目没有列出任何参考或来源。 (2016年3月16日) |
在密码学中,密碼(英語:cipher,或cypher),是一种用于执行加密或解密的算法——一系列可以作为一个过程来遵循的定义明确的步骤。另一个不太常见的术语是加密(encipherment)。加密或编码(encode)的目的是将明文的信息转换为密文(密码或代码)。
通常的说法中,“密码”(cipher)与“代码”(code)是同义的,因为它们都是一组加密消息的步骤;然而,它们在密码学中的概念是不同的,特别是在经典密码学中。
具体而言,代码通常会在输出中替换不同长度的字符串,其操作一般通过代码本来进行,它将单词或短语链接到一系列随机的字符串或数字。例如,“UQJHSE”可能是“继续执行以下坐标”的代码。
而相应的,密码一般会替换与输入相同数量的字符。一些例外情况中,某些密码系统在输出时可能会使用稍多或更少的字符,而非输入的长度。当使用密码时,原始信息被称为明文(plain text),而加密的形式被称为密文(cipher text)。密文消息包含明文消息的所有信息,但若没有适当的机制解密它,人或计算机是不能读取的。
密码的操作通常取决于一个辅助信息,称为“密钥”(或者,按照传统 NSA 的说法,密码变量——cryptovariable)。加密过程根据密钥而变化,它改变了算法的具体操作。在使用密码加密消息之前,必须选择一个密钥。在不知道密钥的情况下,将结果密文解密为可读的明文应该是非常困难的(甚至是不可实现的)。
大多数现代密码可以用几种方式分类: