密码学

一、对称密钥加密:一个密钥-----DES、3DES、AES、RC4

        共享密钥加密或者机密密钥加密,使用发件人与收件人共同拥有的单个密钥。这种密钥既用于加密,又用于解密,叫做机密密钥(对称或会话密钥)。

        对称密钥加密有许多种算法,但所有这些算法都有一个共同的目的-以可还原的方式将明文(未加密的数据)转换为暗文。暗文使用加密密钥编码,对于没有解密密钥的任何人来说它都是没有意义的。由于对称密钥加密在加密和解密时使用相同的密钥,所以这种加密过程的安全性取决于是否有未经授权的人获得了对称密钥。这就是它为什么也叫做机密密钥加密的原因。希望使用对称密钥加密通信的双方,在交换加密数据之前必须先安全地交换密钥。

      衡量对称算法优劣的主要尺度是其密钥的长度。密钥越长,在找到解密数据所需的正确密钥之前必须测试的密钥数量就越多。需要测试的密钥越多,破解这种算法就越困难。

        优点:保密性比较高,加密速度快,计算开销小

        缺点:秘钥管理困难

        适用:加密


二、公钥加密:两个密钥-----RSA、ECC

        公钥加密使用两个密钥-一个公钥 和一个私钥,这两个密钥在数学上是相关的。为了与对称密钥加密相对照,公钥加密有时也叫做不对称密钥加密。在公钥加密中,公钥可在通信双方之间公开传递,或在公用储备库中发布,但相关的私钥是保密的。只有使用私钥才能解密用公钥加密的数据。使用私钥加密的数据只能用公钥解密。

        优点:便于密钥管理分发,便于数字签名

        缺点:计算开销大,处理速度慢

        适用:分布式系统数字加密,数字签名

三、数字信封

    在数字信封中,信息发送方采用对称密钥来加密信息内容,然后将此对称密钥用接收方的公开密钥来加密(这部分称数字信封)之后,将它和加密后的信息一起发送给接收方,接收方先用相应的私有密钥打开数字信封,得到对称密钥,然后使用对称密钥解开加密信息。这种技术的安全性相当高。数字信封主要包括数字信封打包和数字信封拆解,数字信封打包是使用对方的公钥将加密密钥进行加密的过程,只有对方的私钥才能将加密后的数据(通信密钥)还原;数字信封拆解是使用私钥将加密过的数据解密的过程。

四、摘要--------------MD5、SHA1、SHA256

            (1)无论用户输入什么长度的原始数据,经过计算后输出的密文都是固定长度。

            (2)被“摘要”的数据内容与原数据有密切联系,只要原数据稍有改变,输出的“摘要”便完全不同.

            (3)消息摘要算法是“不可逆”的

五、数字签名

   功能:  保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。

    数字签名技术与是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。{数字签名是个加密的过程,数字签名验证是个解密的过程.“发送报文时,发送方用一个哈希函数从报文文本中生成报文摘要,然后用自己的私人密钥对这个摘要进行加密,这个加密后的摘要将作为报文的数字签名和报文一起发送给接收方,接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要,接着再用发送方的公用密钥来对报文附加的数字签名进行解密,如果这两个摘要相同、那么接收方就能确认该数字签名是发送方的。}


六、加解密算法

            1、对称加解密

                 (1)DES:一次加密64位,加密后产生64位密文一种对称加密算法,DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位(每组的第8为作为奇偶校验位),产生最大 64 位的分组大小。其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行异或运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES 使用 16 轮循环,使用异或置换代换移位操作四种基本运算。

      (1-1)ECB:电子密码本模式,将加密的数据分成若干组,每组长度跟加密秘钥长度相同,然后每组都用相同的秘钥加密。

          特点:每次加密明文、密文等长度一样;数据块重复排序不需要检测;相同的明文块产生相同的密文块;一个错误仅仅会对一个密文产生影响。

     (1-2)CBC:加密块链模式;将分组后的第一块明文与初始化向量(V)进行异或进行加密,然后用后面的每一块文明与前面产生的密文块异或后进行加密。

        特点:每次加密密文长度一样;相同明文与初始向量产生相同密文;密文块依赖以前向量,所以不能重新排序;一个错误会引起所有错误,不利于并行加密。

     (2)3DES:一次加密64位,加密后产生64位他是DES的升级,拥有56*3=168位的有效秘钥,3个8位的校验位,对数据进行先加密再解密再加密的加密运算。

     (3)AES:可以使用128,192,256位秘钥,并且用128位加解密数据

     (4)RC4:


2、非对称加解密

      (1)RSA:是一种非对称密码算法,他需要一对密码,一个加密一个解密。它需要三个参数:ne1e2。其中,n是两个大质数pq的积,

                   n的二进制表示时所占用的位数,就是密钥长度;e1e2是一对相关的值,e1可以任意取,但要求e1(p-1)(q-1)没有公共约数;再选择e2,要求(e2*e1mod((p-1*(q-1)=1ne1,(ne2)就是密钥对。其中(ne1)为公钥,(ne2)为私钥。

        (1-1)PKCS#1:RSA加密标准

      (2)ECC:椭圆曲线加密系统;

七、摘要算法

    1、MD5:摘要后输出4*32=128位的散列值它是一种散列函数(信息摘要(HASH)算法),用以提供信息的安全性保护。MD5512位分组来处理输入的信息,且每一分组又被划分为1632位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。在MD5算法中,首先需要对信息进行填充,使其位长对512求余的结果等于448。因此,信息的位长(Bits Length)将被扩展至N*512+448N为一个非负整数,N可以是零。填充的方法如下,在信息的后面填充一个1和无数个0,直到满足上面的条件时才停止用0对信息的填充。然后,在这个结果后面附加一个以64位二进制表示的填充前信息长度。经过这两步的处理,信息的位长=N*512+448+64=(N+1*512,即长度恰好是512的整数倍。

2、SHA1:对于数据长度小于2^64位的产生160位的摘要完全哈希算法;先用MD5进行数据分组处理,

3、SHA256:处理按输入512位,产生256位的消息摘要

八、加密标准PKCS

    1、PKCS#1

        (1-1)RSA_PKCS1_PADDING模式

           输入必须比RSA钥模长(modulus) 短至少11个字节, 也就是 RSA_size(rsa)–11如果输入的明文过长,必须切割,然后填充;输出 和modulus一样长

       (1-2)RSA_PKCS1_OAEP_PADDING模式:RSA_size(rsa) – 41 



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值