浅学密码学

1. 加密

1.1 概念

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

1.2 理由

1.2.1 互联网隐私问题是真实存在的

加密将个人信息变成只供有需要的一方使用的信息,而没有其他人,可以帮助保护您的在线隐私。您应该确保通过加密连接发送电子邮件,或者用加密软件加密每封邮件的附件。大多数电子邮件客户端的“设置”菜单中都提供了加密选项,如果您使用网络浏览器检查电子邮件,请花点时间确保SSL加密可用。

大多数社交工具不支持文件加密,加密软件支持手机电脑加密分享,可以把加密的文件直接用社交工具发给对方,对方再用加密软件查看加密文件,这样,对方只能看,不能解密,其它人不能看,防止主动泄密和被动泄密。

1.2.2 黑客是大生意

网络犯罪是一项全球性业务,通常由跨国公司运营。您可能在新闻中听说过的许多大规模数据泄露事件都表明,网络犯罪分子经常是在窃取个人信息以谋取经济利益。

1.2.3 法规要求

加密可帮助企业保持法规要求和标准的遵从性。它还有助于保护其客户的宝贵数据。

1.3 对称加密

1.3.1 定义

需要对加密和解密使用相同密钥的加密算法。由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用。对称性加密也称为密钥加密。

所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。密钥是控制加密及解密过程的指令。算法是一组规则,规定如何进行加密和解密。因此加密的安全性不仅取决于加密算法本身,密钥管理的安全性更是重要。因为加密和解密都使用同一个密钥,如何把密钥安全地传递到解密者手上就成了必须要解决的问题。

常用的对称加密算法有:DES、3DES、TDEA、AES、RC2、RC4、RC5、IDEA、SKIPJACK、Blowfish,国密中的SM4等。

  1. 分组密码:先对明文进行分组,然后使用对称加密算法对每一个分组进行加密,然后把所有组的密文拼接起来就是密文。
  2. 流密码:指的可以对连续的明文进行加密,而明文不需要去进行分组,上面的对称加密算法是不支持对连续的明文进行加密的,但是上面的对称加密算法通过配合特定的加密模式来达到这样的效果

1.3.2 AES 算法

高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法。

1.3.3 SM1 分组密码算法

SM1是由国家密码管理局编制的一种商用密码分组标准对称算法,分组长度和密钥长度均为128位,算法的安全保密强度及相关软硬件实现性能与AES算法相当,目前该算法尚未公开,仅以IP核的形式存在于芯片中,调用该算法时,需要通过加密芯片的接口进行调用。

1.3.4 SM4 分组密码算法

SM4是国家密码管理局发布的分组密码算法,于2012年3月正式公布。与DES和AES算法类似,SM4是一种分组密码算法。其分组长度为128bit,密钥长度也为128bit。SM4算法加/解密算法是对合运算,只是使用轮密钥相反,其中解密轮密钥是加密轮密钥的逆序。加密算法与密钥扩展算法均采用32轮非线性迭代结构(Feistel),以字(32位)为单位进行加密运算,每一次迭代运算均为一轮变换函数F。目前主要用于无线局域网产品。

1.3.5 对称加密算法的填充

1.3.5.1 pkcs5padding

pkcs5padding只能填充对称加密算法的分组长度为8字节(64位)的算法,所以所述的算法只有DES能够使用pkcs5padding,当然3DES的对称加密算法也能够支持,因为他的原理就是DES算法。

1.3.5.2 pkcs7padding

pkcs7padding的原理和pkcs5的原理是一模一样的,不相同的是,pkcs7padding支持分组长度小于等于32字节(256位),而pkcs5padding只支持8字节(64位)的分组长度,当然当分组长度为8字节(64位)的时候,pkcs5padding和pkcs7padding的填充结果是相同的。

1.3.6 加密模式

1.3.6.1 ECB模式(电子密码本模式)

优点:

  1. 具有操作简单,易于实现。
  2. 由于其分组的独立性,利于实现并行处理,并且能很好地防止误差传播。

缺点:

  1. 由于所有分组的加密方式一致,明文中的重复内容会在密文中有所体现,因此难以抵抗统计分析攻击。
  2. 一般只适用于小数据量的字符信息的安全性保护,例如密钥保护。

1.3.6.2 CBC模式(密文分组链接模式)

1.4 非对称加密

1.4.1 定义

与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

1.4.2 工作过程

1、乙方生成一对密钥(公钥和私钥)并将公钥向其它方公开。

2、得到该公钥的甲方使用该密钥对机密信息进行加密后再发送给乙方。

3、乙方再用自己保存的另一把专用密钥(私钥)对加密后的信息进行解密。乙方只能用其专用密钥(私钥)解密由对应的公钥加密后的信息。

在传输过程中,即使攻击者截获了传输的密文,并得到了乙的公钥,也无法破解密文,因为只有乙的私钥才能解密密文。

同样,如果乙要回复加密信息给甲,那么需要甲先公布甲的公钥给乙用于加密,甲自己保存甲的私钥用于解密。

1.4.3 优缺点

1.4.3.1 优点

(1)密钥分配简单。

(2)密钥的保存量少。

(3)可以满足互不相识的人之间进行私人谈话时的保密性要求。

(4)可以完成数字签名和数字鉴别。

1.4.3.2 缺点

(1)公钥密码是对大数进行操作,计算量特别浩大,速度远比不上私钥密码体制。

(2)公钥密码中要将相当一部分密码信息予以公布,势必对系统产生影响。

(3)在公钥密码中,若公钥文件被更改,则公钥被攻破。

1.4.4 RSA公钥密码算法

1.4.4.1 特点

密钥长度:用户应使用 1024 位密钥,证书认证机构应用 2048 位或以上;

非对称:用公钥加密时,私钥可以解密,反之亦然;核心运算是模幂运算,实现效率比较高效;

优势:经受住了多年深入的密码分析,虽然密码分析者既不能证明也不能否定RSA的安全性,但这恰恰说明该算法有一定的可信性;

缺陷:无法从理论上把握它的保密性能如何;产生密钥收到素数产生技术的限制;密钥分组产生高度较长,运算速度较低;

1.4.5 SM2公钥密码算法

SM2算法是国家密码据于2010年12月17日发布的国密标准椭圆曲线加密算法,是一种基于ECC算法的非对称加密算法,SM2椭圆曲线公钥密码算法是我国自主设计的公钥密码算法,包括SM2-1椭圆曲线数字签名算法,SM2-2椭圆曲线密钥交换协议,SM2-3椭圆曲线公钥加密算法,分别用于实现数字签名密钥协商和数据加密等功能。SM2算法与RSA算法不同的是,SM2算法是基于椭圆曲线上点群离散对数难题,对于一般椭圆曲线的离散对数问题,目前只存在指数级计算复杂度的求解方法。与大数分解问题及有限域上离散对数问题相比,椭圆曲线离散对数问题的求解难度要大得多。因此,在相同安全程度要求下,椭圆曲线密码较其他公钥密码所需的秘钥规模要小得多。相对于RSA算法,256位的SM2密码强度已经比2048位的RSA密码强度要高。其加密强度为256位,密钥长度短,安全程度高,可用于数字签名、密钥交换、公钥加密。

1.5 混合加密

1.5.1 定义

混合密码系统是将对称密码和公钥密码的优势相结合的方法。

混合密码系统中会先用快速的对称密码对消息进行加密,这样消息就被转换为密文,从而也保证了消息的机密性;再使用公钥密码对加密消息时使用的对称密码的密钥进行加密,由于对称密码的密钥一般比消息本身要短,因此公钥密码速度慢的问题就可以忽略了。

1.5.2 加密

  • 用对称密码加密消息
  • 通过伪随机数生成器生成对称密码加密中使用的会话密钥
  • 用公钥密码加密会话密码
  • 从混合密码系统外部赋予公钥密码加密时使用的密钥

注:会话密钥:是指为本次通信而生成的临时密钥,它一般是由伪随机数生成器产生。伪随机数生成器所产生的密钥同时也会被传递给右半部分,做为对称加密的密钥使用
会话密钥的双重性:a.对称密码的密钥,b.公钥密码明文

1.5.3 解密

附录

  1. 加密很重要的3个原因
  2. 什么叫对称加密?
  3. 国产密码算法
  4. 浅谈7种安全加密技术
  5. 趣聊密码学入门科普
  6. CBC模式和ECB模式解读
  7. 非对称加密
  8. 混合加密
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值