基于双钥技术的现代加密方法 |
| 作者:佚名 来源:不详 发布时间:2005-7-8 14:43:58 |
|
我们先讲解一下双钥技术的工作原理,然后再介绍几个著名的加密方法。 工作原理分析 双钥技术就是公共密钥加密PKE(Public Key Encryption)技术,它使用两把密钥,一把公共密钥(Public Key)和一把专用密钥(Private Key),前者用于加密,后者用于解密。这种方法也称为“非对称式”加密方法,它解决了传统加密方法的根本性问题,极大地简化了密钥分发的工作量。它与传统加密方法相结合,还可以进一步增强传统加密方法的可靠性。更为突出的是,利用公共密钥加密技术可以实现数字签名。 为说明公共密钥技术的工作原理,我们还得从传统加密方法的工作原理说起。 传统加密方法的工作过程包括如下几部分: (1) 设置一个保险箱,并装置一把嵌入箱子的暗锁,这种锁只能使用钥匙才能锁上,再准备2把相同的钥匙。这对应于加密方法,钥匙对应于密钥。 (2) 发信方和收信方必须各自持有1把开锁的钥匙。这对应于密钥分发过程。 (3) 发信方将通信文件放入保险箱,并使用自己持有的钥匙把锁锁起来。这对应于加密过程。 (4) 运送保险箱。这对应于信息传输过程。 (5) 保险箱送到目的地后,收信人用自己持有的钥匙打开锁,取出通信文件。这对应于解密过程。 全部过程的根本困难是第(2)步,即通信双方必须都获得1把统一的钥匙,前文已经述及,这一步实现起来要付出很大代价。如果我们仔细分析一下,可以发现,发信人真正需要的仅仅是一个能装秘密文件并能锁上的保险箱,没有必要也持有1把钥匙。之所以要有钥匙,是因为使用了嵌入箱子的暗锁。显然,只要不使用这种锁,而使用一种不用钥匙也能锁上的锁,则发信人就可以在没有钥匙的情况下,锁住保险箱。基于这种思想,可以按如下过程进行加密: (1) 设置一个保险箱,并设置一把不需使用钥匙就能锁上的锁,再准备1把钥匙。这对应于加密方法,钥匙对应于专用密钥。 (2) 收信方持有这把开锁的钥匙,同时准备该钥匙可以开的锁,锁可以不止有1把,然后把锁公开发放出去。这里锁对应于公共钥匙,这个过程对应于公共密钥分发过程。 (3) 任何人想与收信方通信,只需将通信文件放入保险箱,并使用收信方承认的锁锁起来。这对应于加密过程。 (4) 运送保险箱。这对应于信息传输过程。 (5) 保险箱达到目的地后,收信人用自己持有的唯一的钥匙打开锁,取出通信文件。这对应于解密过程。 由于可以开锁的钥匙只有一把,而且掌握在收信人手里。因此可以确信除收信人本人外,没有任何人能够打开锁着的保险箱并偷阅其中通信文件的内容,发信人对此也不例外。更为重要的是,密钥分发的难题也不复存在了,而是代之以锁的分发问题。分发锁是无须保密的,这无疑使以前的艰难工作简单了许多。这就是公共密钥加密技术的工作原理。 公共密钥加密系统中,收信人首先生成在数学上相互关联、但又不相同的两把钥匙,一把公共密钥用于加密,另一把专用密钥用于解密,这一过程称为密钥配制过程。其中公共密钥相当于例子中不需使用钥匙就能锁上的锁,用于以后通信的加密;另一把专用密钥相当于例中提到的那把开锁的唯一的钥匙,用于通信的解密。收信人将唯一的专用密钥掌握和保存起来,把公共密钥通过各种方式公布出去,让想与收信人通信的人都能够得到。这个过程就是公共密钥的分发过程。发信人使用收信人的公共密钥对通信文件进行加密,加密后的密文发信人自己也无法解开,这相当于把信件十分可靠地锁在保险箱里。收信人在收到密文以后,用自己的专用密钥解开密文获得明文信息。 公共密钥加密系统的优点 与传统加密方法相比,公共密钥加密系统具有3方面比较突出的优点: (1) 用户可以把用于加密的密钥,公开地分发给任何需要的其他用户。谁都可以使用这把公共的加密密钥与该用户秘密通信。除了持有解密密钥的收件方用户外,没有人能够解开密文。这样,传统加密方法中令人头痛的、代价沉重的密钥分发问题就转变为一个性质完全不同的“公共密钥分发”的问题。 (2) 公共密钥加密系统允许用户事先把公共密钥发表或刊登出来。譬如,用户可以把它和电话号码、产品说明等一起刊登出来,让任何人都可以查找并使用到。这使得公共密钥应用的范围不再局限于信息加密,还可以应用于身份鉴别、权限区分等各种领域。例如,大家熟知的各种应用软件,如Windows 95/98等系统安装时需要的产品序列号,其实就是公共密钥,它通常印在产品授权书的封面或封底上,供安装时鉴别用户的授权身份。 (3) 公共密钥加密不仅改进了传统加密方法,而且还提供了传统加密方法所不具备的应用,即是数字签名的公开鉴定系统。有关数字签名的工作原理与过程我们将在后面介绍。 自从1976年第一个正式的公共密钥加密算法提出,又有几个算法被相继提出。下面我们就简要介绍几个主要的公共密钥加密算法。 Ralph Merkle猜谜法 虽然这个方法并没有付诸实施,但它是第一个认真思考公共密钥加密问题的算法。该算法于1974年由美国加州大学伯克利分校的学生Ralph Merkle提出,核心是做100万个猜谜题,每道谜题藏有一个密码,求解一道迷题大约需要2分钟时间。该算法的工作流程是这样的:甲方先随机地产生100万把密钥,并藏在100万道谜题里,然后把这100万道谜题发送给乙方;乙方收到后,随意挑选并求解一道谜题,取出其中的那把密钥,再用该密钥对一个双方事先统一的报文加密,这段报文可以任意,且无需保密;加密后,把密文发送给甲方;甲方并不知道乙方选择了哪把密钥,于是使用自己保存的100万把密钥逐一进行尝试解密;其中必有一个是可行的,这把密钥不为其他人所知,所以可以作为以后通信使用的密钥。 如果传输过程中被人窃取,那么窃取者可能窃取到甲方发出的100万道谜题,也可能窃取到乙方返回的密文。但要想知道乙方选中了哪把密钥,窃取者只能去求解100万道谜题,由于解开一个谜题需要2分钟时间,按50%的解出概率计算,窃取者平均需要23个月的时间才能找到答案。不过那时通信双方早已结束了通信,完成了秘密任务或改换了密码,窃取者的工作已经没有多大意义了。 Ralph Merkle方法有一个弊端,那就是收发双方之间的通信系统必须能够在合理的时间内传送100万道谜题,而且甲方应拥有快速的计算机以产生100万道谜题和尝试100万次搜索,找出乙方选 |
| [] [返回上一页] [打 印] |
|
文章评论 |
