zoukankan      html  css  js  c++  java
  • 网络安全系统之一 加密算法

    一、数据加密

      数据加密的基本思想是通过变换信息的表现形式来伪装需要保护的敏感信息,非授权者不能了解被加密的内容。

      

      下面是关于数据加密的一些概念:

      明文:就是需要隐藏的信息;密文:就是明文通过密码算法后产生的结果;密码算法:就是加密时使用的变换规则。

      注:信息安全的核心是密码技术,使用密码技术的目的是研究数据保密,一套加密系统基本工作方式称为密码算法,密码算法的基本要素是密码算法和密钥,其中密码算法分为加密算法和解密算法密钥分为加密密钥和解密密钥, 密码算法根据使用的加密密钥和解密密钥的不同,可以分为对称加密算法和非对称加密算法

    二、对称加密算法

      当加密密钥和解密密钥相同,称为对称加密算法

      对称加密算法的特点:加密的效率高,适合大量数据加密运算,但是开放性差,需要可靠的密钥传递渠道 ,要求发送方和收接方使用相同的密钥对明文进行加密和解密运算。

      常见的对称加密算法有DES、3DES、RC4、RC5、IDEA、AES等。

      DES:将明文分为64bit为一组,密钥为64bit,分组进行加密生成64bit的密文。(实际密钥64bit中,有效密钥是56bit和8bit的奇偶校验,密钥64bit分成8个字节,每个字节为8bit,一个8bit位密钥中有7bit位为有效密钥,1bit为奇偶校验位,总共是56bit有效密钥和8bit的奇偶校验位。)

      3DES:是DES的扩展,执行了三次DES,同样是把明文分成64bit为一组,分别进行三次DES运算,分加是 加密->解密->加密 运算,当第一次、第三次加密使用相同一密码进行运算,则密钥长度扩展到128bit(112bit有效),如果三次加密使用的密码均不相同,则密钥长度扩展到192bit(168bit有效)。

      RC5:是参数可变的分组密码算法,三个可变的分组是 分组大小、密钥长度和加密轮数。

      RC4:常用流密码,密钥长度可变,用于SSL协议。

      IDEA:将分组为64bit的明文加密成64bit的密文,使用的密钥长度是128bit。

      AES:明文分为128bit一组,具有可变长的密钥(128bit、192bit、256bit)。

    三、非对称加密算法

      当加密密钥和解密密钥不相同,称为非对称加密算法,也被称为公钥密码体制

      非对称加密算法的特点:加密效率低,不适合大量数据加密运算,但是开放性好,适用于开放的使用环境,密钥的管理相对简单;在非对称加密算法中,加密密钥公开称为公钥,解密密钥隐称为私钥,私钥带有个人特性,可以解决数据的签名验证问题,私钥用于解密和签名,公钥用于加密和认证

      常见的对非对称加密算法有RAS和ECC

      3.1 加密、解密的表示方法:

      3.1.1 明文通过加密算法变成密文的方法,其中k1表示密钥。

            Y = EK1(X)

        明文 X 通过加密算法 E ,使用密钥 K1 运算生成密文 Y

      3.1.2 密文通过解密算法变成明文的方法,其中K2表示密钥。

            X = Dk2(Y)

        密文 Y 通加解密算法 D,使用密钥 K2 运算生成明文 X。

      3.2 RAS加密算法:

      RAS(Rivest Shamir Adleman)是典型的非对称加密算法,适合进行数据签名和密钥交换。

      

      RAS 密钥生成过程:

        生成条件1:取两个质数 p 和 q ,并且 p 不能等于 q。(质数:是只有1和本身两个因数)

        生成条件2: n = p q , z = (p - 1)( q - 1 )

        生成条件3 : 选择 e ,并且 1 < e < z ,并且 e 和 z 没有公约数,e 和 z 互为质数。

        生成条件4 : 计算 d ,d = ed - 1 可以被 z 整除,(ed = 1 mod z 或 1 = ed mod z)。

        则:公钥数对为 (n ,e) ,私钥数对为 (n , d )。

      RAS例题:按RAS算法,若两个奇数 p = 5 ,q = 3 ,公钥 e = 7 ,则 私钥 d 为 ()

        (1) n = p q = 5 * 3 = 15

        (2) z = (p - 1)(q - 1) = 4 * 2 = 8

        (3) 公钥 e = 7

        (4) ed = 1 mod z 是变换成为 1 = ed mod z = 7d mod 8 (7 乘以 d 与 8 进行 mod 运算 等于 1 )

         可以算出 d = 7 , 7 * 7 = 49 mod 8 = 1 (49 mod 8 可以被 6 整除 余数为 1) 。

  • 相关阅读:
    单链表
    队列
    产品经理们,遇到Bug请别十万火急
    2008年7月3日
    JS URL 参数
    NET 产品版权保护方案 (.NET源码加密保护)
    常用正则表达式
    网线接法
    C#创建多文档的界面
    TGE学习笔记04 billboard
  • 原文地址:https://www.cnblogs.com/PBDragon/p/12674865.html
Copyright © 2011-2022 走看看