Puzzle加密算法

随着互联网的发展,网络多媒体的应用正在变得越来越受欢迎。为保证利润或机密,必须对视频进行加密,常规的加密算法只能针对文本数据,所以很需要一个加密视频数据的特殊算法。那么我们今天就给大家介绍一个加密视频数据的特殊算法——Puzzle加密算法,算法随时都能够整合到已存在的视频系统,而不需要理会它们的具体实现。

Puzzle加密算法的原理

Puzzle加密算法的灵感得益于儿童游戏Puzzle。在Puzzle游戏里,会把一个完整的图片分解成很多无序的小片,以使小孩不能把完整的图片辨认出来。

当他们进行这个游戏的时候,必须花费很多的时间来把碎片重新组合成原始的图片。一些聪明的小孩根据不同片断的正面,甚至在没有整个原始图片的情况下就能够重构。虽然我们不能直接地把Puzzle游戏应用到加密一副图片,但是,如果我们稍微修改一下游戏规则,小孩将不能重构原始的图片。修改如下:

孩子们只能看到图片的正面,重构时没有任何关于整幅图片的线索。这样,如果n是块的数量,那么就会由n!种可能的重构。n不一定是一个很大的数量,假设一幅图片被分解成64块,那么可能的假设将会达到64!=1.27×1089。这么大的假设重构数量,孩子们不可能会重构出原始的图片。Puzzle加密算法由此而来。

Puzzle加密算法加密步骤

根据修改的Puzzle游戏规则,Puzzle视频加密算法包括了以下两个步骤:①分离每帧压缩视频数据;②搅乱分离视频数据的次序。步骤①相应于Puzzle游戏中把图片翻至正面。步骤②即是把视频数据分解成很多块,这些块被随机地洗牌,类似于搅乱块的正面。

1、分离每帧压缩视频数据

分离压缩视频数据是用一个小型加密算法来实现的。这种算法的基本思想是只有视频流的一小部分会用流密码来加密。另外一部分则不加以处理。过程如下:

给定一个压缩视频数据V(V1V2…VL)的L字节长的帧(不包含帧的头部)。头部之后开始的1(1<L)字节(V1V2…VL)是独立的,它会用由加密键k如SEAL或者是AES-CTR的流密钥来产生1个字节键流S(S1S2…SL)。视频数据的开始的1个字节会被作为关键流,独立于的第二个1字节。然后第二个1字节也会以相同的方式独立于第三个字节。该过程会一直重复下去直到帧的尾部。输出是L字节临时加密文本T(T1T2…TL)。

2、搅乱分离视频数据的次序

(1)分块

对长度为L的加密文本T,把它分解成具有相同长度b的n块,是一个典型的因式分解的问题,如L=n×b。假设两个变量(n,n)是两个常量,那么这个问题是很容易解决的。但不能通过这种方法来解决问题。如果先固定了b的值,那么可能在某些帧里b的值会很大,而某些帧的会很小,因为每个帧的长度L都是不同的。在另外一方面,n的值很大的时候,在交换块的时候将会引起一个很大的计算量。如果n的值太小,加密方案会很容易被破解。

为了解决这个问题,可以对n和n施加一些限制。块长度n应该为b=2m,其中m是一个整数。而n的值只能在mb和2mb之间变化,mb是一个预定义的常量。它表明了临时加密文本T应该至少被分成mb块。使用这些限制,m的值将会只是由下列的公式来唯一地确定:mb≤L/2m<2mb

块长度由b=2n来确定。真正的块数量m能够由以下的公式来计算:m=pn 如果pn为偶数,r=o _ m=pn-2 如果pn为偶数,r≠0 ,m=pn-1_如果pn为奇数

当pn是L/b的商,而r是L/b的余数时,上述公式将会使n的值总是偶数。这个操作对于下一步的搅乱块序是必需的。上述公式还表明如果pn是一个偶数或者r不等于零,那么在加密文本T尾部之前的一个或者两个块就可能在搅乱块次序过程中被分离出。

(2)乱序

块乱序的基本思想是加密文本T的n个块被分成两个相等的部分:顶部和底部。每个部分都包括了n/2个块。两个部分都可以根据排列P=P1P2..PL/2相互修改。该排列是从随机的顺序中继承过来的,它用来防止攻击者猜测出块的原始位置。为了使该算法更加有效,可以重用了在分离步骤中为了产生排列而生成的键流S=S1S2…SL。每个视频帧的键流S都是不同的,所以不同帧的排列也是截然不同的。当排列已经是可用的时候,可以通过把ih个块与临时加密文本T的Pith个块交换,从临时加密文本T=T1T2…TL里产生出加密文本C=C1C2…CL。一个很小的例子被用来解释搅乱块次序的过程。假定临时加密文本T被分解成256个块B1B2B256.从键流S继承过来的排列,产生的结果显示在下图中。

3、编码和解码

编码和解码过程上述Puzzle加密算法的部分编码过程总结如下。

加密文本能够通过相反的解码操作,在接收端重构原始的压缩视频序列。

Puzzle加密算法实现了很快的加密速度,并保持在一个适当的安全水平上,这样就可以适应现在大部分的多媒体应用需求,特别是高分辨率视频流。

小知识之加密算法:

数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。 该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。

MD5加密算法的应用

MD5加密算法由于其具有较好的安全性,加之商业上也可以免费使用该加密算法,因此MD5加密算法被广泛使用。MD5加密算法主要运用在密码管理、电子签名以及垃圾邮件的筛选等方面,今天我们就这几方面的应用给大家详细的介绍一下。

MD5加密算法应用一、用于密码管理

例如,当我们需要保存某些密码信息以用于身份确认时,如果直接将密码信息以明码方式保存在数据库中,不使用任何保密措施,系统管理员就很容易能得到原来的密码信息,这些信息一旦泄露,密码也很容易被破译。为了增加安全性,有必要对数据库中需要给保密的文件加密,这样,即使有人得到了整个数据库,如果没有解密算法,也不能得到原来的密码信息。

MD5加密算法可以很好地解决这个问题,因为它可以将任意长度的输入串经过计算得到固定长度的输出,而且只有在明文相同的情况下,才能等到相同的密文,并且这个算法是不可逆的,即便得到了加密以后的密文,也不可能通过解密算法反算出明文。这样就可以把用户的密码以MD5值(或类似的其它算法)的方式保存起来,用户注册的时候,系统把用户输入的密码计算成mMD5值,然后再去和系统中保存的MD5值进行比较,如果密文相同,就可以认定密码是正确的,否则密码错误。

通过这样的步骤,系统在并不知道用户密码明码的情况下就可以确定用户登录系统的合法性。这样不但可以避免用户的密码被具有系统管理员权限的用户知道,而且还在一定程度上增加了密码被破解的难度。

MD5加密算法应用二、用于电子签名

MD5加密算法还可以作为一种电子签名的方法来使用,使用MD5加密算法就可以为任何文件(不管其大小、格式、数量)产生一个独一无二的“数字指纹”,借助这个“数字指纹”,通过检查文件前后MD5值是否发生了改变,就可以知道源文件是否被改动。

我们在下载软件的时候经常会发现,软件的下载页面上除了会提供软件的下载地址以外,还会给出一串长长的字符串。这串字符串其实就是该软件的MD5值,它的作用就在于下载该软件后,对下载得到的文件用专门的软件(如windows md5 check等)做一次MD5校验,以确保我们获得的文件与该站点提供的文件为同一文件。

利用MD5加密算法来进行文件校验的方案被大量应用到软件下载站、论坛数据库、系统文件安全等方面。

MD5加密算法应用三、用于垃圾邮件的筛选

在电子邮件使用越来越普遍的情况下,可以利用MD5加密算法在邮件接收服务器上进行垃圾邮件的筛选,以减少此类邮件的干扰,具体思路如下:

1、建立一个邮件MD5值资料库,分别储存邮件的MD5值、允许出现的次数(假定为3)和出现次数(初值为零)。

2、对每一封收到的邮件,将它的正文部分进行MD5计算,得到MD5值,将这个值在资料库中进行搜索。

3、如未发现相同的MD5值,说明此邮件是第一次收到,将此MD5值存入资料库,并将出现次数置为1,转到第五步。

4、如发现相同的MD5值,说明收到过同样内容的邮件,将出现次数加1,并与允许出现次数相比较,如小于允许出现次数,就转到第五步。否则中止接收该邮件。结束。

5、接收该邮件。

6、结束。

小知识之MD5加密算法:

MD5就是采用单向加密的加密算法,对于MD5而言,有两个特性是很重要的,第一是任意两段明文数据,加密以后的密文不能是相同的;第二是任意一段明文数据,经过加密以后,其结果必须永远是不变的。前者的意思是不可能有任意两段明文加密以后得到相同的密文,后者的意思是如果我们加密特定的数据,得到的密文一定是相同的。

几种常用加密算法比较

由于计算机软件的非法复制,通信的泄密、数据安全受到威胁,解密及盗版问题日益严重,甚至引发国际争端,所以在信息安全技术中,加密技术占有不可替代的位置,因此对信息加密技术和加密手段的研究与开发,受到各国计算机界的重视,发展日新月异。现在我们就几种常用的加密算法给大家比较一下。

几种常用加密算法比较

DES加密算法

DES加密算法是一种分组密码,以64位为分组对数据加密,它的密钥长度是56位,加密解密用同一算法。DES加密算法是对密钥进行保密,而公开算法,包括加密和解密算法。这样,只有掌握了和发送方相同密钥的人才能解读由DES加密算法加密的密文数据。因此,破译DES加密算法实际上就是搜索密钥的编码。对于56位长度的密钥来说,如果用穷举法来进行搜索的话,其运算次数为256。

随着计算机系统能力的不断发展,DES的安全性比它刚出现时会弱得多,然而从非关键性质的实际出发,仍可以认为它是足够的。不过,DES现在仅用于旧系统的鉴定,而更多地选择新的加密标准。

AES加密算法

AES加密算法是密码学中的高级加密标准,该加密算法采用对称分组密码体制,密钥长度的最少支持为128、192、256,分组长度128位,算法应易于各种硬件和软件实现。这种加密算法是美国联邦政府采用的区块加密标准,这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。

AES加密算法被设计为支持128/192/256位(/32=nb)数据块大小(即分组长度);支持128/192/256位(/32=nk)密码长度,,在10进制里,对应34×1038、62×1057、1.1×1077个密钥。

RSA加密算法

RSA加密算法是目前最有影响力的公钥加密算法,并且被普遍认为是目前最优秀的公钥方案之一。RSA是第一个能同时用于加密和数宇签名的算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA加密算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。

Base64加密算法

Base64加密算法是网络上最常见的用于传输8bit字节代码的编码方式之一,Base64编码可用于在HTTP环境下传递较长的标识信息。例如,在JAVAPERSISTENCE系统HIBEMATE中,采用了Base64来将一个较长的唯一标识符编码为一个字符串,用作HTTP表单和HTTPGETURL中的参数。在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base64编码不仅比较简短,同时也具有不可读性,即所编码的数据不会被人用肉眼所直接看到。

MD5加密算法

MD5为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。对MD5加密算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成—个128位散列值。

MD5被广泛用于各种软件的密码认证和钥匙识别上。MD5用的是哈希函数,它的典型应用是对一段信息产生信息摘要,以防止被篡改。MD5的典型应用是对一段Message产生fingerprin指纹,以防止被“篡改”。如果再有—个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用。MD5还广泛用于操作系统的登陆认证上,如UNIX、各类BSD系统登录密码、数字签名等诸多方。

SHA1加密算法

SHA1是和MD5一样流行的消息摘要算法。SHA加密算法模仿MD4加密算法。SHA1设计为和数字签名算法(DSA)一起使用。

SHA1主要适用于数字签名标准里面定义的数字签名算法。对于长度小于2“64位的消息,SHA1会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发生变化,那么这时候就会产生不同的消息摘要。SHA1不可以从消息摘要中复原信息,而两个不同的消息不会产生同样的消息摘要。这样,SHA1就可以验证数据的完整性,所以说SHA1是为了保证文件完整性的技术。

SHA1加密算法可以采用不超过264位的数据输入,并产生一个160位的摘要。输入被划分为512位的块,并单独处理。160位缓冲器用来保存散列函数的中间和最后结果。缓冲器可以由5个32位寄存器(A、B、C、D和E)来表示。SHA1是一种比MD5的安全性强的算法,理论上,凡是采取“消息摘要”方式的数字验证算法都是有“碰撞”的——也就是两个不同的东西算出的消息摘要相同,互通作弊图就是如此。但是安全性高的算法要找到指定数据的“碰撞”很困难,而利用公式来计算“碰撞”就更困难一目前为止通用安全算法中仅有MD5被破解。

加密算法是密码技术的核心,以上这些加密算法是常用的加密算法,而这些算法有些已经遭到破译,有些安全度不高,有些强度不明,有些待进—步分析,有些需要深入研究,而神秘的加密算法世界,又会有新的成员加入,期待更安全的算法诞生。

小知识之加密算法:

数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。 该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。

刘氏加密算法

刘氏高强度公开加密算法是我国学者刘尊全教授在计算机密码学领域的一项新的研究成果和发明,已正式获得美国专利。该项发明试图克服当前使用的计算机密码体制(如DES、RSA等)的缺点,在国际上首次解决了数据加密算法中的一类NP问题,可获得极高的加密强度,从而第一次构造出在当今世界不可破译的计算机密码体制!为各类用户提供了一种大众化的信息安全工具,并具有稳定的使用周期和强大的生命力、“一个真正可以作为标准的公开加密算法密码体制”。那么,我今天就给大家简单的介绍一下刘氏加密算法。

刘氏加密算法设计原理

刘氏加密算法采用可变长度的密钥、非规则函数作用域、一次性非线性整型函数完成加解密变换,不采用迭代和循环。其设计原理体现在:

随机映象

通过密钥选取和构造加解密函数的在明文、密文序列中的作用域,实现随机分割线性序列的逻辑地址编码。

随机格式

在密钥控制下随机构造映象内的明文、密文各元素之间的相关性,选取随机函数的基本模式。

随机函数

先在密钥控制下随机构造一个或多个整型多项式作为简单函数Fi(i=1,…..n),其变元由随机格式内的明文、密文元素决定,系数由密钥决定;再由这些简单函数Fi构造成复合函数F。F可以有多种不同形式,如:

F=F1+F2+F3….+Fn

F=F1*F2+F3….+Fn

…..

F=F1*Fn+F3*Fn-1 +….

其中,密钥决定的系数个数多于明文元素与密文元素之和,以便导致攻击者求解具有不可解性的多变元方程。

刘氏加密算法的数学描述及实施步骤:

1、选择块的大小N把明文序列顺序地分割成若干个由N个字母元素组成的块,每个明文块对应一个N维明文向量X,可加密成一个N维的密文向量:

其中块内各明文元素的逻辑地址排列顺序由密钥决定。

2、选定的一组映射参数A、Zt,生成第t块的映射。

加密函数:Y1=AXt+Zt

解密函数:Xt=A-1(Yt-Zt)

这里A是一个可逆N×N映射矩阵,A-1是A的逆:

Zt是随块的不同而变化的一个随机向量,t代表第t个块或向量,

其中Bi是常数,R(t,Ci)是t的伪随机函数,Ci是R的初始值:

3、用户之间秘密地共用一个密钥K,结构为

K=[N,A,B,C]

4、另一种不需对A求逆的快速算法。在密钥的控制下把明文向量随机划分成基础明文向量元素的子集{X5}与非基础明文向量元素的子集{Xr},Zt也划分成对应的两部分{Zs)与{Zr}。

{Xs}∈{Xi},{Zs}∈{Zi},S=S1,S2….Sn

{Xi}={Xs}u{Xr},{Zi}={Zs}u{Zr},R=R1,R2…Rn

1<N’≤N

当I=S时,Zs与明文向量无关,每个密文元素Ys只与一个明文元素Xs相关(这种设计将很容易受到映射表攻击),密文映射定义为Ys=As5Xs _Zs(t)=BsR(t,Cs)

当i=r时,基础明文向量子集{Xs}参与求Yr的线性运算,Xr求Zr的非线性运算,密文映射定义为Yr=As5Xs __Zr(t)=BrG(Xr,t)

G(Xr,t)=XrH(t)

H(t)是块t的非线性函数。解密时,先求解{Xs),再运用{Xs}求解Xr。

小知识之NP:

网络处理器(Network Processor,简称NP),根据国际网络处理器会议(Network Processors Conference)的定义:网络处理器是一种可编程器件,它特定的应用于通信领域的各种任务,比如包处理、协议分析、路由查找、声音/数据的汇聚、防火墙、QoS等。

基于矩阵变换的非对称图像加密算法原理

对于数据量极为庞大的多媒体数据而言,难以实现快速的加密和解密,因此必须结合多媒体信息加密技术。考虑到图像信息的一些特征,近年来发展了几种图像加密系统,如:基于矩阵变换/像素置换;基于伪随机序列;基于SCAN语言;基于“密钥图像”;基于四叉树及SCAN语言;基于矢量量化压缩编码及其商业密码等。这些算法要么加密的速度慢,要么安全性比较低,根据现代密码机制的特点,综合以上几种加密系统的优点,下面就给大家一种基于矩阵变换的非对称图像加密算法的原理。

基于矩阵变换的非对称图像加密算法原理

为了讨论的便利性,本文中要加密的图像为灰度图像,命名为J。具体的加密过程如下:

a、产生一对密钥,私钥用来加密,公钥用来解密;

b、将待加密图像分成互不相交的P×P块 并做DCT变换;
c、对每个P×P块中的前K×K个系数使用私钥加密;

d、合并P×P块并做反DCT变换;

e、对反DCT后的系数做界定处理,使之处于0~1之间。

因为要对每个P×P块中前K×K个系数分别进行加密,所以会产生一组空间维度为P×K的标准正交基(K<K)。定义 为{Ui=1,2,3……k}。同样地,利用高斯白噪声产生一个P×P的可逆矩阵A.{Ui}组成矩阵U的列向量,具体表示为:

假设待加密图像J对应的DCT变换系数为Xm*n,对某一个Xp*p块的前K×K个系数组成的矩阵X0,使用AU作为私钥加密,使用A-tU作为公钥解密。具体过程如下:

加密过程

a、对图像J按P×P分块,每块分别做DCT变换,对应的DCT变换系数定义为XM一DCT(I,[P P]).
b、每个P×P块都取其前K×K个系数分别加密,假设某块X0的前K×K个系数组成的矩阵为X,则其使用私钥AV加密后的信息为:X2一AUX0,X2∈R。
c、使用X2替换的前P×K个系数,若K很接近P,则依据DCT变换的特性,X0剩余的(P—K)×(P—K)个系数均接近于0,所以直接替换掉不影响图像的解密效果,X0(I,J)一X。(1≤P,I≤K)。

d、合并各个P×P块,做反DCT变换并命名为X2mxn,X=IDCT(Xmxn)。

e、为了防止超出,界定X0M所有的值均在0~1之间。

f、保存X2mxn为灰度图像,即为加密后的图像文件。

小知识之矩阵变换:

等变换后的矩阵是否可逆,来判断原矩阵是否可逆。当然,这只是矩阵初等变换的一个小小的应用,它在线性代数中的更重要的应用主要体现在以下几点:求矩阵的秩,求向量组的极大无关组、秩,求解线性方程组,求多项式的最大公因式等。

3G核心加密算法之KASUMI加密算法

随着通信技术的高速发展,3G移动通信系统将成为人们生活中重要的通信方式。为了对3G系统提供安全性,3G的国际组织3GPP在3G的安全结构中定义了两个标准化的核心算法f8和f9。f8算法是加密算法,f9是完整性算法,而这两个算法都是基于KASUMI加密算法的。那么我们今天就来给大家简单介绍一下KASUMI加密算法 。

KASUMI加密算法简介:

KASUMI加密算法是一个Feistel结构的分组加密算法,密钥长度为128比特,对一个64比特的输入分组进行八轮的迭代运算,产生长度为64比特的输出。轮函数包括一个输入输出为32比特的非线性混合函数FO和一个输入输出为32比特的线性混合函数FL。函数FO由一个输入输出为16比特的非线性混合函数FI进行3轮重复运算而构成。而函数Fl是由使用非线性的S-盒S7和S9构成的4轮结构。

KASUMI加密算法的应用和安全性

KASUMI加密算法是一种分组密码,目前它主要应用于第三代移动通信的安全算法,f8和f9之中。f8算法是用来对UE(移动用户设备)和RNC(无线网络控制器)之间的无线链路上的用户数据和信令数据加密,以保证其安全性。UE和RNC中部有f8算法。f8是一个密钥流发生器,它通过KASUNlI算法生成64比特为一组的密钥流,将明文数据流与密钥流进行异或运算,得到密文流,解密时只要将同样的密钥流与密文流进行异或运算,即可得到明文数据流。

f9算法原理与此类似,通过KASUMI算法生成完整性消息认证码(MAC -I),对UE和RNC之间的无线链路上的信令数据进行完整性保护和信令数据来源进行认证。对信令数据( MESSACE)使用f9算法算出完整性消息认证码(MAC -I),将其附加在MESSACE的后面,一起在无线链路上发送到接收端。接收端也将收到的MESSACE用f9算法进行跟发送端一样的计算,算出消息认证码(XMAC -I),将XMAC -I和收到发端的MAC—I进行比较,验证数据的完整性。

KASUMI加密算法是基于分组密码的设计,目前对于分组密码的设计而言,由于出现了差分和线性密码分析,分组密码的设计原则必须要能对抗差分和线性密码攻击,对抗这些攻击具有可证明的安全性。KASUMJ加密算法也是基于同样的原则而设计的。它的可证明安全性是来源于算法中的被证明具有可证明安全性的较小的构成部件,Feistel结构的KASUMI加密算法正是通过重复迭代调用较小的函数FO和兀来保证其安全性。

在3GPP组织的测评中,KASUMI加密算法可以对抗目前的大部分密码攻击方法:差分密码分析,截断差分密码分析,高阶差分密码分析,线性密码分析;而且对于使用仪器的攻击:定时攻击,简单能量攻击,差分能量攻击也具有很好的安全性,尤其是在3G的特殊环境中。

小知识之加密算法:数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。 该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。

加密算法的发展历史

所谓的文件加密实际上就是通过信息的置换,然后通过不同的加密算法来使原来普通的文件变成别人无法读懂的加密文件。所以关于文件加密的历史,其实也是加密算法的历史。那么我们紧接着就给大家简单介绍一下加密算法的发展历史。

加密算法的发展历史

加密算法的发展历史

随着加密技术的不断发展,加密算法也在不断的进化中。

公元前400年,古希腊人发明了置换密码。

1881年世界上的第一个电话保密专利出现。

在第二次世界大战期间,德国军方启用“恩尼格玛”密码机,密码学在战争中起着非常重要的作用。

1997年,美国国家标准局公布实施了“美国数据加密标准(DES)”。

……

而今加密算法主要分为对称IDEA加密 算法、非对称RSA加密算法和不可逆AES加密算法。

对称IDEA 加密算法

IDEA 加密算法是加密算法的基础,最效率的算法。

IDEA加密算法属于对称加密算法,对称加密算法中,数据加密和解密采用的都是同一个密钥,因而其安全性依赖于所持有密钥的安全性。

IDEA对称加密算法的主要优点:加密和解密速度快,加密效率高,且加密算法公开。

IDEA对称加密算法主要缺点:实现密钥的秘密分发困难,在大量用户的情况下密钥管理复杂,而且无法完成身份认证等功能,不便于应用在网络开放的环境中。 由于加密算法是公开的,所以被破解的风险比较高。

非对称RSA加密算法

RSA加密算法是非对称加密算法,非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要,但加密和解密花费时间长、速度慢,它不适合于对文件加密而只适用于对少量数据进行加密。

RSA加密算法优点:解决了密钥管理问题,通过特有的密钥发放体制,使得当用户数大幅度增加时,密钥也不会向外扩散;由于密钥已事先分配,不需要在通信过程中传输密钥,安全性大大提高;具有很高的加密强度。

RSA加密算法缺点:与对称加密体制相比,非对称加密体制的加密、解密的速度较慢、被破解风险较小。

不可逆AES加密算法

在不可逆的AES加密算法中MD5加密算法是代表之一。MD5加密算法属于不可逆加密算法,不可逆加密算法的特征是加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的,只有重新输入明文,并再次经过同样不可逆的加密算法处理,得到相同的加密密文并被系统重新识别后,才能真正解密。

而在加密领域这三种加密算法互相结合又各自发展,形成了三方取长补短,又相互竞争的局面。随着在全球范围内角逐了数年的激烈竞争宣告结束,AES加密算法的问世将取代DES、RSA数据加密标准,成为21世纪保护国家敏感信息的高级算法。

与DES、RSA加密算法相比,AES加密算法的优点为加、解密的速度更快、加密强度最高、且不占用硬件资源。

只有掌握了文件加密技术,了解加密算法的真谛,时代、国家、企业、个人才能在信息安全之路上越走越顺利!

小知识之加密算法:

数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。 该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。

简析无线网络加密算法之CCMP加密算法

无线网络产品因其灵活、便捷、无线等特点,正在被越来越多的人所使用。但是在我们享受无线网络带给我们诸多好处的同时,安全问题也给我们带来了巨大困惑。为局域网/城域网标准委员会先后给无线网络提出了3个标准的加密算法,即WEP、TKIP、CCMP加密算法,用来保护我们的无线网络。由于CCMP加密算法采用了比TKIP更高级的加密标准CCMP加密算法,CCMP被认为是目前无线网络比较安全和可靠的加密算法。在这里我将对这个加密算法给大家简单介绍一下。

在我们分析CCMP的加密解密过程之前,我们先说明一下CCMP核心加密算法AES,因为MIC和文件加密解密都需要使用该算法。

一、AES加密算法 

AES加密算法其目的是开发一种新的能保证政府信息安全的编码算法。密钥长度可为128、192、256bit。它的输出更具有随机性,对该密文破解需要几乎整个密码本及相关的不知道密钥的密文,加解密的密码本分开。安全性很高。

AES加密算法的具体算法说明可以从NIST的FIPS _PUB 197 _nAd—vanced _encry ption standard文档得到的。

∥加密
Cipher(byte in(4*Nbj, byte out[4*Nb], word w[Nb*(Nr+lyyfm)]为原文out[]为密文
Begin// _ _ _ _ _ w[]是由密钥扩展的密钥串
byte state[4,Nb]
state=m
AddRoundKey(srate, w[0, Nb-1D//与第一行密钥串异或
for round=lstepl to Nr?
SubBytes(state)//state的S盒置换
ShiftRows(state)//接行移位
MixColumns(state)//按列变换
AddRoundKey(state, w[round*Nb, (round+ lyNb -1])//与第round行密钥串异或
end for
SubBytes(state)

ShiIIRows(state)
AddRoundKey(slaLe, w[NPNb, (Nr+l)*Nb-ll)
out= sLate
end
∥解密
InvCipher(bytc m[4*Nb], byte out[4*Nb], wordw[Nb*
(Nr+I)D
begin
byte swe[4,Nb]
state= in
AddRoundKey(state, w[Nr*Nb, (Nr+l)*Nb-lD
for round – Nr-1 step -l downt01
InvStuftRows(staLe)//按行移位的逆变换
InvSubBytes(state)//S盒置换的逆变换
AddRourtd Key(state,w[round*Nb, (round+I)*Nb-1])
InvMixColumns(sWe),,按列变换的逆变换
end for
InvShitIRows(staLe)
InvSubBytes(state)
AddRoundKey(state, w[0, Nb-1])
out= state
end

目前广泛使用的是rijndnal编写的AES加密算法,这个可以很轻松的从网上得到。

二、CCMP加密算法

了解了AES的加密和解密过程,接下来我们就开始说明CCMP的加密解密以及MIC的生成过程。CCMP的加密:首先我们从mpdu的MAC _Header提取结构AAD以及Nonce。如图1所示。AAD和Nonce提取办法如下:

然后我们计算出MIC,把它加入到数据域后面。生成8字节的CCMP Header与MAC Header组成加密帧的验证部分,这部分不需要加密。然后对数据域和MIC进行CTR( counter)模式的AES加密,量后加上FCS校验就生成了加密帧。

1、 MIC计算

CCMP的MIC计算是MPDUlevel的,与TKIP的MSDUlevel区射,提供更好的完叠性校验。首先把(Nonce,AAD,P(数据域原文))从左刭右组成一个序列,然后再补上一些D字节,使之成为16字节倍数的序列。然后把它分隔成n个16字节块,用BO,B1,…,Bn表示。接着使用CBC-MAC计算出MIC使用的T(MAC值),按照下列的算法计算:

x:= AES(k1 b0)
—k.|- AES(x,x? Bi) fori=l.,.,,n
T:= first-M-bytes( X~.)
其中AES(K,B)为密钥K的AES加密。T取X序列的低M个字节。M为MIC的长度。

特别的.B0,B1一……Bn序列中.B0是由Nonee组成的MIC IV.Bl.B2是由MAC Header也即AAD组成的MIC HEADERI,2;B3从开始就是数据域原文分翻成的16字节块。

Adata位当AAD长度大千0时置l,否列为0。后面3bit为NUC长度域,值为(M-2),2。最后为信息的长度域,值为1-1.2为信息长度的范围。一般M=8.L=2,列Flag为Ox59.量终的MIC值还需要将个值与后续CTR加密的so值【前M个字节)异或。表示如下:

MIC=T? _flrsL-M-bytes(SO).

2、CTR加密

取得7 MiC之后,就可以对数据域和MIC进行CTR加密.首先把数据城分钠成16个字节块,量后囊余的字节不用朴零.用Ai表示.MIC部分是单独CTR计算的。

Si= AES(K,CTR_PRELOAD(i)); //i从O刭m Ei=Si? Ai;UEi为加密好的16字节块

特别的对于数据域量后一个16字节块,可能不满16个字节,只有x(O<x<16)个字节,郝异或时,只要取Si中的前x个字节。

对予MIC部分
E(MIC)= S0:? MLC
CTR_PRELOAD(i)的结构如下:
Counter从i=0开始不断自增1
1个字节的Flag域:

只有最后3个bir的信息长度城。当L-2时,Flag值

为Ox01.

3、CCMP的解密

从加密的MPDU中得到CCMP Header与MACHeader.然后计算出AAD.Nonce.算出每个CTR PRELOAD.从而通过ctrR解密得到数据域原文以及rvnc.使用前一节MIC的计算方法算出当前的MIC.与解密后的rvnc比较,进行校验.在这里我们给出CTR解密的过程。

CTRN解密

对加密的数据城进行16字节分割,用EI表示。加密的rvnc.FCS前的8个字节,用E(MIC)表示,单独取出进行CTR解密,数据域的原文16宇节块,用Ai表示。
则解密过程如下:

si= AES(K,CTI乙PRELOAD(i》;仇从0到m
Ai=Si7 Ei=Si? Si? Ai;

特别的对于加密的数据域最后一个16字节块.可能不满16个字节,只有y(O<y<16)个字节,鄢异或时,只要取Si中的前y个字节。

对于MJC部分
MIC=S0?E(MIC)

通过上面的表述,你基本可以知道CCMP如何操作的。

CCMP的计算还是比较复杂,一方面可能增加了成本,一方面却大大加强了无线网络的安全.目前,它一般会和身份验证服务RADIUS以及密钢管理一起提供一个安全、可靠、可以信赖的无线环境。

小知识之CCMP :

CCMP(Counter CBC-MAC Protocol) 计数器模式密码块链消息完整码协议。

数字电视条件接收系统如何选择加密算法

前面我们讲到数字电视条件接收系统中的关键性技术要有加密技术的支持,而加密技术关系到整个数字电视网络的安全性,如何能选择到一个安全系数比较高的加密算法呢?那我们首先就要看一下这两种加密算法有哪些不同之处。

数字电视条件接收系统如何选择加密算法

数字电视条件接收系统常用加密算法的比较

一、加解密时采用的密钥的差异

从前文对数字电视接收系统的对称加密算法和非对称加密算法的描述中可以看出,对称密钥加密和解密使用同一个密钥,或者能从加密密钥很容易推出解密密钥,而非对称加密算法加解密使用的不同密钥,知道其中一个很难推出另一个密钥。

二、 加密算法上的区别

首先,对称加密算法采用的分组加密技术,即将待处理的明文按照固定长度分组,并对分组利用密钥进行数次的迭代编码,最终用户得到密文。解密的处理同样,在固定长度密钥控制下,以一个分组为单位进行数次迭代解码,得到明文。而非对称加密算法采用一种特殊的数字函数,单项陷门函数(one way trapdoor function),即从一个方向求值是容易的,而其逆向计算却很困难,或者说是计算不可行的。加密时对明文利用公钥进行加密交换,得到密文。解密时对密文利用私钥进行解密变换,得到明文。

其次,对称密钥算法具有加密处理简单、加解密速度快、密钥较短、发展历史悠久等特点。非对称加密算法具有加解密速度慢、密钥尺寸大、发展历程较短等特点。

三、密钥管理安全性的区别

对称加密算法由于其算法是公开的,其保密性取决于对密钥的保密。由于加解双方采用的密钥是相同的,因此密钥的分发、更换困难。而非对称加密算法由于密钥已事先分配,无需再通信过程中传输密钥,安全性大大提高,也解决了密钥管理问题。

四、安全性

对称加密算法由于其算法时公开的,其安全性依赖于分组的长度和密钥的长度,常用的攻击方法包括:穷举密钥搜索法,字典攻击、查表攻击,差分密码分析,线性密码分析,其中最有效的当属差分密码分析,它通过分析明文对和密文对的差值得应先过来恢复某些密钥比特。而非对称加密算法安全性建立在所采用的单向函数的难解性上,如椭圆曲线密码算法,许多密码专家认为它是指数级的难度。

数字电视条件接收系统加密算法的选择

对一个条件接收系统而言,采用不同的密钥管理体系和算法对其“安全强度”会有很大的影响。从目前的技术应用的角度看,毫无疑问,那些采用了非对称密钥管理体系中RSA算法的条件接收系统比采用对称密钥管理体系中3DES算法或DES算法的条件接收系统有着更高的安全性。国内外近十年来在数字电视广播以及互联网上条件接收技术的应用也证明了这一论点。总之,作为条件接收系统最重要的也是最根本的技术指标之一就是系统的安全性,而安全性最根本的因素就来源于密钥管理体系和算法。

3DES算法与RSA算法的安全性对比

算法名称

3DES

RSA

算法类型

对称算法

非对称算法

密钥长度

112位~168位

1024位

攻破时间(MIPS年)

108

1011

安全强度

随着数字电视行业的发展,广电对条件接收系统的安全性要求越来越高,加密算法和密钥体系的运用就成了广电最为关注的问题。因此对我们来说,无论从安全性角度,还是从双向网改造后新业务拓展所需要的技术支持,只有采用以RSA非对称算法为典型的公钥加密体系才能更好的适应和满足数字电视的发展需要,而以3DES对称算法为典型的私钥加密体系将会逐渐被数字电视领域所淘汰。

小知识之数字电视条件接收系统:

数字电视条件接收系统是指用来控制订户(Subscriber)对广播服务或者节目进行接收的系统,即订户只能收看经过授权的广播服务或者节目。它是实现个性化服务的关键。基本目的是在电视台电视系统中对用户进行授权控制及授权管理,从而实现数据广播系统的有偿服务。

数字电视条件接收系统常用加密算法

随着数字电视行业的发展,以加密技术和解密技术为核心的条件接收系统逐步成为数字电视加密控制的核心技术保证,为数字电视的运营提供了必要的技术手段,其中,加密算法起到了至关重要的作用。下面我们就来讲一下数字电视条件接收系统的常用加密算法。

数字电视条件接收系统常用加密算法介绍

如果以密钥为标准,可将数字电视条件接收系统加密算法分为两类:对称加密算法和非对称加密算法。

一、数字电视条件接收系统之对称加密算法介绍

对称加密系统中,加密密钥和解密密钥是一样的,或实质上是等同的,这种情况下,密钥就经过安全的密钥信道由发方传给收方。它的特点是无论加密还是解密都使用同一个密钥,因此,此加密体制的安全性就是密钥的安全,如果密钥泄露,则此密码系统便被攻破。最有影响的对称密钥系统是1977年美国国家标准局颁布的DES算法,而3DES(Triple DES)是基于DES,对一块数据用三个不同的密钥进行三次加密,强度比DES算法更高一些。

3DES是DES向AES过渡的加密算法,是DES的一个更安全的变形,它以DES为基本模块,通过组合分组方法设计出分组加密算法,其具体实现如下:

设EK()和DK()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明文,C代表密文,这样,

3DES加密过程为:C=EK3(DK2(EK1(P)))

3DES解密过程为:P=DK1(EK2(DK3(C)))

K1、K2、K3决定了算法的安全性,若三个密钥互不相同,本质上就相当于用一个长为168位的密钥进行加密。多年来,它在对付强力攻击时是比较安全的。若数据对安全性不那么高,K1可以等于K3。在这种情况下,密钥的有效长度为112位。

二、数字电视条件接收系统之非对称加密算法介绍

所谓非对称算法就是指加密和解密用的不是同一个密钥,非对称算法的密钥分为两部分,通常称为“公钥”和“私钥”。公钥和私钥存在数学上的关系,使得用公钥加密的数据只能用对应的私钥解密,用私钥加密的数据只能用对应的公钥解密。

当前最著名、应用最广泛的非对称加密算法是RSA算法,RSA算法是第一个既能用于数据加密也能用于数字签名的算法,因此它为公用网络上信息的加密和鉴别提供了一种基本的方法。它通常是先生成一对RSA密钥,其中之一是保密密钥(私钥),由用户保存;另一个为公开密钥(公钥),可对外开放,甚至可在网络服务器中注册,人们用公钥加密文件发送给个人,个人就可以用私钥解密接收。从1978年提出到现在已近30年,经历了各种攻击的考验,被证明是目前最安全的非对称加密算法。

RSA算法是一个基于数论的非对称(公钥)密码体制,是一种分组密码体制,其名称来自于三个发明者的姓名首字母。它的安全性是基于大整数素因子分解的困难性,而大整数因子分解问题是数学上的著名难题,至今没有有效的方法予以解决,因此可以确保RSA算法的安全性。

小知识之条件接收系统:

条件接收系统(CAS)是开展付费电视的核心技术,了解它的运行机制,掌握好它的使用和维护对付费电视业务的成功开展非常关键。

加密算法在PKI系统中的应用

PKI的数据加密实质是利用公钥加密算法交换机密密钥的优势,并利用对称加密算法速度快效率高、适合大量数据安全加密的特点,产生的一种既快速又灵活的加密解决方案。通信双方通过运用密钥对(e,d)为对称加密算法中的机密密钥进行加解密操作,实现明文数据的安全传送。

加密算法在PKI系统中的应用

密钥管理

PKI一般采用双证书体系,公钥算法支持RSA和ECC两种公钥算法,对称密码算法支持国密办指定的加密算法。密钥对分为加密密钥对和签名密钥对。签名密钥对在用户端的PKI实体鉴别密码器中生成,密钥不离开PKI实体鉴别密码器;加密密钥对在密钥管理中心KM中生成和托管,并由KM经CA中心发给用户,并自动导入PKI实体鉴别密码器中。由于加密密钥对非常重要,而且必须通过网络在KM密钥管理中心、CA中心和用户终端间传送,所以,必须采取有效的措施确保加密密钥对的安全传送(包括机密性、完整性和不可否认性)。密钥管理包括密钥的生成和托管、密钥的恢复、密钥的查询和密钥的销毁等过程。

证书管理

PKI系统中的数字证书采用标准的X.509v4格式,证书管理主要包括证书申请、证书签发、证书更新和证书注销等过程。

当然为了防止发送方可能的恶意欺骗行为,如发送方发送数据后宣布加密密钥被盗,不承认自己曾经的行为,可以结合时间戳技术即CA中心在接收到申请的数字摘要生成证书时,与日期和时间绑定在一起生成标明时间的时间戳,可用于比较重要的安全网络事务和应用场合。

小知识之PKI:

PKI(Public Key Infrastructure ) 即”公钥基础设施”,是一种遵循既定标准的密钥管理平台,它能够为所有网络应用提供加密和数字签名等密码服务及所必需的密钥和证书管理体系,简单来说,PKI就是利用公钥理论和技术建立的提供安全服务的基础设施。PKI技术是信息安全技术的核心,也是电子商务的关键和基础技术。

混沌加密算法在实际应用中存在的问题

混沌加密算法因其具有非周期、连续宽频带、类噪声和长期不可预测等特点,所以被广泛应用于保密通信等领域。任何事物都是不完善性,难么混沌加密算法在实际应用中存在的有哪些问题呢?

混沌加密算法在实际应用中存在的问题

问题一、短周期响应

现有的混沌序列的研究对于所生成序列的周期性伪随机性、复杂性、互相关性等的估计是建立在统计分析上,或是通过实验测试给出的,这难以保证其每个实现序列的周期足够大,复杂性足够高,因而不能使人放心地采用它来加密。例如,在自治状态下,输入信号为零时,加密器表现为有限周期响应。不同初始状态对应于不同周期,其周期长度可能很短,这一缺点在某种程度上降低了混沌加密系统的保密性。

问题二、有限精度效应

混沌序列的生成总是要用有限精度器件来实现的,从而混沌序列生成器可归结为有限自动机来描述。这样,混沌生成器能否超越已有的用有限自动机和布尔逻辑理论所给出的大量研究成果,是一个很值得研究的课题。大多数在有限精度下实现的混沌系统,其性质会与其理论结果大相径庭,从而使许多基于混沌系统的应用无法实现。甚至有学者认为,有限精度效应是目前混沌理论走向应用中出现的一大难题。

问题三、实现精度与保密性的矛盾

对于分段线性的混沌映射加密系统,相邻的两个状态可能落在同一条直线段上。在数字实现精度很高的情况下,解密者就可利用这个特点,在知道少量的明文–密文对照的情况下轻易地恢复出具有足够精度的密钥。也就是说,它对于选择明文攻击抵抗力很差,从而在这一意义上不具有保密性。

但随着人们对混沌加密技术的不断研究和开发,难题终将会一一化解,混沌加密技术也将会为人们的生活带来宝贵的实用价值。

小知识之混沌基本原理:

混沌是一种复杂的非线性、非平衡的动力学过程,其特点为: (1)混沌系统的行为是许多有序行为的集合,而每个有序分量在正常条件下,都不起主导作用;(2)混沌看起来似为随机,但都是确定的;(3)混沌系统对初始条件极为敏感,对于两个相同的混沌系统,若使其处于稍异的初态就会迅速变成完全不同的状态。

数据库加密算法及其实现

目前,数据加密常用的算法为对称算法,以DES、IDEA为代表,加密、解密采用相同的密钥,其优点是加密、解密速度快,缺点是密钥分发困难。实际应用中往往采用非对称算法协助分发对称算法密钥的策略,其中以RSA加密算法最为常用。RSA加密算法是PKI的基础核心,由于PKI的市场优势.选择RSA算法,系统部署会相对容易。

通过以上对加密算法的简单介绍,利用DES和RSA加密算法可以很好地解决大多数数据库系统的加密要求。

DES加密算法及其实现

DES使用相同的算法对数据进行加密和解密,所用的加密密钥和解密密铡也足相同的。而且DES加密算法适合于大量数据的加密,所以数据库数数据加密一般选择DES加密算法。

该算法的输入是64 hit的明文,在56 bit的密钏控制下,通过初始换位fP变成TO= IP (T).再对TO经过16层的加密变换,最后通过逆初始变换得到64 bit的密文。密文的每一位都是明文的每一位和密钥的每一位联合确定的。DES的加密过程可以分为加密处理、加密变换以及子密钥的生成和解密等部分。

RSA加密算法及其实现

RSA加密算法既能用于数据加密,也能用于数字签名.RSA的理论依据为寻找两个大素数比较简单,而将它们的乘积分解开则非常困难。

在RSA加密算法中,包含两个密钥:加密密钥(e,n)和解密密钥 (d,n),在加密的时候,先把明文转换成(0,n一1)范围内的整数M。当明文较长时,先分隔成适当的组,然后再进行变换。

RSA加密算法的优点是密钥空间大;缺点是加密速度慢。如果RSA和DES结合使用,则正好弥补RSA的缺点。即DES用于明文加密;RSA用于密钥的加密。由于DES加密速度快,适合加密大量的数据,主要应用在计算机网络通信、电子资金传送系统、用户识别和用户文件的保护;而RSA可解决DES密钥的分配和管理问题。

小知识之数据库加密:

对数据库中数据加密是为增强普通关系数据库管理系统的安全性,提供一个安全适用的数据库加密平台,对数据库存储的内容实施有效保护。它通过数据库存储加密等安全方法实现了数据库数据存储保密和完整性要求,使得数据库以密文方式存储并在密态方式下工作,确保了数据安全。

常见的图像置乱加密算法

在网络上传输的数据中有些图片数据是需要加密的,如军用卫星照片、设计图纸、患者病例等。这些数据一旦被非法获取,则会泄露个人隐私,严重的甚至会影响国家安全,这些重要的图像数据在互联网上传播必须要进行有效的加密。

图像置乱技术就是一种针对图像信息的加密技术,这一技术可以将原始图像变得杂乱无章,使变换后的图像无法反映原始图像的信息,这样即使图像信息被非法获取,获取者也无法从中直接获取有用信息。那么接下来我们就来看看常见的图像置乱加密算法

常见的图像置乱加密算法

基于Arnol变换的图像置乱加密算法

Arnold变换是俄国数学家VladimirI.Arnold提出的一种变换,一幅N×N的数字图像的二维Arnold变换定义为:

其中x,y∈{0,1,2,…,N-1}表示变换前像素的位置,x′,y′表示变换之后的像素位置,mod为模运算。数字图像可以看为一个二维矩阵,经过Arnold变换之后图像的像素位置会重新排列,这样图像会显得杂乱无章,从而实现了对图像的置乱加密效果。

Fibonacci变换加密算法

Fibonacci数列是1202年意大利数学家Fibonacci提出的,Fibonacci变换是Fibonacci数列在数字图像处理中的一种应用,Fibonacci变换定义为:

其中参数的定于与Arnold变换中的相同,只是变换矩阵不同。

Hilbert曲线变换加密算法

Hibert曲线是德国数学家Hilbert给出的一种充满空间(Space2filling)、非自交(Self2avoiding)、自相似(Self2similiar)的简单(Simple)曲线。按照曲线的走向遍历图像中所有像素点,以遍历顺序将图像重新排列,就可以生成一幅新的图像,生成的新图像是“杂乱”的。

仿射变换加密算法

放射变换的一般形式为:

需要选取适当的参数a,b,c,d,e,f当满足Δ=a bc d=±1时,以整数提升对式进行分解,使图像坐标(x,y)变换为(x′,y′),可以进行多次迭代从而达到图像置乱的目的。

幻方变换加密算法

以自然数1,2,…,n3n为元素的n阶矩阵

其中c为常数,称A为n阶幻方。幻方变换根据幻方矩阵A中的自然数序号跟图像中的像素点按照行列一一对应,通过将A中元素移动到序号为mod(n3n)+1的位置实现对图像的置乱变换。

小知识之数字图像:

数字图像是目前最流行的多媒体形式之一,在政治、经济、国防、教育等方面均有广泛应用。对于某些特殊领域,如军事、商业和医疗,数字图像还有较高的保密要求。为了实现数字图像保密,实际操作中一般先将二维图像转换成一维数据,再采用传统加密算法进行加密。

JAVA环境下如何实现IDEA加密算法

因为JAVA是基于面向对象的编程语言,所以在JAVA环境下实现IDEA加密具有很多的优势,再加上JAVA语言的安全性和网络处理能力较强,被大量应用于Internet的开发中。那么我们今天就来看看JAVA环境下如何实现IDEA加密算法

一、IDEA加密算法

IDEA 加密算法是作为迭代的分组密码实现的,使用128 位的密钥和8 循环。这比DES 提供了更多的 安全性,但是在选择用于 IDEA 的密钥时,应该排除那些称为“弱密钥”的密钥。

DES 加密算法只有四个弱密钥和12 个次弱密钥,而 IDEA加密算法 中的弱密钥数相当可观,有2 的51次方个。但是,如果密钥的总数非常大,达到2的128 次方个,那么仍有2的77 次方个密钥可供选择。IDEA加密算法被认为是极为安全的。使用128 位的密钥,蛮力攻击中需要进行的测试次数与 DES 相比会明显增大,甚至允许对弱密钥测试。而且,它本身也显示了它尤其能抵抗专业形式的分析性攻击。

、JAVA环境下如何实现IDEA加密算法

1、加密过程的实现 

void idea_enc( int data11[], /*待加密的64位数据首地址*/ int key1[]){

int i ;

int tmp,x;

int zz[]=new int[6];

for ( i = 0 ; i < 48 ; i += 6) { /*进行8轮循环*/

for(int j=0,box=i;j<6;j++,box++){

zz[j]=key1[box];

}

x = handle_data(data11,zz);

tmp = data11[1]; /*交换中间两个*/

data11[1] = data11[2];

data11[2] = tmp;

}

tmp = data11[1]; /*最后一轮不交换*/

data11[1] = data11[2];

data11[2] = tmp;

data11[0] = MUL(data11[0],key1[48]);

data11[1] =(char)((data11[1] + key1[49])%0x10000);

data11[2] =(char)((data11[2] + key1[50])%0x10000);

data11[3] = MUL(data11[3],key1[51]);

}

2、解密过程的实现 

void key_decryExp(int outkey[])/*解密密钥的变逆处理*/

{ int tmpkey[] = new int[52] ;

int i;

for ( i = 0 ; i < 52 ; i++) {

tmpkey[i] = outkey[ wz_spkey[i] ] ;/*换位*/

}

for ( i = 0 ; i < 52 ; i++) {

outkey[i] = tmpkey[i];

}

for ( i = 0 ; i < 18 ; i++) {

outkey[wz_spaddrever[i]] = (char)(65536-outkey[wz_spaddrever[i]]) ;/*替换成加法逆*/

}

for ( i = 0 ; i < 18 ; i++){

outkey[wz_spmulrevr[i]] =(char)(mulInv(outkey[wz_spmulrevr[i]] ));/*替换成乘法逆*/

}

}

在实际应用中,我们可以使用Java开发工具包(JDK)中内置的对Socket通信的支持,通过JCE中的Java流和链表,加密基于Socket的网络通信,我们知道,加密、解密是数据传输中保证数据完整性的常用方法,Java语言因其平台无关性,在Internet上的应用非常之广泛,使用Java实现基于IDEA的文件加密传输可以在不同的平台上实现并具有实现简洁、安全性强等优点。

小知识之Java:

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

Md5加密算法原理

MD5加密算法为现在应用最广泛的哈希算法之一,该算法广泛应用于互联网网站的用户文件加密,能够将用户密码加密为128位的长整数。数据库并不明文存储用户密码,而是在用户登录时将输入密码字符串进行MD5加密,与数据库中所存储的MD5值匹配,从而降低密码数据库被盗取后用户损失的风险。

Md5加密算法原理

MD5加密算法以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。

在MD5加密算法中,首先需要对信息进行填充,使其字节长度对512求余数的结果等于448。因此,信息的字节长度(Bits Length)将被扩展至N*512+448,即N*64+56个字节(Bytes),N为一个正整数。

填充的方法如下,在信息的后面填充一个1和无数个0,直到满足上面的条件时才停止用0对信息的填充。然后再在这个结果后面附加一个以64位二进制表示的填充前的信息长度。经过这两步的处理,现在的信息字节长度=N*512+448+64=(N+1)*512,即长度恰好是512的整数倍数。这样做的原因是为满足后面处理中对信息长度的要求。

MD5中有四个32位被称作链接变量(Chaining Variable)的整数参数,他们分别为:

A=0x01234567

B=0x89abcdef

C=0xfedcba98

D=0x76543210

当设置好这四个链接变量后,就开始进入算法的四轮循环运算,循环的次数是信息中512位信息分组的数目。

将上面四个链接变量复制到另外四个变量中:A到a,B到b,C到c,D到d。 主循环有四轮(MD4只有三轮),每轮循环都很相似。第一轮进行16次操作。每次操作对a、b、c和d中的其中三个作一次非线性函数运算,然后将所得结果加上第四个变量(文本中的一个子分组和一个常数)。

再将所得结果向右环移一个不定的数,并加上a、b、c或d中之一。最后用该结果取代a、b、c或d中之一。 以一下是每次操作中用到的四个非线性函数(每轮一个)。

F(X,Y,Z)=(X∧Y)∨(( X)∧Z)
G(X,Y,Z)=(X∧Z)∨(Y∧( Z))
H(X,Y,Z)=X?Y?Z
I(X,Y,Z)=Y?(X∨( Z))

其中,?是异或,∧是与,∨是或, 是反符号。

如果X、Y和Z的对应位是独立和均匀的,那么结果的每一位也应是独立和均匀的。F是一个逐位运算的函数。即,如果X,那么Y,否则Z。函数H是逐位奇偶操作符。所有这些完成之后,将A,B,C,D分别加上a,b,c,d。然后用下一分组数据继续运行算法,最后的输出是A,B,C和D的级联。最后得到的A,B,C,D就是输出结果,A是低位,D为高位,DCBA组成128位输出结果。

Md5加密算法的应用

MD5加密算法由于其具有较好的安全性,加之商业也可以免费使用该算法,因此该加密算法被广泛使用,md5加密算法主要运用在数字签名、文件完整性验证以及口令加密等方面。

简析祖冲之加密算法

祖冲之加密算法的名字源于我国古代数学家祖冲之,它包括加密算法128-EEA3和完整性保护算法128-EIA3,主要用于移动通信系统空中传输信道的信息加密和身份认证,以确保用户通信安全。在今年9月日本福岗召开的第53次第三代合作伙伴计划(3GPP)系统架构组(SA)会议上,祖冲之加密算法被批准成为LTE国际标准。这是我国商用密码算法首次走出国门参与国际标准制定,取得的重大突破。

祖冲之加密算法原理

祖冲之加密算法是一个面向字的流密码。它采用128位的初始密钥作为输入和一个128位的初始向量(IV),并输出关于字的密钥流(从而每32位被称为一个密钥字)。密钥流可用于对信息进行加密/解密。

祖冲之加密算法的执行分为两个阶段:初始化阶段和工作阶段。在第一阶段,密钥和初始向量进行初始化,即不产生输出。第二个阶段是工作阶段,在这个阶段,每一个时钟脉冲产生一个32比特的密钥输出。

祖冲之加密算法运算符

mod整数模
⊕整数比特异或
ab,字符串a和b的连接
Haa二进制表示的最左16位值
Laa二进制表示的最右16位值
nak<<<a向左k比特的循环移位
1a>> a向右1比特的移位
()()1212,,,,,,nnaaabbb→LLia值分配到对应ib的值

小知识之祖冲之加密算法:

祖冲之加密算法是中国自主设计的流密码算法,现已被3GPPLTE采纳为国际加密标准,即第四代移动通信加密标准。

简析椭圆曲线ECC加密算法

椭圆曲线ECC加密算法可以用于给文件加密,签名等,也可以给用户生成软件序列号,微软的软件序列号就是用的椭圆曲线ECC加密算法。同RSA加密算法一样,ECC也属于公开密钥算法。如果您了解RSA加密算法,对公开密钥算法也有一定了解的话。那么您今天要掌握椭圆曲线ECC加密算法就比较的容易了。

椭圆曲线ECC加密算法

椭圆曲线指的是由韦尔斯特拉斯(Weierstrass)方程 y2+a1xy+a3y=x3+a2x2+a4x+a6 所确定的平面曲线。若F是一个域,ai ∈F,i=1,2,…,6。满足式1的数偶(x,y)称为F域上的椭圆曲线E的点。F域可以式有理数域,还可以式有限域GF(Pr)。椭圆曲线通常用E表示。除了曲线E的所有点外,尚需加上一个叫做无穷远点的特殊O。

在椭圆曲线加密(ECC)中,利用了某种特殊形式的椭圆曲线,即定义在有限域上的椭圆曲线。其方程如下:

y2=x3+ax+b(mod p)

这里p是素数,a和b为两个小于p的非负整数,它们满足:

4a3+27b2(mod p)≠0 其中,x,y,a,b ∈Fp,则满足式(2)的点(x,y)和一个无穷点O就组成了椭圆曲线E。

椭圆曲线离散对数问题ECDLP定义如下:给定素数p和椭圆曲线E,对 Q=kP,在已知P,Q的情况下求出小于p的正整数k。可以证明,已知k和P计算Q比较容易,而由Q和P计算k则比较困难,至今没有有效的方法来解决这个问题,这就是椭圆曲线ECC加密算法原理之所在。

椭圆曲线ECC加密算法与RSA加密算法的比较

椭圆曲线公钥系统是代替RSA的强有力的竞争者。椭圆曲线加密方法与RSA方法相比,有以下的优点:

(1)安全性能更高 如160位ECC与1024位RSA、DSA有相同的安全强度。
(2)计算量小,处理速度快 在私钥的处理速度上(解密和签名),ECC远 比RSA、DSA快得多。
(3)存储空间占用小 ECC的密钥尺寸和系统参数与RSA、DSA相比要小得多, 所以占用的存储空间小得多。
(4)带宽要求低使得ECC具有广泛得应用前景。

ECC加密算法的这些特点使它必将取代RSA加密算法,成为通用的公钥加密算法。比如SET协议的制定者已把它作为下一代SET协议中缺省的公钥密码算法。

小知识之公钥加密:

公钥加密又叫双钥加密或非对称加密最早在1976年被提出,但是真正能加密的算法RSA算法实在1978年才被提出。

如何用RSA加密算法给文件加密

最早、最著名的保密密钥或对称密钥加密算法DES(Data Encryption Standard)是由IBM公司在70年代发展起来的,并经政府的加密标准筛选后,于1976年11月被美国政府采用,DES随后被美国国家标准局和美国国家标准协会(American National Standard Institute,ANSI)承认。

DES加密算法:

DES使用56位密钥对64位的数据块进行加密,并对64位的数据块进行16轮编码。与每轮编码时,一个48位的”每轮”密钥值由56位的完整密钥得出来。DES用软件进行解码需用很长时间,而用硬件解码速度非常快。幸运的是,当时大多数黑客并没有足够的设备制造出这种硬件设备。在1977年,人们估计要耗资两千万美元才能建成一个专门计算机用于DES的解密,而且需要12个小时的破解才能得到结果。当时DES被认为是一种十分强大的加密方法。

随着计算机硬件的速度越来越快,制造一台这样特殊的机器的花费已经降到了十万美元左右,而用它来保护十亿美元的银行,那显然是不够保险了。另一方面,如果只用它来保护一台普通服务器,那么DES确实是一种好的办法,因为黑客绝不会仅仅为入侵一个服务器而花那么多的钱破解DES密文。

RSA加密算法:

另一种非常著名的加密算法就是RSA了,RSA(Rivest-Shamir-Adleman)算法是基于大数不可能被质因数分解假设的公钥体系。简单地说就是找两个很大的质数。一个对外公开的为“公钥”(Prblic key) ,另一个不告诉任何人,称为”私钥”(Private key)。这两个密钥是互补的,也就是说用公钥加密的密文可以用私钥解密,反过来也一样。

实例分析两种加密算法:

假设用户甲要把一个机密文件发送给用户乙,他们互相知道对方的公钥。甲就用乙的公钥把文件加密后寄出,乙收到后就可以用自己的私钥把加密文件解密出甲的原文。由于别人不知道乙的私钥,所以即使是甲本人也无法解密那个文件,这就解决了文件的保密的问题。另一方面,由于每个人都知道乙的公钥,他们都可以给乙发文件,那么乙怎么确信是不是甲的发来的文件呢?那就要用到基于加密技术的数字签名了。

甲用自己的私钥将签名内容加密,附加在文件后,再用乙的公钥将整个文件加密(注意这里的次序,如果先加密再签名的话,别人可以将签名去掉后签上自己的签名,从而篡改了签名)。这样这个加密文件被乙收到以后,乙用自己的私钥将文件解密,得到甲的原文和数字签名,然后用甲的公钥解密签名,这样一来就可以确保两方面的安全了。

小知识之密钥:密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的数据。

虚拟专网常用加密算法

虚拟专网技术是近年来用于解决网络安全问题的新技术之一,数据加密是虚拟专网实现的基础。为了确保虚拟专网的安全性,选择高效的加密算法应用于IPSec。那么,我们今天就来简单的介绍一下常用的虚拟专网加密算法。

虚拟专网常用加密算法

1、AES加密算法:

高级加密标准(AES)是一个用来代替数据加密标准(DES)的算法。目前使用的一般为128,196和256位密钥,这三种密钥都是相当安全的。

2、DES加密算法:

DES ( data encryption Standard) 是一种世界标准的加密形式, 已经15 年历史了,虽然有些老, 可还算是比较可靠的算法。DES是一种对二元数据进行加密的算法,数据分组长度为64位,密文分组长度也是64位,使用的密钥为64位,有效密钥长度为56位,有8位用于奇偶校验,解密时的过程和加密时相似,但密钥的顺序正好相反。
DES算法的弱点是不能提供足够的安全性,因为其密钥容量只有56位。

3、3DES加密算法:

3DES(即Triple DES)是DES向AES过渡的加密算法(1999年,NIST将3-DES指定为过渡的加密标准),是DES的一个更安全的变形。因为确定一种新的加密法是否真的安全是极为困难的,而且DES的唯一密码学缺点,就是密钥长度相对比较短,所以人们并没有放弃使用DES,而是想出了一个解决其长度问题的方法,即采用三重DES。这种方法用两个密钥对明文进行三次加密,但这种方法的缺点,是要花费原来三倍时间。

用户可以根据自己虚拟专网环境及数据加密的需求来合理的选择合适的加密算法。

小知识之ipsec:IPSec 是安全联网的长期方向。它通过端对端的安全性来提供主动的保护以防止专用网络与 Internet 的攻击。在通信中,只有发送方和接收方才是唯一必须了解 IPSec 保护的计算机。