zoukankan      html  css  js  c++  java
  • 各种加密算法比较

    摘自:https://www.cnblogs.com/sunxuchu/p/5483956.html

    各种加密算法比较
    算法选择:对称加密AES,非对称加密: ECC,消息摘要: MD5,数字签名:DSA

    对称加密算法(加解密密钥相同)
    名称
    密钥长度
    运算速度
    安全性
    资源消耗
    DES
    56位
    较快
    3DES
    112位或168位
    AES
    128、192、256位

    非对称算法(加密密钥和解密密钥不同)
    名称
    成熟度
    安全性(取决于密钥长度)
    运算速度
    资源消耗
    RSA
    DSA
    只能用于数字签名
    ECC
    低(计算量小,存储空间占用小,带宽要求低)

    散列算法比较
    名称
    安全性
    速度
    SHA-1
    MD5

    对称与非对称算法比较
    名称
    密钥管理
    安全性
    速度
    对称算法
    比较难,不适合互联网,一般用于内部系统
    快好几个数量级(软件加解密速度至少快100倍,每秒可以加解密数M比特数据),适合大数据量的加解密处理
    非对称算法
    密钥容易管理
    慢,适合小数据量加解密或数据签名

    算法选择(从性能和安全性综合)
    对称加密: AES(128位),
    非对称加密: ECC(160位)或RSA(1024),
    消息摘要: MD5
    数字签名:DSA
    轻量级:TEA、RC系列(RC4),Blowfish (不常换密钥)
    速度排名(个人估测,未验证):IDEA <DES <GASTI28<GOST<AES<RC4<TEA<Blowfish  

    简单的加密设计: 用密钥对原文做  异或,置换,代换,移位

    名称
    数据大小(MB)
    时间(s)
    平均速度MB/S
    评价
    DES
    256
    10.5
    22.5
    3DES
    256
    12
    12
    AES(256-bit)
    256
    5
    51.2
    Blowfish
    256
    3.7
    64


    表5-3 单钥密码算法性能比较表
    名称
    实现方式
    运算速度
    安  全  性
    改进措施
    应用场合
    DES
    40-56bit
    密钥
    一般
    完全依赖密钥,易受穷举搜索法攻击
    双重、三重DES,AES
      适用于硬件实现
    IDEA
    128bit密钥
    8轮迭代
    较慢
    军事级,可抗差值分析和相关分析
    加长字长为32bit、密钥为256bit,采用232 模加、232+1模乘
      适用于ASIC设计
    GOST
    256bit密钥
    32轮迭代
    较快
    军事级
    加大迭代轮数
    S盒可随机秘
    密选择,便于软件实现
    Blowfish
    256-448bit
    密钥、16轮迭代
    最快
      军事级、可通过改变密钥长度调整安全性
     
    适合固定密钥场合,不适合常换密钥和智能卡
    RC4
    密钥长度可变
    快DESl0倍
    对差分攻击和线性攻击具有免疫能力,高度非线性
    密钥长度放宽到64bit
    算法简单,易于编程实现
    RC5
    密钥长度和迭代轮数均可变
    速度可根据
    三个参数的
    值进行选择
    六轮以上时即可抗线性攻击、通过调整字长、密钥长度和迭代轮数可以在安全性和速度上取得折中
    引入数据相倚转
      适用于不同字长的微处理器
    CASTl28
    密钥长度可变、16轮迭代
    较快
    可抵抗线性和差分攻击
    增加密钥长度、形成CAST256
    适用于PC机和
    UNIX工作站
     



    常见加密算法
    1、DES(Data Encryption Standard):对称算法,数据加密标准,速度较快,适用于加密大量数据的场合; 
    2、3DES(Triple DES):是基于DES的对称算法,对一块数据用三个不同的密钥进行三次加密,强度更高;
    3、RC2和RC4:对称算法,用变长密钥对大量数据进行加密,比 DES 快;
    4、IDEA(International Data Encryption Algorithm)国际数据加密算法,使用 128 位密钥提供非常强的安全性;
    5、RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的,非对称算法; 
    6、DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准),严格来说不算加密算法;
    7、AES(Advanced Encryption Standard):高级加密标准,对称算法,是下一代的加密算法标准,速度快,安全级别高,在21世纪AES 标准的一个实现是 Rijndael 算法;
    8、BLOWFISH,它使用变长的密钥,长度可达448位,运行速度很快;
    9、MD5:严格来说不算加密算法,只能说是摘要算法;
    10、PKCS:The Public-Key Cryptography Standards (PKCS)是由美国RSA数据安全公司及其合作伙伴制定的一组公钥密码学标准,其中包括证书申请、证书更新、证书作废表发布、扩展证书内容以及数字签名、数字信封的格式等方面的一系列相关协议。
    11、SSF33,SSF28,SCB2(SM1):国家密码局的隐蔽不公开的商用算法,在国内民用和商用的,除这些都不容许使用外,其他的都可以使用;
    12、ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学。
    13、TEA(Tiny Encryption Algorithm)简单高效的加密算法,加密解密速度快,实现简单。但安全性不如DES,QQ一直用tea加密

    为系统而生,为框架而死,为debug奋斗一辈子; 吃符号的亏,上大小写的当,最后死在需求上。
  • 相关阅读:
    如何优化代码和RAM大小
    Ubuntu14.04用apt在线/离线安装CDH5.1.2[Apache Hadoop 2.3.0]-old
    PHP和Golang使用Thrift1和Thrift2访问Hbase0.96.2(ubuntu12.04)
    Flume+Kafka+Strom基于伪分布式环境的结合使用
    Golang、Php、Python、Java基于Thrift0.9.1实现跨语言调用
    mac10.9+php5.5.15+brew0.9.5的安装
    kafka2.9.2的伪分布式集群安装和demo(java api)测试
    Flume1.5.0的安装、部署、简单应用(含伪分布式、与hadoop2.2.0、hbase0.96的案例)
    ubuntu12.04+proftpd1.3.4a的系统用户+虚拟用户权限应用实践
    ubuntu12.04+kafka2.9.2+zookeeper3.4.5的伪分布式集群安装和demo(java api)测试
  • 原文地址:https://www.cnblogs.com/LiuYanYGZ/p/13347924.html
Copyright © 2011-2022 走看看