密碼

在密码学中，密碼（，或），是一种用于执行加密或解密的算法——一系列可以作为一个过程来遵循的定义明确的步骤。另一个不太常见的术语是加密（）。加密或编码（）的目的是将明文的信息转换为密文（密码或代码）。

通常的说法中，“密码”（）与“代码”（）是同义的，因为它们都是一组加密消息的步骤；然而，它们在密码学中的概念是不同的，特别是在经典密码学中。

具体而言，代码通常会在输出中替换不同长度的字符串，其操作一般通过代码本来进行，它将单词或短语链接到一系列随机的字符串或数字。例如，“UQJHSE”可能是“继续执行以下坐标”的代码。

而相应的，密码一般会替换与输入相同数量的字符。一些例外情况中，某些密码系统在输出时可能会使用稍多或更少的字符，而非输入的长度。当使用密码时，原始信息被称为明文（），而加密的形式被称为密文（）。密文消息包含明文消息的所有信息，但若没有适当的机制解密它，人或计算机是不能读取的。

密码的操作通常取决于一个辅助信息，称为“密钥”（或者，按照传统 NSA 的说法，密码变量——）。加密过程根据密钥而变化，它改变了算法的具体操作。在使用密码加密消息之前，必须选择一个密钥。在不知道密钥的情况下，将结果密文解密为可读的明文应该是非常困难的（甚至是不可实现的）。

大多数现代密码可以用几种方式分类：
 以加密流程区分，可以分成处理通常具有固定大小的块符号（分组密码）还是符号连续流（流加密）两种主要算法。

 以密钥性质区分，可以分成通过相同的密钥来进行加密解密的算法（對稱密鑰加密），或每次加密都使用了不同的密钥的算法（公开密钥加密）。如果算法是对称的，则密钥必须令接收者和发送者及其他人知道。如果该算法是非对称算法，则加密密钥与解密密钥不同但密切相关。如果一个密钥不能从另一个中推导出来，则非对称密钥算法具有公钥/私钥属性，并且其中一个密钥可以在不失机密性的情况下公开。

M
Category:密码