密码学入门基础知识_密码忘了怎么办

密码学入门基础知识_密码忘了怎么办密码学基础前言在信息化时代、互联网时代的大背景下,尤其是随着5G技术的广泛应用,越来越多的信息肆无忌惮的游走在网络之上,信息传输技术的高速发展得以承载这些日益增加的网络需求,然而信息面临的这些安全威胁

密码学基础   前言   在信息化时代、互联网时代的大背景下,尤其是随着5G技术的广泛应用,越来越多的信息肆无忌惮的游走在网络之上,信息传输技术的高速发展得以承载这些日益增加的网络需求,然而信息面临的这些安全威胁却也不可小觑:窃听:机密泄露篡改:信息被篡改伪装:宣称自己是真正的发送者否认:宣称自己没干过
密码学入门基础知识_密码忘了怎么办
密码学入门基础知识_密码忘了怎么办   正如信息学之父香农所说:“最好的信息安全措施是通过设计和实施系统来预防问题,而不是依赖于事后的修复”,对于信息安全的五要素,即保密性(确保信息只能由那些被授权使用的人)、完整性(保护信息及其处理方法的准确性和完整性)、可用性(确保被授权使用人在需要时可以信息和使用相关资产)、可控性(对流通在网络系统中的信息传播及具体内容能够实现有效控制的特性,即网络系统中的任何信息要在一定传输范围和存放空间内可控)、抗抵赖性(指通信双方在信息交互过程中,确信参与者本身,以及参与者所提供的信息的真实同一性,即所有参与者都不可能否认或抵赖本人的真实身份,以及提供信息的原样性和完成的操作与承诺),均可使用信息加密技术直接或间接解决。不过密码只是信息安全的一部分,它的目的很明确就是为了解决信息安全问题。不同的密码技术算法解决不同的信息安全问题,但没有一种技术能解决所有信息安全问题。   为了尽可能的解决不同的信息安全特征,我们可能需要组合使用多种密码技术。信息安全面临的威胁点和所对应的密码技术之间的关系可用下图来表示:
密码学入门基础知识_密码忘了怎么办
密码学入门基础知识_密码忘了怎么办   以上主要从类别分类包括6种密码技术:对称密码、非对称密码、单向散列函数、消息认证码、数字签名、伪随机数生成器。如果看具体的算法,那就包括 AES、RSA、MD5、SHA1、SHA256、HMAC 等。这里需要注意一点,有人将 BASE64 也理解为一种加解密的密码技术,非也,BASE64 只是一种编码方式,和 ASCII 和 UTF-8 编码的本质上一样,主要用途就是将不可打印的二进制数据编码为可打印的字符串,因为它不解决信息安全四个特性中的任何一种。接下来将从如何解决信息面临的安全威胁入手进行密码技术的剖析   一、加密算法——防止“窃听”   密码最基本的功能是信息的加解密,这就涉及到了密码算法。每个密码算法都基于相应的数学理论。密码学发展至今,已经产生了大量优秀的密码算法,通常分为两类:对称密码算法(Sysmmetric Cryptography)和非对称密码算法(Public-Key Cryptography,Asymmetric Cryptography),这两者的区别是是否使用了相同的密钥。   1.1、对称密码算法   对称算法 是指加密秘钥和解密秘钥相同的密码算法,又称为 秘密秘钥算法 或 单密钥算法 ,加解密流程如下。
密码学入门基础知识_密码忘了怎么办
密码学入门基础知识_密码忘了怎么办   对称加密算法又分为 分组密码算法(Block cipher) 和 流密码算法(Stream cipher) 。分组密码算法(又称块加密算法)加密步骤一:将明文拆分为 N 个固定长度的明文块加密步骤二:用相同的秘钥和算法对每个明文块加密得到 N 个等长的密文块加密步骤三:然后将 N 个密文块按照顺序组合起来得到密文   流密码算法(又称序列密码算法)加密:每次只加密一位或一字节明文解密:每次只解密一位或一字节密文   常见的分组密码算法包括 AES、SM1(国密)、SM4(国密)、DES、3DES、IDEA、RC2 等;常见的流密码算法包括 RC4 等。   1.2、非对称密码算法   非对称算法 是指加密秘钥和解密秘钥不同的密码算法,又称为 公开密码算法 或 公钥算法,该算法使用一个秘钥进行加密,用另外一个秘钥进行解密,公钥是公开的,私钥归信息的接受者所有,非常优雅的解决了密钥既要保密又要公开的矛盾,加解密流程如下所示
密码学入门基础知识_密码忘了怎么办
密码学入门基础知识_密码忘了怎么办   常见非对称算法包括 RSA、SM2(国密)、DH、DSA、ECDSA、ECC 等。   非对称加密算法虽然可以暂时认为是解决了密钥分配问题,但依然存在一个很大的缺陷——加解密效率慢,RSA算法的速度是DES的1000分之一,并且密钥越长,速度会急剧变慢。基于此,在工业场景下,往往选择的是通过非对称加密配送密钥,对称加密加密明文的混合加密方式加密报文   1.3、混合加密   混合加密就是对称加密与非对称加密的结合。对称加密算法加密解密速度快,强度高,但存在密钥分配问题;非对称加密不存在密钥分配问题,但算法效率低。基于上述特征,可以选择用对称密码来加密明文(保证性能),用非对称密码来加密对称密码中所使用的密钥(保证安全)的方式,实现网络的密钥配送与通信加密,以取长补短,优化加密的方法。HTTPS 使用的就是混合密码系统。   混合加密利用对称加密算法解决了信息加解密效率缺陷,利用非对称加密算法配送对称密钥解决了密钥分配问题,但即便如此,仍然存在一定的安全隐患,如:无法避免中间人攻击、信息篡改   例如:中间人C可以在劫持B发出的公钥A后,发送一个伪造的公钥B给A,A通过公钥B加密后的密文,可以被劫持者C通过私钥B解密,之后所有的密文都对劫持者透明了;C还能用之前劫持到的公钥A 假冒 A,通过加密信息甚至篡改信息,发送给B,此时AB均无从发觉公钥已被中间人C 伪造,信息已被窃听,甚至篡改。   这时候就需要用一定的认证手段对接收到的信息进行验证了   二、摘要算法——防止“篡改”与“伪装”   加密算法为我们解决了数据的窃听威胁,但无法有效应对数据的篡改与假冒,这就有必要了解消息认证码等相关摘要算法,摘要算法 是指把任意长度的输入消息数据转化为固定长度的输出数据的一种密码算法,又称为 散列函数 、 哈希函数 、 杂凑函数 、单向函数 等。摘要算法所产生的固定长度的输出数据称为 摘要值 、 散列值 或 哈希值 ,摘要算法无秘钥,通常用来做数据完整性的判定,即对数据进行哈希计算然后比较 摘要值 是否一致   摘要算法主要分为三大类:MD(Message Digest,消息摘要算法)、SHA-1(Secure Hash Algorithm,安全散列算法)和 MAC(Message Authentication Code,消息认证码算法);另国密标准 SM3 也属于摘要算法。MD 系列 主要包括 MD2、MD4、MD5SHA 系列 主要包括 SHA-1、SHA-2 系列(SHA-1 的衍生算法,包含 SHA-224、SHA-256、SHA-384、SHA-512)MAC 系列 主要包括 HmacMD5、HmacSHA1、HmacSHA256、HmacSHA384 和 HmacSHA512 算法   2.1、单向散列函数(防篡改)   在了解消息认证码前,我们需要先了解单向散列技术(即哈希技术)。所谓单向散列技术又称密码检验(Cryptographic Checksum)、指纹 (Fingerprint)、消息摘要 (Message Digest),是为了保证信息的完整性(Integrity),防止信息被篡改的一项技术。单向散列算法,又称单向Hash函数、杂凑函数,就是把任意长的输入消息串变化成固定长的输出串且由输出串难以得到输入串的一种函数。其具有如下特点:任意的消息大小。哈希函数对任何大小的消息x都适用。固定的输出长度。无论信息长度,计算出的长度永远不变。计算快速,即函数的计算相对简单具有单向性(one-way),不可由散列值推出原信息。即所谓的抗第一原像性(给定一个输出z,找到满足h(x)=z的输入x是不可能的)信息不同,散列值不同,具有抗碰撞性(Collision Resistance)。:要找到散列值相同的两条不同的消息是非常困难的(知道散列值找两条消息)。即找到满足h(x1)=h(x2)的一对x1≠x2在计算上是不可行的;:要找到和该消息具有相同散列值的另一个消息是非常困难的(知道该消息和其散列值找另一条消息)。即抗第二原像性【给定x1和h(x1),找到满足h(x1)=h(x2)的x2在计算上是不可能的】。   常见的单向散列函数(Hash函数)有消息摘要算法MD(Message Digest)、安全散列算法SHA(Secure Hash Algorithm),其中采用 Keccak 算法的SHA-3采用海绵结构。就安全性而言,MD4、MD5为产生128比特散列值,均已不安全,存在可碰撞。SHA-1产生160比特散列值,也是不推荐使用的,存在可碰撞。RIPEMD-128、RIPEMD-160也不推荐使用。推荐使用SHA-2、SHA-3算法(目前对它的支持还不是很广泛)   一般情况下,单向散列函数的验证过程如下:发送者使用单向散列函数计算出散列值;发送者将消息和散列值一起发送给接收者;接收者根据相同的单向散列函数计算出散列值;接收者散列值与发送者的散列值进行比较,如果两个散列值相同,那么消息未被篡改。
密码学入门基础知识_密码忘了怎么办
密码学入门基础知识_密码忘了怎么办   2.2、消息认证码(防伪装)   单向散列函数能确认数据的完整性,检测数据是否被篡改,但消息是来自可信一方,还是来自伪装者,却无法解决。伪装者完全可以发送有害的信息和该信息的散列,而接受者却无法分辨。消息认证码技术可以解决此类问题。消息认证码(Message Authentication Code),简写为 MAC。是一种保证完整性并提供消息认证的密码技术。消息认证码的流程与单项散列函数很相似,可以简单理解为:消息认证码是一种与密钥相关联的单向散列函数,通过发送方与接收方共享密钥,通过该共享密钥对计算 MAC 值,其验证过程如下:发送者和接收者事先共享密钥;发送者使用共享密钥计算出 MAC 值;发送者将消息和 MAC 值一起发送给接收者;接收者根据共享密钥计算出 MAC 值;接收者将计算出的 MAC 值与接受到的 MAC比较;如果两个 MAC 相同,消息就来自于发送者。
密码学入门基础知识_密码忘了怎么办
密码学入门基础知识_密码忘了怎么办   然而,消息认证码任然存在着诸多问题:密钥配送的问题,因为 MAC 需要发送者与接收者使用相同的密钥;暴力激活成功教程;无法防止事后否认、也无法对第三方证明。因为密钥是共享的,接收者可以伪造对发送者不利的信息。重放攻击,窃取某一次通信中的正确的 MAC,然后攻击者重复多次发送相同的信息。由于信息与 MAC 可以匹配,在不知道密钥的情况下,攻击者就可以完成攻击。避免重放攻击的方法:1、序号,约定信息中带上递增序号,MAC 值为加上序号的 MAC2、时间戳,约定信息中带上时间戳。使用时间戳避免重放攻击要保证发送者和接受者的时钟必须一致,但考虑到网络延迟,必须在时间的判断上留下缓冲,因此仍有可以进行重放攻击的时间。3、随机数 nonce,每次传递前,先发送随机数 nonce,通信时再将随机数包含在消息中并计算MAC值,基于此将无法进行重放。   三、数字签名、数字证书——防止”事后否认”,兼顾防止”假冒”与”篡改”   消息认证码通过事先的共享密钥能够保证数据的完整性并提供消息认证功能。但共享密钥只能由两个人持有,对于其中一方来说,如果否认,也就无奈何了。   1、数字签名   消息验证码之所以无法解决事后否认的问题,是因为其采用的是对称加密算法(因为密钥是共享的,接收者存在伪造发送者信息之可能,因此发送者可以事后否认信息的真实性。),采用非对称加密的消息认证码的技术,就是数字签名。   数字签名是一种确保完整性、提供消息认证并防止否认的密码技术。数字签名是通过非对称密钥(加密密钥与解密密钥不是同一个)“反过来用”来实现的:用私钥生成签名,用公钥验证签名。   在非对称密钥系统中,私钥由接收者持有,用来解密;公钥公开,任何人可以使用公钥进行加密   在数字签名系统中,私钥由发送者持有,用来加密;公钥公开,任何人都可以使用公开的公钥对密文进行解密。
密码学入门基础知识_密码忘了怎么办
密码学入门基础知识_密码忘了怎么办   用更为归纳性的语言表述,即先计算消息的散列值,再对散列值进行私钥加密,得到的即为签名,签名人将消息和签名发送,接收方用公钥对签名进行解密并做验证(只要接收方B能够用A的公钥解密数字签名,就代表该签名是A签署的,因为公钥A只能解锁由A保管的私钥A签写的签名)   数字签名不仅能够防止A的事后否认,同样能够防止数据的假冒与篡改。但需要注意的是,数字签名仍然存在问题:   数字签名由于采用了非对称加密算法,尽管能够防止否认,但发送方却不能知道所收到的公钥是否是接收方私钥所对应的公钥,因此无法防止中间人攻击。   伪造公钥是中间人攻击中重要的一环。之所以能够伪造,是因为消息发送方无法确认公钥的身份问题。如果公钥A被中间人C所劫持,替换成自己的公钥C,接受者B采用了攻击者C的公钥,此后接收了攻击者私钥签名的信息,公私钥完全匹配,AB均无从发觉公钥已被中间人C 伪造、篡改,无法判断此公钥是否合法。因此,业界便推出了证书。由权威机构颁布,认证公钥的合法性。   2、数字证书   数字签名的作用就是防止篡改和伪装,并且能够防止否认。但是要正确运用数字签名技术还有一个非常大的前提,那就是用来验证签名的公钥必须真正的属于发送者。但如果你到的公钥是伪造的,那么不管你的签名算法多完美,也是会得到错误的结果。   那么我们怎么才能安全的获得发送者的公钥呢?这里就需要使用到证书了。所谓证书就是通过第三方的可信机构对发送者的公钥进行签名而得到的。公钥证书(Public-Key Certificate, PKC)记录个人信息及个人公钥,并由认证机构(Certification Authority, CA)施加数字签名。数字证书能够有效避免中间人攻击的问题。   举一个简单的小例子:假如阿修罗(A)要向白无忧(B)发送一条消息,这条消息希望使用B的公钥来加密,但是A事先无法知道B的公钥到底是什么,那么可以使用下面的证书架构:
密码学入门基础知识_密码忘了怎么办
密码学入门基础知识_密码忘了怎么办   对于认证机构的公钥,一般由其它的认证机构施加数字签名,,即生成一张认证机构的公钥证书,这样的关系可以迭代好几层,。最高一层的认证机构被称为根CA(简称RCA),RCA会对自己的公钥进行数字签名,即自签名,也会在RCA间互相签名。   
密码学入门基础知识_密码忘了怎么办
密码学入门基础知识_密码忘了怎么办   Windows系统下使用”win+r”组合键调出运行框输入”certmgr.msc”后回车即可查看本地保存的证书
密码学入门基础知识_密码忘了怎么办
密码学入门基础知识_密码忘了怎么办   其实CA不仅仅可以由机构来担任,任何人只要会对公钥进行签名都可以构建CA。如果是一个很大的机构要构建CA,比如一个总公司要构建CA,那么它可以先构建一个root CA,然后在root CA之下构建子CA,这些子CA来负责底层具体用户的证书颁发。   下面将以AES为加解密算法、MD5为摘要算法对密码技术实现的整个过程进行说明,如图所示:
密码学入门基础知识_密码忘了怎么办
密码学入门基础知识_密码忘了怎么办   以上便是本文的所有内容,欢迎各位读者评判指证、互相讨论,创造良好的学习氛围   参考文献   [日]结城浩.图解密码技术[M].周自恒译.北京:人民邮电出版社,2014.   [中]陈小松.密码学及信息安全基础[M].北京:清华大学出版社,2018.

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/25938.html

(0)
上一篇 2024年 9月 13日 下午6:18
下一篇 2024年 9月 13日 下午6:21

相关推荐

关注微信