小编带你简单了解一下加密技术原理:AES加密标准

随着因特网的发展,信息传输及存储的安全问题成为影响因特网应用发展的重要因素。信息安全技术也就成为了人们研究因特网应用的新热点。 信息安全的研究包括密码理论与技术、安全协议与技术、安全体系结构理论、信息对抗理论与技术、网络安全与安全产品等领域,其中密码算法的理论与实现研究是信息安全研究的基础。

AES加密标准
1977年1月公布的数据加密标准DES(Data Encrption Standard)经过20年的实践应用后,现在已被认为是不可靠的。1997年1月美国国家标准和技术研究所(NIST)发布了高级加密标准(AES- FIPS)的研发计划,并于同年9月正式发布了征集候选算法公告,NIST希望确定一种保护敏感信息的公开、免费并且全球通用的算法作为AES,以代替DES。NIST对算法的基本要求是:算法必须是私钥体制的分组密码,支持128位分组长度和129、192、256bits密钥长度。

AES的研究现状
从1997年NIST发布了高级加密标准AES的研发计划到现在,对AES的研究大致可以分成三个阶段。第一阶段是从1997到2000年,研究的主要方向是提出候选算法并对各候选算法的性能进行分析。在此期间共提出了十五个候选算法,最终Rijndael算法胜出并用于AES中。Rijndael算法是一种可变分组长度和密钥长度的迭代型分组密码,它的分组长度和密钥长度均可独立地指定为128bits、192bits、256bits,它以其多方面的优良性能,成为AES的最佳选择。Rijndael算法能抵抗现在的所有己知密码×××,它的密钥建立时间极短且灵活性强,它极低的内存要求使其非常适合在存储器受限的环境中使用,并且表现出很好的性能。第二阶段是从2000年Rijndael算法胜出后到2001年NIST发布FIPS PUBS 197文件前。在此阶段对AES的研究转到了对Rijndael算法的研究和分析、设计AES的工作模式上。第三阶段是从FIPS PUBS 197发布到现在。在此阶段,研究的方向可以分成两个主要方向:一个是继续研究Rijndael算法本身的性能,特别是其安全性分析;另一个就是AES的实现和应用的研究。

算法设计主要研究算法设计遵循的原则和整体结构,为性能分析提供了一条途径。从算法的结构上分析算法性能是简单有效的,研究算法整体结构上的缺陷为提出新的密码分析方法提供新的手段。另一方面,研究AES的算法设计对研发新的分组密码提供了设计原则和参考。目前分组数据加密算法的整体结构有两大类:Feistel网络、非平衡Feistel网络和SP网络。

性能分析主要研究算法的各项特性,性能分析主要可以分为实现分析和密码分析两类。实现分析主要研究AES算法可实现的能力。当前实现性分析主要集中在AES的硬、软件实现的难易度和实现算法的效率等领域中。密码分析则是在理论上对现有加密算法进行研究的主要方向。密码分析主要研究AES算法抵抗现有己知密码×××的能力,即算法的安全性分析。当前主要×××手段有:强力×××、差分密码分析、 线性密码分析、Square×××和插值×××等。

但是随着密码分析技术的不断发展,积分分析、功耗分析和代数×××等新的密码分析手段陆续出现。它们己成为密码分析新的研究方向。

AES的实现
对于AES实现的研究主要集中在软件实现和硬件实现两个领域中。AES标准所选择的Rijndael算法遵循了分组密码设计的实现性原则,十分方便在软、硬件上实现。从AES实现的角度上看,当前研究的主要方向在各个算法步骤的优化实现。算法步骤针对不同的实现环境进行优化后,在应用中能获取更好的实际数据加密效果。其主要的研究成果集中在S-盒的生成算法优化、轮变换过程优化和密钥扩展优化三个方面。下面就软件实现和硬件实现在这三个方面的研究现状做一个简单介绍:

(1) 在微机上通过软件实现。这是利用AES算法保障计算机信息安全,特别是网络中信息传输与存储安全的主要途径。在软件实现中,轮变换过程优化则是软件实现算法优化的主要研究方向。密钥扩展优化也是研究的重点之一。AES所提供的密钥扩展方案保证了密钥扩展过程中的雪崩效应,也保证了密钥扩展方案的易实现性。此外,将其他的理论研究应用到分组数据加密算法中,也是实现研究的一个重要方向。

(2) 通过硬件芯片实现。AES算法对于存储空间的要求较小,算法过程相对比较简单,特别是经过有针对性的实现算法优化和精简后很易于利用硬件电路实现,因此现在许多相关的商业产品都是基于密码芯片的。

AES研究意义
目前,DES加密标准正在逐渐淡出加密标准的舞台,新加密标准AES正在获得越来越多的重视及应用。面对未来的发展,对AES产品的需求是非常巨大的。因此,对AES实现的探讨和研究具有很大的理论意义和实践意义。
现在市场上的,大多数加密软件,都应用到AES加密技术,其中大黄蜂视频加密软件,就其中的佼佼者。

原文地址:http://blog.51cto.com/13741502/2169833

时间: 2024-08-07 16:42:10

小编带你简单了解一下加密技术原理:AES加密标准的相关文章

小编带你了解Netty 系列七(那些开箱即用的 ChannelHandler).

一.前言Netty 为许多通用协议提供了编×××和处理器,几乎可以开箱即用, 这减少了你在那些相当繁琐的事务上本来会花费的时间与精力.另外,这篇文章中,就不涉及 Netty 对 WebSocket协议 的支持了,因为涉及的篇幅有点大,会在下一篇文章做一个具体的介绍. 回到顶部二.SSL 协议SSL 协议是安全协议,层叠在其他协议之上.为了支持 SSL/TLS, Java 提供了 javax.net.ssl 包,它的 SSLContext 和 SSLEngine 类使得实现解密和加密相当简单直接.

小编带您进入SpringBoot (1) idea下的环境搭建及demo

1.Spring Boot简介wiki上的介绍: Spring Boot是Spring的常规配置解决方案,用于创建可以"运行"的独立的,生产级的基于Spring的应用程序.[22]它预先配置了Spring对Spring平台和第三方库的最佳配置和使用的"见解视图",因此您可以尽量少开始.大多数Spring Boot应用程序只需要很少的Spring配置.特征: 创建独立的Spring应用程序直接嵌入Tomcat或Jetty(无需部署WAR文件)提供自以为是的"

小编带您Volatile的详解

volatile关键字修饰的共享变量主要有两个特点:1.保证了不同线程访问的内存可见性 2.禁止重排序在说内存可见性和有序性之前,我们有必要看一下Java的内存模型(注意和JVM内存模型的区分)为什么要有java内存模型?首先我们知道内存访问和CPU指令在执行速度上相差非常大,完全不是一个数量级,为了使得java在各个平台上运行的差距减少,哪些搞处理器的大佬就在CPU上加了各种高速缓存,来减少内存操作和CPU指令的执行速度差距.而Java在java层面又进行了一波抽象,java内存模型将内存分为

没有基础小编带你,用python画机器猫(有代码)

小编带你玩python 没有基础小编带你,用python画机器猫.只需要python3和小编的代码即可.python3小编送,代码文章有,现在就差个你了. 运行不了的找小编,小编包教会你. 重要的事情说三遍: python3小编送,代码文章有. python3小编送,代码文章有. python3小编送,代码文章有. 运行不了的找小编,加Q君羊 八八三四四四一零六. 君羊里的小伙伴和管理员的会这个运行这个源代码.需要学习视频的直接找管理员要,就说是小编让的,烦死她.欢迎小伙伴的加入. 原文地址:h

【安全加密技术】--对称加密

转载请注明出处:http://blog.csdn.net/sk719887916/article/details/46822663 上篇了解了<非对称加密>后 今天我来继续了解下加密技术中对称加密. 对称加密 对称加密是最传统的加密方式,比上非对称加密,缺少安全性,但是它依旧是用的比较多的加密方法. 对称加密采用单密钥加密方式,不论是加密还是解密都是用同一个密钥,即"一把钥匙开一把锁".对称加密的好处在于操作简单.管理方便.速度快.它的缺点在于密钥在 网络传输中容易被窃听,

Android 中 非对称(RSA)加密和对称(AES)加密

在非对称加密中使用的主要算法有:RSA.Elgamal.背包算法.Rabin.D-H.ECC(椭圆曲线加密算法)等. 优点: 非对称加密与对称加密相比,其安全性更好:对称加密的通信双方使用相同的秘钥,如果一方的秘钥遭泄露,那么整个通信就会被破解.而非对称加密使用一对秘钥,一个用来加密,一个用来解密,而且公钥是公开的,秘钥是自己保存的,不需要像对称加密那样在通信之前要先同步秘钥 比如: 做登陆功能的时候为了数据安全,需要对密码进行加密,这时候可以使用非对称加密, 首先通过后台提供的接口获取公钥,

【安全加密技术】非对称加密

转载请注明出处:http://blog.csdn.net/sk719887916/article/details/46810595 看过上篇网络互联基系列基础的朋友,对安全产生的原因以及策略度有所了解,当然作为开发者来讲,网络传输中的安全问题我们不必过多的关心,我们关心的是发送方加密和接收方对数据的解密过程,也就是网络安全中的一面边缘学科,密码学中的一种数据加密技术,目前业界的加密方式主要有对称加密和非堆成加密,那就先来了解下有非对称加密以及所关联的相关名字. 非对称加密 非对称加密算法是一种密

MD5加密,Base64加密/解密,AES加密/解密

1.从github上下载GTMBase64-master和AESCrypt-ObjC-master导入工程,如下图所示. 2.使用前的配置及注意事项: (1) 在build phases中的GTMBase64.m需要设置 -fno-objc-arc (2) 在#import "NSString+Base64.m”文件中导入   #import <Foundation/Foundation.h> (3)在#import "GTMBase64.m”文件中添加         

【加密解密】-AES加密解密实现

先看实现效果,测试代码如下: package org.iti.algorithm; public class AESDemo { public static void main(String[] args) { // 明文 String mingWen = "zhuwenfei"; // 密钥 String pwd = "123"; // 明文加密得到的密文 String miWen = AESUtils.encrypt(pwd, mingWen); // 输出密文