APP下载

“不可破译”的密码

2017-03-22陈晓玉陈新高巍

商情 2017年4期
关键词:密码学密钥

陈晓玉+陈新+高巍

【摘要】密码在当今社会生活中的作用可以说十分巨大,除了众所周知的军事国防方面的应用外,现代金融、贸易、生产等无不在大规模使用密码.计算机网络的广泛应用,使人们对密码的依赖达到了新的高度,一般密码编制理论中,称要传递的原文为“明文”,经加密后实际传递的是密码构成的“密文”,收信方则将其解密,恢复为明文使其可理解,就完成了通信任务。

【关键词】密钥 不可破译 密码学

密码学在公元前400多年就早已经产生了,正如《破译者》一书中所说“人类使用密码的历史几乎与使用文字的时间一样长”。密码学的起源的确要追溯到人类刚刚出现,并且尝试去学习如何通信的时候,为了确保他们的通信的机密,最先是有意识的使用一些简单的方法来加密信息,通过一些(密码)象形文字相互传达信息。接着由于文字的出现和使用,确保通信的机密性就成为一种艺术,古代发明了不少加密信息和传达信息的方法。例如我国古代的烽火就是一种传递军情的方法,再如古代的兵符就是用来传达信息的密令。密码学真正成为科学是在19世纪末和20世纪初期,由于军事、数学、通讯等相关技术的发展,特别是两次世界大战中对军事信息保密传递和破获敌方信息的需求,密码学得到了空前的发展,并广泛的用于军事情报部门的决策。例如在希特勒一上台时,德国就试验并使用了一种命名为“谜”的密码机,“谜”型机能产生220亿种不同的密钥组合,假如一个人日夜不停地工作,每分钟测试一种密钥的话,需要约4.2万年才能将所有的密钥可能组合试完,希特勒完全相信了这种密码机的安全性。然而,英国获知了“谜”型机的密码原理,完成了一部针对“谜”型机的绰号叫“炸弹”的密码破译机,每秒钟可处理2000个字符,它几乎可以破译截获德国的所有情报。后来又研制出一种每秒钟可处理5000个字符的“巨人”型密码破译机并投入使用,至此同盟国几乎掌握了德国纳粹的绝大多数军事秘密和机密,而德国军方却对此一无所知;太平洋战争中,美军成功破译了日本海军的密码机,读懂了日本舰队司令官山本五十六发给各指挥官的命令,在中途岛彻底击溃了日本海军,击毙了山本五十六,导致了太平洋战争的决定性转折。因此,我们可以说,密码学为战争的胜利立了大功。在当今密码学不仅用于国家军事安全上,人们已经将重点更多的集中在实际应用,在你的生活就有很多密码例如为了防止别人查阅你文件,你可以将你的文件加密;为了防止窃取你钱物,你在银行账户上设臵密码,等等。随着科技的发展和信息保密的需求,密码学的应用将融入了你的日常生活。

密码在当今社会生活中的作用可以说十分巨大,除了众所周知的军事国防方面的应用外,现代金融、贸易、生产等无不在大规模使用密码.计算机网络的广泛应用,使人们对密码的依赖达到了新的高度,在千百万台计算机联结成的因特网上,用户的识别基本上是靠密码.密码被破译就会产生危及安全的极严重的后果.计算机“黑客”的作为,即为密码破译的一例,连美国国防部的计算机都未能幸免,可见密码编制的难度了。

由大整数因数分解的困难,人们研制成功一种“不可破译”的密码:RSA体制密码.RSA密码是一种公开密钥密码,说它“不可破译”是形容破译之难,不过的确至今尚没找到破译的理论工具.

一般密码编制理论中,称要传递的原文為“明文”,经加密后实际传递的是密码构成的“密文”,收信方则将其解密,恢复为明文使其可理解,就完成了通信任务.这其中加密和解密要用通信双方约定的方法,这一方法就称为密钥.更一般地,人们首先给定一个加密算法,不太严格地说,可把这一算法视为函数,函数的值就是密钥,而解密算法可以说是加密算法的一个反函数,使用同一个密钥(原函数的值)可将密文惟一地译成明文。

密码的关键就在于通信双方约定密钥而不被外界所知,外界对密码的破译也就指向密钥了.而且为了防止外界可能的破译,就应尽力使外人不可能积累在同一密钥下的许多密文,否则可用统计分析法等确定出密钥,世界战争史、外交史上有许多破译成功的例子.这样就经常变换密钥,重要的通信要每天一换甚至通一次信换一次。

这么频繁换的密钥怎样送给对方?如果随其他信息(用无线电或网络)易于失密,每次派专人送又不可能,怎样解决这一问题呢?这就是RSA密码的长处了,它把密钥分成加密钥和解密钥.如A和B通信,A把加密钥公开送达B(可用明码电报或与上次通信同时),不怕外人知道,所以叫公开密钥,而解密钥留在自己处不送达B,B收到公开密钥后,用它加密要给A的信息,然后送回A(这也无须特别秘密),则A可用手中的解密密钥解密。

外人没有解密密钥,就无从破译密码了,那么加密钥和解密钥就没有关系了吗?当然不是,否则就无法解密了.不过这种关系正是建立在大整数因数分解困难的基础上.换句话说,由公开密钥得出解密钥要进行一个充分大的整数的因数分解,你无法分解也就无法破译.

具体的编码过程是,先找出两个不同的大素数p和q,再给定一个数r(一般是用计算机产生一个随机数或至少一个伪随机数,也可每次一换),使r与数(p-1) (q-1)互素,这三个数p、q、r就是解密密钥.

再求一个数m,使(rm-1)(-1)能被(p-1)(q-1)整除.严格表述为:求m,使rm=1 (mod(p-1)(q-1)).

由于与(p-1)(q-1)互素,所以m是一定可求出来的(有数论定理保证).再求出数n=p q.m、n为加密密钥,即公开密钥.

具体的加密方法为,设明文为x,可把x视为(或变为)一个大整数,设x

由于运用现代计算机已可分解100位左右数的因数,因此n要取得相当大,从而p、q也要取得相当大,比如每个数80位以上,再求积,这在技术上是可能的。

是否还应考虑相应计算的复杂性和计算所需要的时间呢?当然有这方面的问题,现在通常用复合编码法解决,即用其他计算比较简单、耗时少的编码方法编码,而每次编码所采用的密钥用RSA密码来传递,这既加强了安全性,又加快了速度。

猜你喜欢

密码学密钥
春节档多部影片密钥延期最晚至4月中旬
幻中邂逅之金色密钥
幻中邂逅之金色密钥
云计算中密钥管理关键技术研究
图灵奖获得者、美国国家工程院院士马丁·爱德华·海尔曼:我们正处于密钥学革命前夕
应用型信息安全专业密码学课程创新探索
BitLocker密钥恢复二三事
基于C#的“密码学”实验演示系统的设计与实现
中学生研究性学习课题的设计与实现
简易密码与破译