安企神电脑监控软件 在线试用
扫码咨询客服
安企神电脑监控软件、局域网监控软件
首页
功能介绍
产品简介
下载中心
帮助中心
客户列表
关于安企神

随机分组密码加密算法

更新时间:2022-10-28 15:42:48


本文简介:随机分组密码加密算法与固定结构的密码加密算法不同,其比较难以分析。目前的分析方法仅限于信息论方式,它是将生成算法与等长的随机置换相比较,随机分组密码加密算法的安全性证明是通过有限次明文、密文对的查询以及不能区分生成的算法与等长的随机置换来保证的。随机分组密码加密算法随机分组密码加密算法基本思想是将密钥分成两部分,即控制密钥和加密密钥。1、控制密钥控制密钥用于生成密码算法,因而算法是随机的,它随着密

随机分组密码加密算法

随机分组密码加密算法与固定结构的密码加密算法不同,其比较难以分析。目前的分析方法仅限于信息论方式,它是将生成算法与等长的随机置换相比较,随机分组密码加密算法的安全性证明是通过有限次明文、密文对的查询以及不能区分生成的算法与等长的随机置换来保证的。

随机分组密码加密算法

随机分组密码加密算法基本思想是将密钥分成两部分,即控制密钥和加密密钥。

1、控制密钥

控制密钥用于生成密码算法,因而算法是随机的,它随着密钥的不同而变化;加密密钥用于生成子密钥,用于加密算法。控制密钥选取方法要保证能生成足够多不同的随机密码加密算法,同时生成的密码加密算法能达到足够的安全性使其密码分析人员难以进行静态分析。控制密钥又可以细分为加密算法控制密钥和密钥扩展算法控制密钥两部分。

(1)加密算法控制密钥由若干个轮函数控制密钥所组成,用于生成各轮的轮函数,轮函数控制密钥的个数即为加密算法的轮数;

(2)密钥扩展算法控制密钥用于生成密钥扩展算法。

2、加密密钥

加密密钥由所使用的密钥扩展函数决定。加密时通过加密算法控制密钥生成加密算法,通过使用加密密钥得到的子密钥进行加密;解密时通过加密算法控制密钥生成解密算法,使用加密密钥得到的子密钥进行解密,其具体步骤如下:

1)系统初始化

(1)确定整个加密系统公用的一些参数(Wb,We,Wz,Wr,Ws,t)。其中:Wb为明、密文分组长度(假定明、密文长度相等);We为加密算法密钥长度;Wz为算法每轮的子密钥长度;Wr为轮函数控制密钥的比特数;Ws为密钥扩展函数控制密钥的比特数;t为安全级别,即生成该随机算法需要的最大差分概率至多为2-t,最大线性相关度至多为2-t

整个加密算法密钥K由三部分组成,即加密算法密钥K1(长度为We)、轮函数生成算法控制密钥K2:(长度为Wr的整数倍)和密钥扩展函数控制密钥K3,(长度为Ws),即K=K1‖K2‖K3,其中符号‖表示级联。

(2)确定轮函数生成算法和密钥扩展生成算法。在控制密钥K2的控制下,由轮函数生成算法生成加密算法所需各轮的轮函数以及通过逆轮函数生成算法生成解密所需各轮的轮函数。在控制密钥K3的作用下产生密钥扩展函数生成算法生成密钥扩展函数。

(3)确定合法密钥需要满足的条件。设满足条件的轮函数控制密钥全体构成的集合为Kr,密钥扩展函数控制密钥全体构成的集合为Ks。

轮函数记为g,满足条件的轮函数全体记为LR,密钥扩展函数记为h,满足条件的密钥扩展函数全体记为LS,轮函数生成算法记为Fr,逆轮函数生成算法记为Fr-1,密钥扩展函数成算法记为Fs,则有

g∈LR,g:{0,1}Wt×{0,1}Wb→{0,1}Wb

h∈LS,h:{0,1}We→{0,1} ∞

Fr:Kr→Lr,Fs:Ks→Ls

(4)加密和解密轮数是由具体算法和安全级别t决定的,以下的讨论中假定为固定数r。

2)加密

加密该过程分成三部分,即生成算法、密钥扩展和加密算法。设密钥为K=k1‖K2‖K3,长度为W,明文M长度为Wb,输出密文为C,则各算法描述如下:

(1)生成算法

取密钥K2,按Wt,比特为间隔分成r组K(1),...,K(r),使用轮函数Fr生成算法生成对应的轮函数G(1),...,G(r)。

(2)密钥扩展

取密钥K3,使用密钥扩展对应算法Fs生成密钥扩展算法h,取密钥K1作为密钥扩展算法h的输入,得到子密钥比特流S。

(3)加密算法

分别使用G1...Gr作为轮函数,以及子密钥比特流S的第Wz×(i-1)+1比特到第Wz×i比特作为第i轮的子密钥,对明文M进行迭代加密得到密文C。

3)解密

该过程分成三部分,即生成算法、密钥扩展和解密算法。设密钥为K=k1‖K2‖K3,长度为Wb,明文M长度为输出密文为C,则各算法描述如下:

(1)生成算法

取密钥K2,按Wt,比特为间隔分成r组K(1),...,K(r),使用轮函数Fr生成算法生成对应的轮函数G(1)-1,...,G(r)-1

(2)密钥扩展

与加密过程的密钥扩展一样。

(3)解密算法

分别使用G(1)-1,...,G(r)-1作为轮函数,使用子密钥比特流S的第Wz×(r-i)+1比特到第Wz×(r-i+1)作为第i轮的子密钥,对密文C进行迭代解密得到明文M。

小知识之分组密码:

分组密码是将明文消息编码表示后的数字(简称明文数字)序列,划分成长度为n的组(可看成长度为n的矢量),每组分别在密钥的控制下变换成等长的输出数字(简称密文数字)序列。

立即下载试用

为什么密钥比密码更好

也许人们已经有过这种感觉,或者已经想象过了。当意识到刚刚把登录证书输入了一个假网站的那一刻,你会感到恐慌。也许你马上就意识到了。又或者你在第二天返回后无法登录时才意识到这一点。也许意识到这一点是因为你的银行账户被清空了。无论如何意识到或想象到它,它都不是想要的感觉。

为什么密钥比密码更好(图1)

密码已成为过去,密钥才是未来。

也许人们已经有过这种感觉,或者已经想象过了。当意识到刚刚把登录证书输入了一个假网站的那一刻,你会感到恐慌。也许你马上就意识到了。又或者你在第二天返回后无法登录时才意识到这一点。也许意识到这一点是因为你的银行账户被清空了。无论如何意识到或想象到它,它都不是想要的感觉。

但想象一下再也不用担心,这就是密钥和无密码身份验证所能带给您的体验。

为什么密钥更好

人们每天都在接近一个无密码的世界。我们都随身携带着可以用来轻松宣布身份的设备,通常是通过指纹或面部扫描。所有的新笔记本电脑都有指纹识别器。密码利用这些新技术大大提高了您的帐户的安全性。苹果已经在他们的生态系统中引入了密码,微软和谷歌很快也会发布他们的版本。

为什么说密钥是一种更好的解决方案,原因有很多,但归根结底有两点。

密码不共享任何秘密信息

这就是密钥比密码更安全的最大原因。有了密钥,密码就不再是威胁的载体了。

密码占所有安全漏洞的80%以上。密钥几乎可以将这种威胁降低到零。你不能重复使用你的密码。你不需要记住它们。它们是为您生成和存储的,因此您不必担心自己创建和存储它们。你不可能被引诱放弃它们,因为它们是特定网站独有的,因此不能与钓鱼网站共享。

与每个密钥相关联的敏感数据永远不会离开您的设备。这些信息存储在你手机上的一个特殊芯片(可信平台模块)上,即使是美国国家安全局也可能无法破解。如果你在一个使用像Passage这样的无密码解决方案的网站上注册,该网站除了一个公钥什么也得不到,这对破解你的账户毫无用处。虽然苹果允许你通过AirDrop与他人共享你的账户,但如果你想,你甚至不能与钓鱼网站共享实际的私钥。

密码是更好的用户体验

在网站上注册一个帐户可能是一件麻烦事。通常情况下,你必须想出一个符合各种标准的密码,以使其难以被猜出。通常情况下,用户必须从您的站点进行上下文切换,才能从他们的手机或电子邮件中获得一个六位数的数字。超过30%的网上购物车被放弃,因为注册账户很麻烦,或者因为用户不记得密码。密码管理器可以帮助解决这种情况,但对于许多人来说,使用起来可能很复杂。整个体验需要改进。

多因素身份验证(MFA)可以提高基于密码的系统的安全性,但这样做的代价是降低用户体验。MFA要求用户切换上下文,通常是通过转到另一个应用程序获取一个六位数的数字。我知道我经常摸索着找到我的手机来获取一次性密码。

相反,密码注册需要生物识别系统验证——就像触摸指纹或瞥一眼相机一样简单——以及一次性设备审批。之后,登录就像生物识别验证一样简单。用户无需输入复杂的密码、抓取一次性密码代码或查看电子邮件,只需几秒钟或更短的时间即可登录。

密码实际上是使用MFA,要求你提供你所拥有的东西(你的设备)和你自己的东西(例如,你的脸或指纹)。

密码只会越来越好。最终,你甚至不需要输入密码或电话号码就可以登录。相反,登录输入框只会知道您的设备有给定域的密钥,并会自动提示您。

让我们这样做

人们还记得银行手机应用程序允许采用指纹登录,而不是输入复杂的(而且最终并不安全,不管它有多复杂)密码时那种美妙的感觉。这无疑是一个自由的时刻。当你的用户访问你的网站或登录你的移动应用程序时,你希望他们这样做,不是吗?见鬼,你每次都想要这样。

最终,密码显得几乎不可利用,而且方便得多。


本文为收集整理,文章部分观点不代表本站观点,如有侵权或其它问题请反馈客服。https://www.wgj7.com/cjwt/16222.html