我的字典是这样定义密码术的:“通讯或翻译机密文字或密码的过程或技术。”而Persits软件公司的Peter Persits则给出了更为使用的定义:“密码术使通讯更为安全。”其实密码技术还包括认证、数字签名技术
密码术包含两个方面:将信息打乱成为不可读的格式,再将打乱的信息重新构造起来。加密的 过程是将明码(可以阅读的信息,也就是普通的文本)转换成密码(看起来完全是任意的一序列位或 字符)的过程。解密是上述过程的相反过程。大多数系统使用密码术都包括加密和解密两个方面, 但是有时候也使用单方向的加密方法。
大多数现代加密算法要求在加密的过程中使用一个关键字作为一部分。有些算法是可逆的,在对 信息加密和解密的时候使用同一个关键字。由于这个特征,这些算法被成为是对称的。因为任何 知道关键字的人都能破译这种信息,因此这些对称算法的安全性完全依赖于关键字的安全性。因为 对称型加密术已经使用了很长一段时间,因此它被成为传统加密术。DES(数字加密术标准)是对称 加密术算法中使用最多的。
不对称算法依赖于两个在算术上相关的关键字,但是从一个推导出另一个是不可行的。通常,一个 关键字用来加密,另一个用来解密。这些算法通常被成为公共关键字加密术算法,因为加密时所使用 的关键字是可以公布的,允许任何人用它对发给关键字所有者的信息进行加密。关键字所有者对另 一个关键字是保密的,因为只有这些关键字可以破译这些信息。这种技术的一种变通方法是允许 一个人使用自己私用的关键字对信息加密,这样任何人都可以用相对应的公共关键字进行破译。这就是所谓的用数字签名来标记信息。
公共关键字通常与他们所有者的身份识别凭证,如名字、email 地址结合在一起,成为叫做数字证明 的数据结构。这些数字证明通常是有签名的,是有一个证明权威机构(CA)发布的,它能够担保证明 的有效性并且维护着当前被宣告无效的证明的清单。CA的例子包括VeriSign 和Thawte。X.509 是应用 最广泛的数字证明标准,被用来在Internet Explorer和 Netscape Navigator上执行安全插座层(SSL)安全。
还有一些密码术根本就不依靠关键字,它是把普通的文本信息转换成不能被破译的密码。这些单程函数,例如单程的随机函数,在保护数据系统方面有一些用途,但是它们通常不用于通讯安全方面。这类密码 术有一个很常用的用途是存储口令。实际的口令是不被存储的。而它们被加密之后的值却保存在文件中。每次密码需要确认时,由用户输入的密码都被加密,然后与存储的经过加密的密码进行比较。如果它们匹配,那么密码就匹配。因为要把这个函数反过来在实际上是不可能的,这就使密码能够以一种安全的 方式进行存储。单程的随机函数同样用在数字签名上,以确保文档没有被篡改。访问AspEncrypt Demo可以目击一个普通的单词用单程随机(one-way hash)函数进行加密的过程。
|