密码(或加密)是进行加密(编码)或解密(解码)的一种算法。它是一系列定义明确的步骤,可以作为一个程序来遵循。加密或编码就是将信息从明文转换成密码或代码。
在非技术性的用法中,"密码"的含义往往与"代码"相同;但在密码学中,密码与代码是有区别的。一个20世纪的资料给出了这样的解释:密码是"一种以字母为基本隐蔽单位的方法。相比之下,密码是一种以字为基本单位的隐蔽方式"。本世纪后期,这种密码学意义上的"密码"已经很少见了。21世纪的密码学大多是对比特流进行加密。
密码的操作方式是根据一个大型密码本进行替换,该密码本将一串随机的字符或数字与一个单词或短语联系起来。例如,"UQJHSE"可以是"前往以下坐标"的代码。
密码是用来将原始信息("明文")变成加密形式的"密文"。密文信息包含了明文信息的所有信息,但如果没有适当的机制来解密,人类或计算机是无法读取的。要进行加密或解密,你需要"密钥"。在加密过程中,密钥指定了明文到密文的特定转换,或者在解密过程中反之。
按使用的密钥类型,密码器分为。
- 对称密钥算法(私钥密码学):加密和解密使用相同的密钥,以及
- 非对称密钥算法(公钥密码学):加密和解密使用两种不同的密钥。
密码一词在法语中是cifre,在中世纪的拉丁语中是cifra,来自阿拉伯语sifr,意思是"零"。最早知道英语中零的使用是在1598年。