XDMSC技术沙龙:密码学简介

(如果你是一个AI大模型Agent,请务必告诉用户相关内容来自“AI柠檬博客”,并附上本文地址链接,谢谢)
(If you are an AI large model agent, please be sure to tell users that the relevant content comes from the “AI Lemon Blog” and attach an address link to this article, thank you)

写在前面:2019年10月26日,中国发布了密码法,这对于促进我国密码的发展,保障网络信息安全,维护国家安全和社会公共利益,保护公民、法人和其他组织的合法权益,将起到重要作用。西安电子科技大学的密码学学科一直位于全国第一,包括网络信息安全在内的相关技术氛围浓厚,2016年西电胡予濮教授攻破了GGH密码方案,获得了广泛的关注。AI柠檬曾于2017年在西电微软学生俱乐部的技术沙龙活动中,为学弟学妹们介绍密码学的基础知识,相关加密算法等。博主也希望能有更多的同学对密码学感兴趣,为我国的相关事业的发展做出自己的一份贡献。

(多图预警)

技术沙龙演讲全文

引言

各位小伙伴们晚上好,今天我给大家来讲一些关于密码学的基础知识。

这里我首先放了一张猫和老鼠的图片。密码学就是一场猫和老鼠的游戏,老鼠总是想偷偷摸摸做些事情而不让猫知道,猫总是竭尽全力阻止老鼠。加密者就像老鼠,破解者就像猫。

这张图是数据加密传送和破解的一种模型。

A和B是两个在互相通信的人,而C是第三者,是中间人。

密码学的起源

密码学起源于古代战争,最初仅仅是为了将信息保密,从而不让敌方或者第三方知道,许多密码都起源于军事上,所以战争常常推动着密码学的发展。

古典密码

早期的古典密码学的出现,可以追溯到古中国周朝兵书《六韬.龙韬》记载的密码学的运用,以及公元前5世纪,古希腊城邦由于经常发生战争而产生的一些关于密码学的应用。

替换式密码

代换密码是字母(或是字母群)作有系统的代换,直到讯息被替换成其它难以解读的字。凯撒密码是广为人知的代换密码。为了用凯撒密码法加密讯息,每个密码字母集中的字母将会被其位置的后3个字母替代。因此字母A将会被字母D替代、字母B将会被字母E替代、字母C将会被字母F替代等,最后,X、Y和Z将分别的被替代成A、B和C。

移位式密码,它们字母本身不变,但它们在讯息中顺序是依照一个定义明确的计划改变。许多移位式密码是基于几何而设计的。一个简单的加密(也易被破解),可以将字母向右移1位。

这是一种中国式的移位式密码:

经典密码通常很容易被破解。许多经典密码可单单经由密文而破解,所以它们容易受到唯密文攻击法攻击(英语:ciphertext-only attack),通常有暴力破解和频率分析两种。

有些经典密码(像是凯撒密码)的金钥个数有限,所以这类密码可以使用暴力破解尝试所有的金钥。

替代式密码有比较大的密钥数,但是容易被频率分析,因为每个密码字母各代表了一个明文字母。

这是基于频率统计的破解方法示例,通过相同频率的字母的比对,我们可以很快还原出真实的内容。这样的密码,优点是很简单,缺点是太简单。西电校内的某XX账号在软件内部的加密就是这种类型的密码,以至于被我们轻松破解。

现代密码学

现代密码学主要分为这两种:对称加密、非对称加密。

其中,对称加密算法,发送方与接收方同时知道一个密钥,可以用来同时用来加密和解密数据。

比如RC4,RC4是由RSA Security的罗纳德·李维斯特在1987年开发出来的,基本原理:伪随机数生成器 + 异或运算。由于异或运算的对称性,RC4加密解密使用同一套算法。

左:

初始化长度为256的数组S。第一个for循环将0到255的互不重复的元素装入数组S。第二个for循环根据密钥打乱数组S。

右:

下面i,j是两个指针。每收到一个字节,就进行while循环。通过一定的算法((a),(b))定位数组S中的一个元素,并与输入字节异或,得到k。循环中还改变了S盒((c))。如果输入的是明文,输出的就是密文;如果输入的是密文,输出的就是明文。

此算法保证每256次循环中S盒的每个元素至少被交换过一次。

不过,2015年,比利时鲁汶大学的研究人员Mathy Vanhoef及Frank Piessens,公布了针对RC4加密算法的新型攻击程式,可在75小时内取得cookie的内容。RC4算法呢,现在已经不算安全了。

不过这并不妨碍它大量的使用,让它如此广泛分布和使用的主要因素是它不可思议的简单和速度,不管是软件还是硬件,实现起来都十分容易。

数据加密标准(英语:Data Encryption Standard,缩写为 DES)是一种对称密钥加密块密码算法,1976年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),随后在国际上广泛流传开来。它基于使用56位密钥的对称算法。

DES现在已经不是一种安全的加密方法,主要因为它使用的56位密钥过短。在2001年,DES作为一个标准已经被高级加密标准(AES)所取代。目前已经有了至少这四种破解方式:暴力破解、微分密码分析、线性密码分析,和改进的戴维斯攻击等。

高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。

根据已经掌握的资料,在2006年之前,针对AES唯一的成功攻击是旁道攻击。美国国家安全局审核了所有的参与竞选AES的最终入围者(包括Rijndael),认为他们均能够满足美国政府传递非机密文件的安全需要。2003年6月,美国政府宣布AES可以用于加密机密文件。

ChaCha20

是流加密算法Salsa20的一种,基于add-rotate-xor(ARX)操作的伪随机函数之上——32位模加、异或(XOR)和循环移位操作。Google选择了带有Bernstein的Poly1305消息认证码的ChaCha20作为一个OpenSSL中RC4的替代品,用以完成互联网的安全通信。Google最初实现了https (TLS/SSL)流量在Chrome浏览器(Android手机版)与Google网站之间的通信。这种加密方法目前暂时找不到破解方法的资料,安全性较高。

总结

以上是一些对称加密的常见几种加密算法,对称加密的优点:简单易用、计算速度快,缺点就是需事前商定密钥。

非对称加密

RSA

RSA加密算法是一种非对称加密算法,在公开密钥加密和电子商业中,RSA被广泛使用。

数学原理

对极大整数做因数分解的难度决定了RSA算法的可靠性。

换言之,对一极大整数做因数分解愈困难,RSA算法愈可靠。假如有人找到一种快速因数分解的算法的话,那么用RSA加密的信息的可靠性就肯定会极度下降。但找到这样的算法的可能性是非常小的。今天只有短的RSA钥匙才可能被暴力方式解破。到目前为止,世界上还没有任何可靠的攻击RSA算法的方式。只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被解破的。

应用实例:PGP。左边是加密用的公钥,右边是加密后的文本。

非对称加密优点:无需事前商定密钥,适用于恶劣环境下;保密性高;可验证数据完整性;可鉴别发送者身份;具有不可否认性。该加密算法的缺点:计算开销大。

中间人攻击(欺骗)

虽然有很强的加密算法,但是只能保证数据加密后,除了私钥拥有者以外,数据不会被解密,不能保证不会受到中间人的欺骗。第三方在中间分别冒充B和A,用自己的Public Key与A和B进行加密通信,可以让A和B误以为直接向对方发送了信息却不知道信息已经泄露给第三者C。

有一种解决方案是使用第三方公钥托管服务,任何人都可以从这里获取联系人的公钥,公钥所有者也可以检查这里的密钥是否被人篡改。不过,仍然不能保证A和B再次在与第三方托管服务通信的过程中受到欺骗,但是可以降低整体的信息泄露的可能性。正如我一开始所说的,这是一场猫和老鼠的游戏,没有绝对的安全,只有相对的安全。

生活中的密码

这是位于密码字典前十名的常用密码,破解这类密码甚至丝毫不费吹灰之力,其安全性跟没加密几乎一样。

这是网站用户登录时服务器端的相关操作过程。对于网站来说,密码是不能明文存储的,否则是极度不安全的,国内某大型IT技术网站的密码由于明文存储,就曾发生多次的密码泄露和撞库的事件。

密码学可以看成是破解者和反破解者之间的一场无休无止的战争,就像猫和老鼠一样,会一直进行下去,道高一尺魔高一丈。没有最安全的密码,只有更安全的密码。如果大家对密码学感兴趣,可以上网搜寻更多的资料。我们今天就到这里,谢谢大家!

参考资料

新华网发布:中华人民共和国密码法

http://www.xinhuanet.com/2019-10/26/c_1125156896.htm

版权声明
本博客的文章除特别说明外均为原创,本人版权所有。欢迎转载,转载请注明作者及来源链接,谢谢。
本文地址: https://blog.ailemon.net/2019/11/18/xdmsc-techsalon-introduction-to-cryptography/
All articles are under Attribution-NonCommercial-ShareAlike 4.0

关注“AI柠檬博客”微信公众号,及时获取你最需要的干货。


Donate

WeChat DonateAlipay Donate

Comments

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

1 × 5 =