滨江学院
课程报告
题 目对密码学的发展综述与构想
院 系 计算机系 专 业 网络工程 学生姓名 学 号 指导教师 职 称
二O一二 年 五 月 十八 日
对密码学的发展综述与构想
摘要:本文通过对本学期《网络信息安全》课程的密码学部分的总结分别对对称加密技术和非对称机密技术进行了简单的叙述与总结,文中介绍了两种经典的对称加密与非对称加密算法,分别是DES与RSA加密算法。本文的最后提出了一种基于云计算与机器学习的信息安全传输方式,充分利用了新的理念构建出一套安全传输方案的思路。 关键词:对称加密;非对称加密;云计算;机器学习
1 引言
密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学。本文将从本学期课程中所提到的对称密码与非对称密码进行叙述,通过引用于阅读参考文献分别介绍几种著名的加密算法,在最后的部分将提出一种新的基于密码学、机器学习与生理学结合的新的构想,希望利用机器学习技术,使密码的变换拥有可适应当前环境的复杂度。
[1]
2 对称加密技术
2.1 简介
对称加密技术是一种利用相同的密钥进行加密与解密的技术。其目的是为了保护原文使其在加密后无法被破解,同时让密文难以理解。对称加密算法相对于非对称加密算法有着加密运算速度较快、加密算法较为简单的特点。基于“对称密钥”的加密算法主要有DES、TripleDES、RC2、RC4、RC5和Blowfish等。
2.2 DES加密技术
DES(Data Encryption Standard)算法为密码体制中的对称密码体制,又被成为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。[2] DES作为一种典型的块加密,将一段固定长度的明文通过加密算法变为一段相同长度的秘闻的算法,对DES而言,块长度为64位。同时,DES使用密钥来自定义变换过程,因此算法认为只有持有加密所用的密钥的用户才能解密密文。[3]在这64位的长度中,其中只有56位被用来进行加密,
其他的用作了奇偶校验,应该DES的有效加密长度应该是56位。
DES的加密原理的算法的整体结构如图1所示:有16个相同的处理过程,称为“回次”(round),并在首位各有一次置换,称为IP与FP(或称IP-1,FP为IP的反函数(即IP“撤销”FP的操作,反之亦然)。IP和FP几乎没有密码学上的重要性,为了在1970年代中期的硬件上简化输入输出数据库的过程而被显式的包括在标准中。
在主处理回次前,数据块被分成两个32位的半块,并被分别处理;这种交叉的方式被称为费斯妥结构。费斯妥结构保证了加密和解密过程足够相似—唯一的区别在于子密钥在解密时是以反向的顺序应用的,而剩余部分均相同。这样的设计大大简化了算法的实现,尤其是硬件实现,因为没有区分加密和解密算法的需要。
图中的⊕符号代表异或(XOR)操作。“F函数”将数据半块与某个子密钥进行处理。然后,一个F函数的输出与另一个半块异或之后,再与原本的半块组合并交换顺序,进入下一个回次的处理。在最后一个回次完成时,两个半块不必交换顺序,这是费斯妥结构的一个特点,以保证加解密的过程相似。
图1
在DES的安全性方面,虽然已发表的针对DES的密码分析的研究文章多于所有其它的块密码,到目前为止,最实用的攻击方法仍然是暴力攻击。已知DES有一些次要的可能导致加密强度降低的密码学特性,同时有3种理论攻击的理论复杂性小于暴力破解,但需要不现实的已知明文或选择明文数量,并无实用价值。[5]
3 非对称加密技术
3.1简介
非对称加密(又称公开密钥加密,Public-key cryptography)算法需要两个密钥:公开密钥(public key)和私有密钥(private key)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫做非对称加密算法。
3.2 RSA加密算法 3.2.1 RSA简介
RSA加密算法是一种非对称加密算法。在公钥加密标准和电子商业中RSA被广泛使用。RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。
1973年,在英国政府通讯总部工作的数学家克利福德·柯克斯(Clifford Cocks)在一个内部文件中提出了一个相应的算法,但他的发现被列入机密,一直到1997年才被发表。
对极大整数做因数分解的难度决定了RSA算法的可靠性。换言之,对一极大整数做因数分解愈困难,RSA算法愈可靠。假如有人找到一种快速因数分解的算法的话,那么用RSA加密的信息的可靠性就肯定会极度下降。但找到这样的算法的可能性是非常小的。今天只有短的RSA钥匙才可能被强力方式解破。到2008年为止,世界上还没有任何可靠的攻击RSA算法的方式。只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被解破的。但在分布式计算和量子计算机理论日趋成熟的今天,RSA加密安全性受到了挑战。
图2
3.2.2实现原理
假设Alice想要通过一个不可靠的媒体接收Bob的一条私人讯息。她可以用以下的方式来产生一个公钥和一个私钥:
随意选择两个大的质数p和q,p不等于q,计算N=pq。 根据欧拉函数,不大于N且与N互质的整数个数为(p-1)(q-1) 选择一个整数e与(p-1)(q-1)互质,并且e小于(p-1)(q-1) 用以下这个公式计算d:d× e ≡ 1 (mod (p-1)(q-1)) 将p和q的记录销毁。
(N,e)是公钥,(N,d)是私钥。(N,d)是秘密的。Alice将她的公钥(N,e)传给Bob,而将她的私钥(N,d)藏起来。
假设Bob想给Alice送一个消息m,他知道Alice产生的N和e。他使用起先与Alice约好的格式将m转换为一个小于N的整数n,比如他可以将每一个字转换为这个字的Unicode码,然后将这些数字连在一起组成一个数字。假如他的信息非常长的话,他可以将这个信息分为几段,然后将每一段转换为n。用下面这个公式他可以将n加密为c:
计算c并不复杂。Bob算出c后就可以将它传递给Alice。
Alice得到Bob的消息c后就可以利用她的密钥d来解码。她可以用以下这个公式来将c转换为n:
得到n后,她可以将原来的信息m重新复原。 解码的原理是
以及ed ≡ 1 (mod p-1)和ed ≡ 1 (mod q-1)。由费马小定理可证明(因为p和q是质数)
和
这说明(因为p和q是不同的质数,所以p和q互质)
3.3 结论
由于公钥和私钥的算法之间存在特殊的数学关系。密钥对在数学上彼此相关,例如,配合使用密钥对可以实现两次使用对称密钥的效果。密钥必须配合使用:不能使用每个单独的密钥来撤消它自己的操作。这意味着每个单独密钥的操作都是单向操作:不能使用一个密钥来撤消它的操作。[8]此外,设计两个密钥使用的算法时,特意设计无法使用一个密钥确定密钥对中的另一个密钥。因此,不能根据公钥确定出私钥。但是,使得密钥对成为可能的数学原理也使得密钥对具有对称密钥所不具有的一个缺点。这就是,所使用的算法必须足够强大,才能使人们无法通过强行尝试,使用已知的公钥来解密通过它加密的信息。公钥利用数学复杂性以及它的单向特性来弥补它是众所周知的这样一个事实,以防止人们成功地破解使用它编码的信息。[9]
4 基于云计算与机器学习的信息传输构想
4.1框架
随着当前机器学习的利用以及机器学习的应用日渐成熟,机器学习已经逐渐的从理论变为了在各个领域的实际的应用。机器学习所能带来的,就是让一些原本基于固定算法的事物拥有了新的应变能力,尤其是在非监督学习的基础之上。
经过查阅发现[10],现阶段结合机器学习与密码的研究几乎为零。本文认为密码的发展方向,应从原本的采用难以被破解的算法角度向新的人类认知心理的角度发展。本文认为的具有学习能力的密码,在复杂环境之下,通过云端通过不断的分析与学习为将要传输的两端提供安全的加密策略,加密通道等,实现直接或间接信息传输。
图3基于云计算的机器学习的密码构想概要图
4.2云端
在本文的构想之中,云端是实现整个信息安全策略、信息安全存储、机器学习核心库组成的。云端在这样的一个模型之下显得尤为重要是整个安全通信的核心部分。就如云计算原理一样,用户不需要了解任何关于云端的细则,云端凭借其强大的运算和存储能力和高稳定性,为用户提供服务。如果让个人电脑完成学习、存储与分析是十分不现实的方案,所以在这样的安全系统中云端成为了核心。 4.2.1云端组成
本文构想的云端主要有四个部分组成:云存储、数据采集分析与学习系统、决策系统与决策支持数据库。
1.云存储是将用户需要进行安全传输的文件通过安全的方式传送至云端,并且存储在云端的文件系统的之中。因为用户与云端的信息传送,云端可控,所以传送安全性极高。
2.数据采集与学习系统是在复杂的网络环境之下,通过获得每次传输的成功与失败案例用作监督学习的样本,让系统不断的学习并将学习的结果放入到决策库之中。
3.决策数据库是用于存储大量的学习结果并且作为决策系统的数据来源,具有庞大的数据库是云端的重要优势所在。
4.决策系统是依据庞大的决策数据库去实现为用户提高有效与高效的密码与安全策略的系统。
4.2.2云端工作流程
云端的机器学习系统完全有能力采用监督学习(Supervised learning),有由云端在不同的客户端之间的测试与实际传送作为实例训练集,并建立有效的范化模型,最后形成归纳偏倚(inductive bias)。而在这样的一个过程中最重要的是建立有效的模型和去除噪声。[11]学习的结果应保存在策略数据库之中。
当用户提交请求的时候,决策系统依据用户的需求为用户选择有效的加密方法与通信方式(间接或者直接)。这样的决策依赖于一个经过良好的训练而产生的决策库。
本文假设A方与B方需要进行点对点通信,A方向云端请求要发送数据给B方,请云端选择通信与加密方式,云端通过判断发现A至B的网络环境复杂,并首先发送了一小段的数据从A到B进行测试,发现数据被篡改。那么云端可以选择间接通信方式,使用非对称加密与对称加密混合的手段确保A至云端加密数据的保密,将传送信息存在云端的存储系统之中,并在云端变换加密算法,用同样方法传送给B,一次的信息传输完成。若在云端发现A到云端或云端到B的传输被篡改,那么云端可告知A和B现在不适合传输,应该信息一直被篡改。
4.3 客户端
客户端所需要做的仅仅是告知云端自己的传输需求,而无论是直接或者是间接传输都由云端控制客户端完成传输。而整个传输过程相对于客户端是被封装起来的,客户端并不需要关心传输的过程,大大的降低了客户在确保信息安全的情况下对专业知识需求。 4.4 结论
本文认为这样的系统优势在于它封装了传输与加密选择与实现的过程,利用云端强大的计算能力完成安全传输的过程。这样的方法不仅仅适用和信息的安全传输,也可用于穿过一些类似防火长城(Great Firewall)的数据包过滤系统。其系统的建设的重点就是如何建立一个有效的机器学习与决策系统。
系统所面临的问题主要有由于系统对环境预估的偏差与学习的不完善性导致的信息传输的不安全,所以系统并非一个绝对意义上安全的信息传输系统,但是系统主要希望通过牺牲极其微小的安全性,从而寻求安全与效率的平衡点。
参考文献:
[1] 冯登国, 国内外密码学研究现状及发展趋势,通信学报,2002
[2] 柳湘华. 对称加密算法,长沙,长沙电力学院学报: 自然科学版, 2002. [3] F PUB. FIPS 46-3, Data Encryption Standard (DES),FIPS,1999. [4]. DES加密算法-维基百科,http:// zh.wikipedia.org/wiki. [5] 张焕国.演化密码与DES演化研究,武汉,计算机学报, 2003.
[6]张淑芬,RSA公钥密码体制的安全性分析及其算法实现,河北唐山,计算机应用于软件,2011 [7]. RSA加密算法-维基百科,http:// zh.wikipedia.org/wiki. [8]王华,微软TechNet技术大会2009,北京,微软TechNet,2009
[9]徐建兵, 公开密钥加密体系和数字签名技术的研究,现代电力,2004 [10]学术搜索与网页搜索-谷歌,http://www.google.com.hk
[11]Ethem Alpaydin(土耳其),机器学习导论,机械工业出版社,2009.6
因篇幅问题不能全部显示,请点此查看更多更全内容