分享
 
 
 

密码技术简介(1)

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

第 1 部分: 概览

对他人隐私的好奇心和隐藏信息是所有人类社会的特征。随着计算能力的出现和高级数学技术的发展,系统变得非常复杂,目前有可能构造出很难被有效破解的密码。用来加密和解密数据的算法分为两大类:秘钥(secret key)或对称密码术,其中对加密和解密这两个过程使用同一密钥;以及公钥或非对称密码术,其中一个密钥用来加密,另一个用来解密。现在,标识发送方、认证和不可抵赖性(non-repudiation)与信息隐藏一样重要。本文对密码术做了广泛而详细的研究。在该系列的后续文章中会更详细地研究具体问题。

一般信息

好奇心是人类最普遍的特征之一,与之对应的是隐藏个人信息的愿望。情人、间谍和军队都会采用信息隐藏技术来安全地传递消息,有时还故意包含一些使人产生误解的信息。隐写术是在看起来单纯的情形中隐藏信息的一种机制,可单独使用,也可以与其它方法一起使用。

根本上讲,加密在于扰乱消息,这样它的内容就无法轻易获取,而解密是这一过程的逆向过程。这些过程取决于特定的算法,称为密码:经过适当扰乱的文本称为密文,而原始文本毫无疑问是明文。可读性并不是某些明文的充要条件。在有些情况下,例如,如果对已加密的文本进一步加密的话,在读取时,原始文本很可能没有任何明显的意义。还有可能构造一种机制,它的输出是可读文本,但与未经加密的原始文本实际上没有任何关系。

密钥与密码结合使用来加密或解密文本。在把字符串用作密码的情况下,密钥看起来可能是有意义的,但是与这个转换无关 ― 密钥的功能在于由位组成的字符串,决定了明文到密文的映射。

直到最近,在计算机能力发展的帮助下,非常普遍的加密方法是使用某种替代形式。这可能非常简单,就象影片 2001: A Space Odyssey 中所声称的隐藏计算机实名那样,其中将字母 HAL 在字母表中移一位就会产生一个似是而非的结果。在众多间谍小说中,把一些从单纯的文档或书籍中选取的字或短语或任意字母序列用来生成消息,构造密钥或创建替代表,以加密或解密文本。

为什么使用密码术?

出于安全性原因而保护对信息的访问仍是使用密码术的主要原因。但是,它也正越来越多地用于个人的标识、认证和不可抵赖性。随着因特网、全球贸易和其它活动的增长,这一点尤为重要。电子邮件和 Web 用户的身份非常容易隐藏或伪造,而安全认证可以向那些用户提供远程交互的可信度:他们正与恰当的人进行交易,消息没有被伪造或更改。在商业活动中,不可抵赖性是一个重要概念,它确保(假设)如果商定了合同,一方就不能声称他们实际上并不同意来违约,也不能在其它时间(可能是价格上涨或下浮时)这样做。数字签名和数字时间戳记在这种情况下使用,并且常结合其它诸如消息摘要和数字证书等机制使用。

密码术及相关技术的使用范围是相当广泛的,而且正在稳定增长。密码使用很普遍,但是它们提供的保护却常常不可靠,因为可能许多组织中的安全性策略并没有经过深思熟虑,而且使用它们所引起的问题和麻烦会更多,根本不值得这样做。在许多使用密码的情况下(例如,保护字处理文档),使用的密码根本无法胜任,只要从可免费获得的一些攻击程序中使用一个,就能毫不费力地攻击它们。

遗憾的是,对立法者也有相当大的压力,使他们制定了一些荒谬的法规,如美国的“千年虫适应性法案(Millennium Compliance Act)”,它在本质上免除了组织设法尽力保护自己或承担不作为结果的责任。保护视频录制的机制(例如,CSS)是脆弱得可怜,实用程序 DeCSS 不费吹灰之力就可 以挫败它,并使资料可用于其它平台上。

对于开发人员应该掌握些什么?

通常,安全性问题都难于理解和实现,所以对于开发人员来说,掌握一些应用于加密的原则并学习使用的机制是很有用的。编写密码算法是一项困难且复杂的任务,但是切合实际地在应用程序中实现现有机制,或利用著名的产品来帮助信息隐藏或认证就不太一样了,这可能是一个非常有用的技能。

可以采样和提取或更改数字数据而不用担心检测,这一事实是密码术使用快速增长的一个原因。特别是在跨因特网的情况中,不会发生面对面的接触,消息可能通过多个易受攻击的系统传播:网站可能保存应受保护的敏感数据;信用卡号和其它敏感的个人数据都需要安全地传输;电子邮件可以象明信片那样方便地读取;可能需要控制对受限区域的访问;价值单位(数字现金、电子债券等)不能在没有保护的情况下随意地到处摆放;内容供应商希望保护他们的电影或电视节目或音乐,以便只有订户才有访问权;需要控制对网络的远程访问;移动电话、PDA 和膝上电脑会很容易地丢失或被盗;ATM 只应对合法请求分发现金。这些都是需要并使用密码术的一些实例。

本文的目的是:概括地介绍相关背景知识,广泛地评价使用的一些技术和考虑一些含义。接下来的其它文章将就不同主题更详细地论述。

密码技术

最古老的加密方法已经用了几千年,这种方法被称为密钥或对称加密。在这种方法中,同一密钥既用于加密明文,也用于解密密文。使用的机制可能非常多样化,但它们共同的弱点 ― 因为需要共享密钥,所以一旦密钥落入坏人之手将很危险。一旦未经授权的人得知了密钥,就会危及基于该密钥的安全性。如果只涉及一条消息,可能不要紧;但是,电子通信的真正本质就意味着:同一个密钥很可能被重复使用,而未必知道密钥已不再是保密的。

当然,一个密钥很可能被许多人作为一组算术方式构造的文件所共享,这样在可以使用密钥前都需要对任何元素进行一些最小组合,但是这并不改变普遍原理。

对称系统一般都比较快,现在实际上可以使它很难于破解。与任何这类事物一样,不存在绝对的保证,但是有理由说,运用目前可用的知识和使用当前级别的计算能力,一个正确构造的系统可以是彻底安全的。

不同的密码容易受到不同形式的攻击侵袭,因此,在某些情况下,某组一些特定密钥的安全性会比其它的要差。但是,密钥越长(其它所有条件相同),破解加密的难度就越大。

软件代码是一种有价值的资源,许多公司竭尽全力保护它们的源代码,完全反对“自由软件基金会(Free Software Foundation)”或开放源码运动的观点。但是,在密码情况中,将算法完全地无偿地公之于众,接受大众的详细审查是必要的。在字处理程序情况中,这可能会使人不快,但如果出现一些错误或其它问题,通常也没有太大关系。错误是一定存在的,即使没有目前那种急于推出不成熟产品的倾向。在加密软件或至少其中的密码部分的情形中,错误是非常危险的,会产生极端严重的后果。发现这样的缺陷的唯一切实可行的方法是公开内部代码,让其他人进行同级评估与分析。简单地说:不要相信,也不要使用任何其核心部分(包括加密算法)不可公开访问、而且尚未同意同级评估的加密软件。密码发展的历史显示了众多证明这一策略的实例。

1976 年撰写的论文 New Directions in Cryptography 包含了设计一个具有公/私钥对系统的协议的详细信息;随后这一算法以两位作者的姓名:Whitfield Diffie 和 Martin Hellman(他们当时在斯坦福大学)命名。Diffie-Hellman 算法现在在公共领域中广泛使用, 作为大量被称为公钥系统的基础。

公钥系统使用两个由质数构成的、互补的密钥,使得一个密钥用于加密明文,然后可以用另一个且只能用这个密钥来解密。这也称为非对称密码术。

密钥对中一个密钥秘密保管,称为私钥,而另一个是公钥,它被广为公开。这一过程独特的本质是:任何知道我的公钥的人都可以加密一条消息,然后只能由我有使用安全的私钥才能解密这条消息。相反,我可以用我的私钥加密一条消息,任何使用我自由可用的公钥解密它的人都可以确信这条消息是我发出的。实际上,情况要比这复杂得多,因为非对称密钥与对称密钥相比,通常都很长(大约 768 位相对于 56 或 128 位),所以处理文本会很慢。其中一个最广泛使用的公钥系统是 1977 年由三个 MIT 的研究人员:Ron Rivest、Adi Shamir 和 Leonard Adelman 利用 Diffie 和 Hellman 引入的概念开发的。这一系统以他们姓名的首字母 RSA 命名,并于 1983 年在美国获得专利。

遵从前面提到的警告和条件,公钥系统也可以是无懈可击的。对这种系统的攻击方法通常是尝试对数字进行因数分解,而对大质数的因数分解是极其困难的。但是,也可以采用其它方法,完全有可能发现新的数学技术,严重危及这些密码中的一个或多个,或致使密码完全无效。而且,就象密钥密码术会因在分发时单个密钥落入坏人之手而易受攻击一样,公钥密码术也容易受到称为内奸的风险的攻击。稍后将对此进行更完整地讨论,但是本质上这是愚弄用户:让用户相信公钥来自某个源的,而实际上它是来自另一个源。出于这一原因,公钥密码术通常都与其它安全性方法(如数字证书,它寻求确认公钥的完整性)相关联。显然,私钥被人知道后,系统也是易受攻击的,但因为一般不需要共享私钥,所以这一风险不会很大。

我在前面曾提到,消息认证正变得与信息隐藏一样重要了。这里需要的是一种机制,使接收方放心:消息真的是来自所声称的发送方,并且自它创建以来没有被改过。通常,通过使用散列技术生成消息摘要来提供消息的完整性。散列是一种将变长字符串转换为定长结果(一般 128 位)的技术。实际上,对消息所做的任何更改 ― 即使只是象添加或除去一个空格这样细微的更改 ― 都会导致在运行进程时创建一个不同的散列值。

下面这个简化的模型显示了这些不同元素如何在一起工作,以保护消息不会被随意查看,并且确信接收到的消息是我(授权发送方)发出的:

我对明文消息应用一个适当的处理,以生成一个用作消息摘要的散列值。

我用私钥加密这个摘要,而不是消息本身,向任何可以用公钥解密它的人确认消息是我发出的。

我生成一个一次性使用的密钥,用来迅速加密消息文本。

我使用接

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有