密码学浅显认识

密码学简单来说,应该包括加密和密码分析两个方面,加密算法的设计和研究主要是保护信息的安全,而对密文进行分析则是企图根据密文恢复明文。密码学的发展可以划分为三个阶段:古代加密方法(手工阶段),主要特点是采用一种比较隐秘的方式传递消息;古典密码(机械阶段),主要方式是换位或置换,典型的做法有单表代换,多表代换,多轮代换等;近代密码(计算机阶段),主要是充分运用数论、代数几何等数学知识,将加解密算法规结为解决一个数学难题。但是,无论哪个阶段,加密的目的都是一样的,就是隐藏信息的真实涵义,而不是隐藏信息本身。

下面简单谈一谈密码技术如何根据需要发展的吧!

古代加密方法和古典加密方法,思路简单,换位或置换,安全性依赖于加密算法的保密,即便在不知道加密算法的情况下,也容易通过分析,恢复明文,比如对密文进行频率分析,因为换位并不会改变字符的频率。尤其是随着计算机技术的出现以及计算性能的提高,这种加密方式的安全性令人担忧。而世界有一些公认的数学难题,如果能将加解密问题转换成求解一类数学难题,那么安全性可大大提高。较为常用的用来构造密码算法的数学难题有大整数因式分解、离散对数问题求解(尤其是椭圆曲线上离散对数问题求解)。

最简单的加密方式,通信双方传送消息之前先秘密协商一个秘钥,然后发送方先用秘钥将消息加密发送给接收方,接收方收到消息后先用秘钥解密,这种加解密用相同的秘钥,我们称之为对称加密,很显然,这种方式安全性不高,因为只要有秘钥,就能对密文解密,而秘钥在通信之前需要协商然后传送,这样秘钥在传递的过程中,就有被窃取的风险。

正因为如此,就出现了非对称密码体制,就是加密和解密秘钥是不同的,也就是公钥密码体制。公钥密码体制是加密算法公开,加密的公钥也公开,用来解密的私钥保密,并且必须满足一致性原则,即用公钥加密,那么用私钥可以解密,用私钥加密,用公钥可以解密。

如果用来加密信息,那么一般的做法就是用接收者的公钥对消息进行加密,然后发送给接收者,而接收者的私钥只有他自己知道,不需要传递,所以接受者可以用私钥解密,获得原始消息,这样就比对称加密安全些。但是仔细分析,也存在问题,为什么呢?

因为公钥是公开的,每个人都可以获得,这样攻击者就可以事先生成一对公私钥对,然后用这个公钥去替换掉某个人的公钥,从而将发送给这个人的消息解密而窃听。比如Alice发送方,Bob接收方,他们都有自己的一对公私钥对,如果Alice想给Bob发送消息,她就用Bob的公钥加密,Bob收到消息后,用自己的私钥解密就可以恢复原文。

这是理想状态,但是如果攻击者将Bob的公钥替换了,而Alice查询到的是已经改过的公钥,那么她就用这个改过的公钥加密消息发送给Bob,攻击者截获密文之后,就可以用他的私钥解密,从而窃听到Bob的消息。为什么会存在这个问题呢?仔细分析不难发现,问题出在公钥的真实性上,那么如何验证公钥的真实性呢?联系生活实际,我们不难想到,如果Bob用他的私钥发送消息给Alice,Alice再用查询到的Bob的公钥来解密,如果可以解密,则说明这个公钥是Bob的,没有被改动,如果不能,就说明这个公钥被改过了。

这样安全性提高了,但是也非常麻烦,因为每一次通信都要接收者的公钥加密,这样就需要保存用户大量的公钥列表,因此,在传统的公钥密码体制中,有一个公钥基础设施PKI(可信第三方),用来对用户的公钥进行管理,操作流程一般是这样的,就是用户向PKI证实自己的身份,通过用户的私钥来证实,然后PKI核实之后,就给用户的公钥用PKI的私钥加密(在密码学里这就是数字签名了),这样想给该用户发送消息的人,每次查询获得给用户的公钥时,先用PKI的公钥进行验证,如果验证通过,就相信公钥是真实的,就可以用该公钥加密消息发送给该用户。但是带来的问题就是PKI管理公钥证书困难,并且公钥的认证也要花费时间,影响加解密效率。

PKI的主要作用是证实用户公钥的真实性,其实就是用户身份的真实性。那么,如果公钥直接是根据用户的身份信息得到的,而身份信息采用用户的姓名、身份证号、邮箱地址等可以唯一标志用户身份的内容,然后再找到一个容易将用户的身份信息转换成公钥的算法,这样公钥就不用通过公钥证书进行认证了,这就是基于身份的密码体制的思想。接下来的问题就是私钥如何产生了,那么私钥也可以像传统公钥密码体制一样,由用户自己产生吗?

不能,主要原因是如果用户可以根据自己的公钥计算出私钥,那么她同样可以根据别人的公钥计算出别人的私钥,因此,基于身份的密码体制里,也需要有一个可信第三方,这个可信第三方我们一般称为私钥产生中心PKG,用来生成用户的私钥,然后通过安全方式发送给用户.

扫描二维码关注公众号,回复: 15266762 查看本文章

这样,基于身份的密码体制的加密方案一般包含四个步骤:

第一步,生成系统参数,由安全参数生成系统参数和系统的主秘钥;

第二步,私钥生成,由系统参数、用户身份、主秘钥生成用户的私钥;

第三步,加密,用系统参数、用户公钥对原始消息加密,生成密文;

第四步,解密,用系统参数、用户私钥对密文解密,恢复明文。但是呢,因为PKG生成用户私钥,因此,该密码体制最大的问题就是PKG的诚实性,因为PKG可以解密任何一个用户的消息,也可以伪造任何一个用户的签名。这个问题用密码学术语描述就是秘钥托管的问题。

为了解决某些应用中必须严格避免的秘钥托管问题,产生了无证书密码体制的思想,该思想主要思路是PKG只能产生部分用户私钥,用户再选择一个秘密值,根据部分私钥产生完全的用户私钥,这样就解决了秘钥托管的问题。

网络安全学习资源分享:

零基础入门

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

在这里插入图片描述

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享 (qq.com)

同时每个成长路线对应的板块都有配套的视频提供:

在这里插入图片描述

在这里插入图片描述

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享 (qq.com)

因篇幅有限,仅展示部分资料,需要点击上方链接即可获取

猜你喜欢

转载自blog.csdn.net/VN520/article/details/130339046