龙空技术网

原来ENIGMA的原理是这样的?

IT管理局 271

前言:

而今看官们对“哈希算法加密什么原理”大体比较注意,你们都想要了解一些“哈希算法加密什么原理”的相关文章。那么小编同时在网摘上收集了一些关于“哈希算法加密什么原理””的相关内容,希望兄弟们能喜欢,看官们快快来了解一下吧!

阅读本文约需要10分钟,您可以先关注我们,避免下次无法找到。

在这个信息化的时代,如果你不懂如何使用电脑,可能找工作都很困难。当然不管是电脑还是其他的电子产品,都面临着安全,尤其是网络信息安全的问题。

党的十八届五中全会通过的"十三五"规划《建议》,明确提出实施网络强国战略以及与之密切相关的"互联网+"行动计划。网络信息安全被明确提到网络强国战略中。

今天就由成哥带大家一起了解下网络信息安全中最基础的知识——密码学。

01 概述

密码学主要是在研究如何在数据传输和存储的过程中实现数据的机密性、完整性、身份鉴别和抗抵赖性。

从密码技术的发展历史,大致可以划分为三个时期,即古典密码、近代密码和现代密码时期。

(1)古典密码时期

从古代到十九世纪末,当然还比较初级,那个时候主要是通过简单的器械来实现数据的加密/解密,主要是一种文字变换的手段,严格来说称之为密码技术更合适,并不是一门学科。

举个例子:把布条缠到直径为A的圆柱体上,然后横向写单词或其他信息,写完后将布条拆下来,拿到布条传递给信息接收方,中间即使被人截获也无法知晓其意思,接收方拿到该布条时,再按照同样的手段把布条缠绕在直径为A的圆柱体上,以这种方式进行数据的加密和解密。

(2)近代密码时期

近代密码时期指二十世纪初至二十世纪50年代左右。

研究人员设计出了各种各样采用机电技术的转轮密码机来取代手工编解码的方式。转轮机的出现使得古典密码的手工加解密技术有了质的飞跃。

当然这个时期的密码技术是一种经验的总结,而不是通过推理和证明,因此也不能称之为密码学。

举个例子:ENIGMA密码机,就是通过26个字母的键盘输入信息,屏幕上有26个小灯泡,当键盘上的某一个字母键被按下时,字母加密后对应的小灯泡就亮了起来。

加密的方式是通过转子实现的,并且这个转子还是转动的,比如你输入A时B灯泡亮了,再输入A时C灯泡亮了,所以相同的字母每次对应的灯泡是不一样的。

转子是ENIGMA密码机的精髓,发送者调整好转子的方向后,通过ENIGMA密码机加密,将灯泡上的字母记下来,然后发送电报给接收方,接收方也需要使用相同的转子方向进行解密。

(3)现代密码时期

1949年香农(Claude Shannon)没错又是他,一篇《保密系统的通信理论》发表,首次将信息论引入到密码技术的研究中,使密码学成为一门科学。

现代密码学主要是通过各种加密算法实现数据的机密性、完整性、身份鉴别、抗抵赖性。

02 密码算法的四大功能

这里先给大家介绍一个基本概念:

明文:即待加密处理的消息或被解密后的消息;

密文:明文通过加密算法计算后的输出消息;

加密:把明文消息转换为密文的过程;

解密:把加密的消息恢复成原始明文消息的过程;

密码算法:消息加、解密过程的变换规则,在编程里体现为一种函数;

密钥:密码算法中的一种可变参数,是加解密双方约定好的一个值。

(1)机密性

所谓机密性,就是发送端将数据和密钥通过密码算法处理成密文,假如密文在传输过程中被截获,截取方短时间内(一般定义为3个月)无法破解。

当数据达到接受端时,通过相同的算法和密钥处理,可以将密文解密成明文。

这种功能在我们的生活中无处不在,大家上网在浏览器输入的HTTPS://开头的网址,在数据传输时都是经过加密的。

实现数据机密性我们会使用对称加密算法,常见的算法有:DES、3DES、AES、SM1等。

对称加密算法有如下特点:

速度快:对数据加解密都很快,适合大量数据的加解密工作;

体积不变:加密后的数据大小不变。

(2)完整性

用以确保数据在存储和传输的过程中不被窜改。实现数据完成性的是通过哈希算法来实现的,哈希算法有如下特点:

唯一性:即相同的消息通过同一种算法计算出的密文完全一样;

等长:通过相同哈希算法计算出的值长度一样;

不可逆:被哈希过的数据无法推算出原始数据。

数据完整性正是利用唯一性这个特点来实现的。

比如一个在网上可下载的文件,本来是一个正常没有问题的文件,但是被有心人窜改加入了病毒木马等程序,你在下载时,就会中招。此时如果文件上传者在上传该文件时,做一次哈希计算,生成一串值A放在网页中,你下载后,将下载的文件也进行一次哈希计算,如果生成的值也是A,那说明这个文件没有被窜改。

实现数据完成性的算法是哈希算法,常见的算法有:MD5、SHA、SM3等。

(3)身份鉴别、抗抵赖性

身份鉴别主要是需要对数据来源和身份鉴别有关的服务。比如你访问百度,如何确认一定访问的是百度呢?如果DNS被劫持,你输入了百度的域名,但实际上解析出来的是其他的网站呢,如下图所示:

抗抵赖性是一种阻止通信实体抵赖之前发送的数据信息。

身份鉴别、抗抵赖性这两种密码学功能都是通过非对称加密算法来实现的。

非对称加密算法有如下几个特点:

以密钥对呈现,一个公钥、一个私钥;

公钥加密私钥解密,私钥加密,公钥解密;

私钥永远掌握在自己手上,当私钥丢失时,该密钥对已经不可靠,需要重新生成。

当发送者A通过A的私钥加密数据发送给接受者,接受者通过A的公钥可以正常解密,那就可以说明发送者一定是A,因为密文可以通过A的公钥解密,说明这个数据是A的私钥加密的,同时A的私钥只可能在A的手里,所以这个发送者一定是A。

实现数据身份鉴别、抗抵赖性的算法是非对称加密算法,常见的算法有:RSA、DSA、SM2等。

03 总结

今天成哥给大家介绍了密码学最基础的知识,包括密码学的发展的三个阶段、密码学的四大功能并且穿插介绍了对称加密算法、非对称加密算法、哈希算法的特点和应用场景。大家如果有想深入学习密码学的知识点请在下方留言,我们后期推出。

--END--

@IT管理局专注计算机领域技术、大学生活、学习方法、求职招聘、职业规划、职场感悟等类型的原创内容。期待与你相遇,和你一同成长。

相关文章推荐:

一文秒懂 TCP/IP实际五层结构(上篇)Wireshark数据包分析三板斧

标签: #哈希算法加密什么原理