高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。

不同于它的前任标准DES,Rijndael使用的是代换-置换网络,而非Feistel架构。AES在软件及硬件上都能快速地加解密,相对来说较易于实现,且只需要很少的存储器。作为一个新的加密标准,目前正被部署应用到更广大的范围。

之前项目老大问我:AES128和AES256主要区别和安全程度是多少?他们对于机器的消耗是怎样的?两者性能如何?实际开发如何选择?(下面是三位知乎同学回答的)

AES相比同类对称加密算法速度算是非常快,比如在有AES-NI的x86服务器至少能达到几百M/s的速度。安全性在可预见的未来是基本等同的,因为即使是128位也足够复杂无法被暴力破解。现在112位密码还在商业应用,而128位是112位的几万倍,所以在实务中用128位比较划算(稍节约资源)。

AES256比128大概需要多花40%的时间,用于多出的4轮round key生成以及对应的SPN操作。另外,产生256-bit的密钥可能也需要比128位密钥多些开销,不过这部分开销应该可以忽略。
安全程度自然是256比128安全,因为目前除了暴力破解,并没有十分有效的代数攻击方法。
针对具体的AES-256或AES-128的软/硬件实现有特定的攻击方式,不好一概而论。

 AES128和AES256主要区别是密钥长度不同(分别是128bits,256bits)、加密处理轮数不同(分别是10轮,14轮),后者强度高于前者。当前AES是较为安全的公认的对称加密算法。

现代密码学分为对称加密与非对称加密(公钥加密),代表算法分别有DES(现在发展为3DES)、AES与RSA等。非对称加密算法的资源消耗大于对称加密。一般是进行混合加密处理,例如使用RSA进行密钥分发、协商,使用AES进行业务数据的加解密


一些关于一些加密解密对称非对称算法相关图片:



关于用AES128还是AES256算法,个人认为AES128已经足够用,当然AES256可以作为一个营销手段使用

一些参考文献:

http://crypto.stackexchange.com/questions/5118/is-aes-256-weaker-than-192-and-128-bit-versions
http://serverfault.com/questions/51895/are-128-and-256bit-aes-encryption-considered-weak
http://stackoverflow.com/questions/18847580/aes128-vs-aes256-using-bruteforce
http://stackoverflow.com/questions/19061658/how-to-switch-from-aes-256-to-aes-128
https://github.com/sibiantony/ssleuth/issues/15
http://en.wikipedia.org/wiki/Advanced_Encryption_Standard
http://ubuntuforums.org/showthread.PHP?t=1694923
http://en.wikipedia.org/wiki/AES_implementations

在实际开发中,如果希望进行AES256位的加密解密,
需要事先从Java官网下载 local_policy.jarUS_export_policy.jar
http://www.Oracle.com/technetwork/java/embedded/embedded-se/downloads/jce-7-download-432124.html
替换%JAVA_HOME%/jre/lib/security的两个policy文件,
local_policy.jarUS_export_policy .jar
主要是为了突破AES算法只能支持到128位的限制。
如果未替换,可能会得到如下错误: *

Exception in thread "main" java.security.InvalidKeyException:Illegal key size or default parameters
at javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1011)
at javax.crypto.Cipher.implInit(Cipher.java:786)
at javax.crypto.Cipher.chooseProvider(Cipher.java:849)
at javax.crypto.Cipher.init(Cipher.java:1213)
at javax.crypto.Cipher.init(Cipher.java:1153)

AES128和AES256主要区别和安全程度是多少相关推荐

  1. Oracle aes128和aes256加解密

    –aes128加密 DECLAREl_src_data VARCHAR2(20) := 'Source Data';l_type pls_integer := dbms_crypto.encrypt_ ...

  2. AES128/AES192/AES256加密算法(C语言)

    //gcc 7.4.0 #include <stdio.h>#define Nb 4 //加解密数据块大小,固定为4//加密类型对应的密匙长度,单位bit typedef enum {AE ...

  3. AES-256 和 AES-128 区别

    参看链接:https://blog.csdn.net/newizan/article/details/45461347#commentBox 简介:        高级加密标准(英语:Advanced ...

  4. 国密加密算法与国际加密算法

    国密算法: 1.  SM1 SM1 算法是分组密码算法,分组长度为128位,密钥长度都为 128 比特,算法安全保密强度及相关软硬件实现性能与 AES 相当,算法不公开,仅以IP核的形式存在于芯片中. ...

  5. AES加密算法256位密钥与128位密钥的不同之处

    一.指代不同 1.256位密钥:AES的区块长度固定为256位,密钥长度则可以是256. 2.128位密钥:AES的区块长度固定为128位,密钥长度则可以是128. 二.安全性不同 1.256位密钥: ...

  6. 解决方案:加盐加密算法BCrypt

    解决方案:加盐加密算法BCrypt 关键词 对称加密(单钥),非对称加密(公私钥),数字签名 BCrypt加密(加盐) 一.对称加密算法 (1)定义: 采用单钥密码系统的加密方法,同一个密钥可以同时用 ...

  7. Android 数据加密算法总结

    安卓中,不管是内网还是外网,数据的传输首要考虑就是安全问题,尤其是用户信息,以及各种密码等敏感信息. 所以说,对数据的加密是很有必要的,尤其是当下物联网蓬勃发展的今天,数据安全尤为重要. 因此本人总结 ...

  8. Java开发中的加密、解密、签名、验签,密钥,证书,这篇就够了,赶紧收藏起来

    OpenSSL和keytool 先说一下两个重要的工具 OpenSSL:OpenSSL整个软件包大概可以分成三个主要的功能部分:SSL协议库libssl.应用程序命令工具以及密码算法库libcrypt ...

  9. 网络知识详解之:HTTPS通信原理剖析(对称、非对称加密、数字签名、数字证书)

    网络知识详解之:HTTPS通信原理剖析(对称.非对称加密.数字签名.数字证书) 计算机网络相关知识体系详解 网络知识详解之:TCP连接原理详解 网络知识详解之:HTTP协议基础 网络知识详解之:HTT ...

最新文章

  1. MP实战系列(二)之集成swagger
  2. 汇编cli(Clear Interrupt,禁止中断、关中断,对应的sti是开中断)
  3. CYQ.Data 轻量数据层之路 使用篇-辅助工具枚举生成器 视频 C (二十)
  4. java算法----0至9这十个数组成两个三位数和一个四位数
  5. python3爬虫学习笔记
  6. vue项目中assets与static的区别
  7. 3dsmax怎么添加uv坐标_YND科研绘图3Dsmax基础操作
  8. Ubuntu下root密码认证错误
  9. 24.TCP/IP 详解卷1 --- TCP 的未来和性能
  10. 学习NA,Dynamips实验环境(工大瑞普)下载地址
  11. android+流量防火墙,流量防火墙APP
  12. 使用MarkDown,编写html格式的项目帮助手册(含左侧目录树)
  13. 计算机专业保研面试备考:概率论
  14. 【树莓派】搭建OpenWrt软路由,并作为旁路由的配置与应用方法
  15. 修复鼠标单击变双击的问题
  16. 微信小程序 登录与退出登录
  17. 申请https证书相关说明
  18. php考勤系统微信小程序
  19. go语言输出汉字的数量
  20. 浅谈:智能化变电站在线监测系统

热门文章

  1. photoshop 快速画直线
  2. 继 QQ 被曝扫描浏览器历史记录之后,微信也被曝出会扫描所有 Chromium cookies
  3. 计算机应用综合知识模拟试卷及答案,计算机应用专业综合知识模拟试卷3
  4. 计算机考office2010,由于我们计算机考windows7和office2010,我可以不改原本的WIndows 10系统直...
  5. 数据结构:数组和广义表
  6. SQLyog安装过程
  7. 达内培训python视频教程
  8. 2016计算机应用试题答案,2017年计算机应用基础模拟试题「答案」
  9. vs2005+wince开发
  10. 玩游戏提示计算机性能过低,windows检测到您的计算机性能缓慢