美文网首页
加密算法

加密算法

作者: 晚歌歌 | 来源:发表于2020-12-29 17:07 被阅读0次

    概念

    数据加密的基本过程就是对原来为明文的文件或数据按某种[算法进行处理,使其成为不可读的一段代码为“密文”,使其只能在输入相应的密钥之后才能显示出原容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。 该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。

    分类

    image.png
    • 双向加密(可解密)
      • 对称加密
      • 非对称加密
    • 单向加密(不可解密)

    在线加解密工具

    https://www.sojson.com/encrypt.html

    对称加密

    对称加密算法即:加密和解密使用相同密钥的算法

    DES

    DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法, 明文按64位进行分组,密钥长64位,密钥事实上是56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位, 使得每个密钥都有奇数个1)分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。

    3DES

    3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称。它相当于是对每个数据块应用三次DES加密算法。
    由于计算机运算能力的增强,原版DES密码的密钥长度变得容易被暴力破解;3DES即是设计用来提供一种相对简单的方法,即通过增加DES的密钥长度来避免类似的攻击,而不是设计一种全新的块密码算法。

    3DES算法顾名思义,就是3重DES加密,通俗的讲就是将明文数据块进行了3次DES运算,安全强度比DES更高。此处仅以8字节明文数据进行举例说明。3DES算法将24字节密钥以8字节长度进行了分组,前八字节为KEY1,中间8字节为KEY2,最后8字节为KEY3。加密的时候,使用KEY1对明文数据块1进行DES加密得到C1,使用KEY2对C1进行DES解密得到C2,再用KEY3对C2进行DES加密得到C3。解密的流程与之相反,先用KEY3对C3进行DES解密得到M3,再用KEY2对M3进行DES加密得到M2,最后用KEY1对M2进行DES解密得到M1。

    AES

    AES全称为Advanced Encryption Standard高级加密标准,用来替代原先的DES,已成为对称密钥加密中最流行的算法之一,目前还未有有效的破解手段。
    根据使用的密码长度,AES最常见的有3种方案,用以适应不同的场景要求,分别是AES-128、AES-192和AES-256
    AES加密过程涉及到4种操作:字节替代(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)和轮密钥加(AddRoundKey)。解密过程分别为对应的逆操作。由于每一步操作都是可逆的,按照相反的顺序进行解密即可恢复明文。加解密中每轮的密钥分别由初始密钥扩展得到

    非对称加密

    非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥 (privatekey)
    公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。 非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将公钥公开,需要向甲方发送信息的其他角色(乙方)使用该密钥(甲方的公钥)对机密信息进行加密后再发送给甲方;甲方再用自己私钥对加密后的信息进行解密。甲方想要回复乙方时正好相反,使用乙方的公钥对数据进行加密,同理,乙方使用自己的私钥来进行解密。
    另一方面,甲方可以使用自己的私钥对机密信息进行签名后再发送给乙方;乙方再用甲方的公钥对甲方发送回来的数据进行验签。
    甲方只能用其私钥解密由其公钥加密后的任何信息。 非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要。
    非对称密码体制的特点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。对称密码体制中只有一种密钥,并且是非公开的,如果要解密就得让对方知道密钥。所以保证其安全性就是保证密钥的安全,而非对称密钥体制有两种密钥,其中一个是公开的,这样就可以不需要像对称密码那样传输对方的密钥了。这样安全性就大了很多。

    RSA

    RSA 非对称加密原理(小白也能看懂哦~)

    RSA公开密钥密码体制的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥
    正是基于这种理论,1978年出现了著名的RSA算法,它通常是先生成一对RSA密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。这就使加密的计算量很大。为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,即信息采用改进的DES或IDEA对话密钥加密,然后使用RSA密钥加密对话密钥和信息摘要。对方收到信息后,用不同的密钥解密并可核对信息摘要

    RSA加密、签名区别

    加密和签名都是为了安全性考虑,加密是为了防止信息被泄露,而签名是为了防止信息被篡改。由于RSA算法相对于对称加密算来说效率较低,通常RSA算法用来加密小数据,如对称加密使用的key等。实际上应用更为广泛的是RSA算法用在签名操作上。
    总结:公钥加密、私钥解密、私钥签名、公钥验签。

    签名

    • 对需要上送的报文[en_data]计算特征值[sign_block],相关算法包括[md5、sha1、sha256、sha512等等]。
    • 使用私钥[pri_key]对sign_block加密获得数字签名[sign]。
    • 将sign与en_data打包发送给对方。

    验签

    • 解析收到的报文,拆分为sign 及 en_data。
    • 对en_data计算特征值[sign_block],相关算法包括[md5、sha1、sha256、sha512等等双方协商]。
    • 使用公钥[pub_key]对sign解密,获得sign_block1。
    • 比较sign_block 和 sign_block1,若匹配则验证成功,报文未被篡改。

    单向加密

    单向加密又称为不可逆加密算法,其密钥是由加密散列函数生成的

    MD5

    MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。
    该算法被证实存在弱点,可以被彩虹表加以破解,对于需要高度安全性的数据,专家一般建议改用其他算法,如SHA-2。证实MD5算法无法防止碰撞(collision),因此不适用于安全性认证,如SSL公开密钥认证或是数字签名等用途

    SHA256

    SHA256是安全散列算法SHA(Secure Hash Algorithm)系列算法之一,其摘要长度为256bits,即32个字节,故称SHA256。是安全的算法
    SHA256是SHA-2下细分出的一种算法
    SHA-2,名称来自于安全散列算法2(英语:Secure Hash Algorithm 2)的缩写,一种密码散列函数算法标准,由美国国家安全局研发,属于SHA算法之一,是SHA-1的后继者。
    SHA-2下又可再分为六个不同的算法标准
    包括了:SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256。
    这些变体除了生成摘要的长度 、循环运行的次数等一些微小差异外,算法的基本结构是一致的。

    相关文章

      网友评论

          本文标题:加密算法

          本文链接:https://www.haomeiwen.com/subject/xinfoktx.html