单向函数是进行数据加密/编码的一种算法
MD5(Message Digest Algorithm 5):是RSA数据安全公司开发的一种单向散列算法,MD5被广泛使用,可以用来把不同长度的数据块进行暗码运算成一个128位的数值;
SHA(Secure Hash Algorithm)这是一种较新的散列算法,可以对任意长度的数据运算生成一个160位的数值;
MAC(Message Authentication Code):消息认证代码,是一种使用密钥的单向函数,可以用它们在系统上或用户之间认证文件或消息。HMAC(用于消息认证的密钥散列法)就是这种函数的一个例子。
CRC(Cyclic Redundancy Check):循环冗余校验码,CRC校验由于实现简单,检错能力强,被广泛使用在各种数据校验应用中。占用系统资源少,用软硬件均能实现,是进行数据传输差错检测地一种很好的手段(CRC 并不是严格意义上的散列算法,但它的作用与散列算法大致相同,所以归于此类)。
算法介绍:
现有矩阵M,N和P,P=MN。如果M(或N)的行列式为零,则由P和M(或P和N)计算N(或M)是一个多值问题,特别是M(或N)的秩越小,N(或M)的解越多。
由以上问题,假设Tom和Bob相互通信,现做如下约定:
1 在正式通信之前,二人约定一个随机奇异矩阵M。
2 Tom和Bob各自选取一个nn的随机矩阵作为他们的私有密钥,设Tom的为A,Bob的为B。
3 然后Tom计算矩阵Pa=AM作为他的公钥,Bob计算矩阵Pb=MB作为他的公钥。
4 当Tom向Bob发送消息时,计算加密矩阵K=APb,用K对消息加密后发送到Bob端,Bob收到消息后,计算解密矩阵K’= PaB,由以上代数关系可以看出,K= K’,也既加密和解密是逆过程,可以参照对称加密标准AES。
5 Bob向Tom发送消息时,计算解密矩阵K= PaB,加密。Tom收到消息后计算解密矩阵K=APb,原理同上。
算法分析:
由以上介绍可容易看出,此算法比RSA和ECC的加密效率要高4-6个数量级,且加密强度在增大n的基础上,可获得与以上两算法相当的加密强度。
该算法仍在论证阶段,欢迎此方面高手携手参与或提出缺点
email:cmsbai@msncom
4)单向散列函数介绍(Hash Function,哈希函数):
将任意长度的消息M映射/换算成固定长度值h(散列值,或消息摘要MD, Message Digest),最大的特点为其具有单向性。
h=H(M)
Hash函数用于消息认证(或身份认证)以及数字签名。
特性:
(1) 给定M,可算出h
(2) 给定h,根据H(M)=h反推出M是非常困难的。
(3) 给定M,要找到另外一个消息M,使其满足H(M)=H(M)=h 是非常困难的。
注 (见 参考E,p75):
-从理论上说,有很多消息能生成相同的消息摘要。因为消息的长度是任意的,而摘要的长度是固定的。
-对于固定1000 bit的消息和固定128 bit的摘要,平均来说,有2872个消息与之对应,测试似乎不可能成功。
-对于一个128 bit的消息摘要算法,大约需要尝试2128个(长短不一的)消息,才能找到一个消息摘要与给定的摘要数值相吻合(作为攻击,当然该消息可为经篡改后的消息)。注:这里是用无数次的“尝试”,而非简单从h反推出M。
-对于一个128 bit的消息摘要算法,需要尝试264个消息才能找到两个具有相同摘要的消息。
-为什么将消息摘要定为128 bit 因为消息摘要为m bit,任何人想要得到两个具有相同摘要的消息,大约需要尝试2m/2个消息。 若m=64, 则需检查232个消息,这在计算上是可行的。所以使m=128, 检查264个消息目前在计算上是不可行的。
应用举例讲解:
(i) 存储于银行计算机内的用户密码采用散列值,用于保密。
(ii)Alice要Bob写一份关于解雇Fred的报告,而Bob是Fred的朋友,想做“双面人”。
(iii)为文档和程序生成“指纹”或“DNA”。
在实际应用中,Hash函数是基于压缩函数的。
(RefC_p42_Hash函数)
给定任意长度的消息,Hash函数输出长度为m的散列值(即消息摘要)。
压倒函数的输入为
(1) 明文消息分组 Mi。
(2) 前一压缩数据的输出 CVi-1 (Compressed Vector)。
注:
-第一个压缩函数的输入M1为和IV (Initial Vector)。
-压缩函数的输出值为前所有分组的散列值;最后一个分组的散列值即为整个消息的散列值,即消息摘要MD。
Hash函数算法介绍: MD5算法 和 SHA-1算法。
MD5算法:
对任意长度的消息M作为输入,产生一个128 bit的散列值/消息摘要。
(RefC_p43_MD5算法)
算法包括5个步骤:
(1) 附加填充位:填充消息,使消息的长度位一个比512倍数小64位的数,填充位数为1~512。填充方法:原消息的后面第一位填1,其余填0。(例如:设消息为“abc”。)
(2) 附加长度:将原消息的64位表示附加在填充后的消息后面,这时处理后的消息的长度恰好为512的整数倍。(续上例)
若原消息的长度大于264时,则用原消息长度mod264的64位表示附加在填充后的消息后面。
(3) 初始化MD的缓冲区:缓冲区共有4个32 bit的寄存器 A、B、C、D, 各寄存器的初始值为
A: 01 23 45 67
B: 89 ab cd ef
C: fe dc ba 98
D: 76 54 32 10
(4) 按512 bit的消息分组处理输入消息:该步为MD5的主循环,包括4轮。
(RefC_p44_主循环处理)
每个循环均以当前正在处理的512 bit的分组Yq和128 bit的缓冲值ABCD为输入,然后更新缓冲内容。
以上4轮 *** 作类似,每轮进行16次 *** 作,各轮 *** 作过程见下图。
(RefC_p44_某轮执行过程)
每一轮的非线性函数不同,4次所用的非线性函数分别记为 F、G、H、I。
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))
其中: :逻辑按位与 :逻辑按位或
~:逻辑按位反 :逻辑按位异或
注:T表:T[i]=232abs(sin(i))
安全散列函数算法(SHA, Secure Hash Algorithm):
SHA由美国NIST(国家标准与技术研究所)和NSA(国家标准协会)设计,用于数字签名(DS)。
SHA-1为SHA的修改版,于1995年发布。
SHA-1产生消息摘要的过程与MD5类似,但输入为度小于232 bit的消息,而输出为160 bit的散列值(即消息摘要MD),消息仍需填充使其最后为512的整数倍。
注:与MD5比较:
-附加填充位和附加消息长度与MD5相同。
-初始化缓冲器:SHA用两个缓冲区,每个区均有
5个32位的寄存器,分别为 A、B、C、D、E和H0、H1、H2、H3、H4。另有一单字缓冲区。
-按512 bit分组处理输入消息,主循环包括4轮(和MD5一样),但每轮 *** 作20次(MD5为16次)
(详见参考资料)
25 数字信封
用于保证数据在传输过程中的安全。对称加密效率高,但密钥不适合在公共网络传递,而非对称加密传递简单,但效率低下。数字信封技术取二合一,即取对称加密的高效性和非对称加密的灵活性。
(RefB_p385_数字信封)
-两个不同的加密解密过程:明文的加密/解密,密钥的加密/解密。首先使用对称加密算法对数据加密;然后,利用非对称加密算法对对称加密过的密钥进行加密,过程包括:
(1) 发送消息时,发送方生成一个对称密钥。
(2) 发送方使用自己的对称加密的密钥和算法对欲发送的数据进行加密,形成数据密文。
(3) 发送方使用接收方提供的公钥,对自己的密钥进行加密。
(4) 发送方通过网络将加密后的密文和密钥传输到接收方。
(5) 接收方用私钥对加密后的发送方密钥进行解密,获得对称密钥。
(6) 接收方使用还原出的密钥对数据进行解密,得到数据明文。
应用两层加密体制,在内层运用对称加密技术,每次传送消息都可以重新生成新的密钥,保证消息的安全性。在外层,利用非对称加密技术加密对称密钥,保证密钥传递的安全性。
2.6 身份认证技术的发展
网络用户的身份认证可以用下列3中基本方法之一或它们的组合来实现。
(1) 所知(knowledge): 验证用户的密码,口令等。
(2) 所有(possession): 所掌握的用户的身份z、护照、xyk等。
(3) 特征(characteristics):所掌握的用户的指纹、声音、笔记、手型,虹膜,DNA、动作等。
全称应该是通用密钥密码体制和公开密钥密码体制。下面是关于两种密码体制的特点介绍。我也是学密码学的如果有问题可以进一步交流。
传统的加密方法是加密、解密使用同样的密钥,由发送者和接收者分别保存,在加密和解密时使用,采用这种方法的主要问题是密钥的生成、注入、存储、管理、分发等很复杂,特别是随着用户的增加,密钥的需求量成倍增加。在网络通信中,大量密钥的分配是一个难以解决的问题。
例如,若系统中有n个用户,其中每两个用户之间需要建立密码通信,则系统中每个用户须掌握(n-1)/2个密钥,而系统中所需的密钥总数为n(n-1)/2 个。对10个用户的情况,每个用户必须有9个密钥,系统中密钥的总数为45个。对100个用户来说,每个用户必须有99个密钥,系统中密钥的总数为4950个。这还仅考虑用户之间的通信只使用一种会话密钥的情况。如此庞大数量的密钥生成、管理、分发确实是一个难处理的问题。
本世纪70年代,美国斯坦福大学的两名学者迪菲和赫尔曼提出了一种新的加密方法--公开密钥加密队PKE方法。与传统的加密方法不同,该技术采用两个不同的密钥来对信息加密和解密,它也称为"非对称式加密方法。每个用户有一个对外公开的加密算法E和对外保密的解密算法D,
它们须满足条件:
(1)D是E的逆,即D[E(X)]=X;
(2)E和D都容易计算。
(3)由E出发去求解D十分困难。
从上述条件可看出,公开密钥密码体制下,加密密钥不等于解密密钥。加密密钥可对外公开,使任何用户都可将传送给此用户的信息用公开密钥加密发送,而该用户唯一保存的私人密钥是保密的,也只有它能将密文复原、解密。虽然解密密钥理论上可由加密密钥推算出来,但这种算法设计在实际上是不可能的,或者虽然能够推算出,但要花费很长的时间而成为不可行的。所以将加密密钥公开也不会危害密钥的安全。
数学上的单向陷门函数的特点是一个方向求值很容易,但其逆向计算却很困难。基于这种理论,1978年出现了著名的RSA算法。这种算法为公用网络上信息的加密和鉴别提供了一种基本的方法。它通常是先生成一对RSA 密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。这就使加密的计算量很大。为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,即信息采用改进的DES或IDEA对话密钥加密,然后使用RSA密钥加密对话密钥和信息摘要。对方收到信息后,用不同的密钥解密并可核对信息摘要。
RSA算法的加密密钥和加密算法分开,使得密钥分配更为方便。它特别符合计算机网络环境。对于网上的大量用户,可以将加密密钥用电话簿的方式印出。如果某用户想与另一用户进行保密通信,只需从公钥簿上查出对方的加密密钥,用它对所传送的信息加密发出即可。对方收到信息后,用仅为自己所知的解密密钥将信息脱密,了解报文的内容。由此可看出,RSA算法解决了大量网络用户密钥管理的难题。
RSA并不能替代DES,它们的优缺点正好互补。 RSA的密钥很长,加密速度慢,而采用DES,正好弥补了RSA的缺点。即DES用于明文加密,RSA用于DES密钥的加密。由于DES加密速度快,适合加密较长的报文;而RSA可解决DES密钥分配的问题。美国的保密增强邮件(PEM)就是采用了RSA 和DES结合的方法,目前已成为E-MAIL保密通信标准。
通用密钥密码体制
通用密钥密码体制的加密密钥Ke和解密密钥Kd是通用的,即发送方和接收方使用同样密钥的密码体制,也称之为“传统密码体制”。
在通用密码体制中,目前得到广泛应用的典型算法是DES算法。DES是由“转置”方式和“换字”方式合成的通用密钥算法,先将明文(或密文)按64位分组,再逐组将64位的明文(或密文),用56位(另有8位奇偶校验位,共64位)的密钥,经过各种复杂的计算和变换,生成64位的密文(或明文),该算法属于分组密码算法。
DES算法可以由一块集成电路实现加密和解密功能。该算法是对二进制数字化信息加密及解密的算法,是通常数据通信中,用计算机对通信数据加密保护时使用的算法。DES算法在1977年作为数字化信息的加密标准,由美国商业部国家标准局制定,称为“数据加密标准”,并以“联邦信息处理标准公告”的名称,于1977年1月15日正式公布。使用该标准,可以简单地生成DES密码。
one-way,unidirectional:
adj ,单向的,允许朝或只能朝单方向运动的。
例句:a one-way street单行道Providing for travel in one direction only,单程的,单程旅行的,例句:a one-way ticket , 单程票。
单向的造句:
1、他们透过单向镜子监视犯人。
They observed the prisoners through a one-way mirror
2、我们在观察室透过单向玻璃注视着特德和他的治疗师。
From the observation booth, we watched Ted and his therapist through the one-way glass
3、通过一面单向透明玻璃镜对他们进行暗中监视。
They were spied on via a two-way mirror
4、过去10年的经验表明,忠诚对于欧盟怀疑论者而言是单向的,他们仅会索取不会给予。
The experience of the last 10 years has shown that, for the Eurosceptics, loyalty is a one-way street; something you demand but do not give
5、爱是单向的,大多数时候都是如此。
Love is one sided, most of the time
6、申请单向竞买的市场主体可向其他市场主体购买碳排放配额,竞买信息由交易机构发布。
Market entities applying for one-way bidding can purchase emission allowances from counterparts, with the bidding information released by the exchange
7安全单向的嵌入式USB通信设备分析与设计。
Analysis and design of safe and one-way embedded USB communication equipment
8、基于超混沌Chen系统和密钥流构造单向散列函数的方法。
One-way hash function construction based on Chen-type hyper-chaotic system and key-stream
9、基于单向约束TIN的层状地质体三维建模。
3D Modeling of Bedded Geologic Body based on Unilateralism TIN
10、一种支持单向链路的QoS路由协议。
A QoS Routing Protocol in MANETs with Unidirectional Links
11、基于交叉耦合映象格子的单向Hash函数构造。
One-way Hash function construction based on crossing coupled map lattice
12、它们中的大多数只提供同步和单向的服务调用b,而这只是服务交互风格的子集。
The majority of them provide only synchronous and one-way service invocation ,which are only a subset of the service interaction styles
13、此类通讯是单向的,源(source)应用程序无法知道目标(destination)应用程序将如何处理消息。
This sort of communication is one-way, the source application has no way of knowing how the destination is going to handle the message
14、如果在需要代码签名的exchange命令行管理程序环境中运行此脚本,则会为脚本文件生成一个新的单向哈希值。
When this script is run in an exchange management shell environment where code signing is required, a new one-way hash of the script file is produced
15、基于单向哈希链的无线传感器网络安全LEACH路由协议。
Secure LEACH routing protocol based on Hash chain in wireless sensor networks
16、基于单向陷门函数的TMN协议的改进。
An Improvement of the TMN Protocol Based on Trapdoor Oneway Functions
17、与有线电视或者卫星电视这些传统的单向多点传送网络相比,IPTV有很大的不同。
IPTV works quite differently from traditional unidirectional multicast networks such as cable or satellite television
自从1976年公钥密码的思想提出以来,国际上已经提出了许多种公钥密码体制。用抽象的观点来看,公钥密码就是一种陷门单向函数。
我们说一个函数f是单向函数,即若对它的定义域中的任意x都易于计算f(x),而对f的值域中的几乎所有的y,即使当f为已知时要计算f-l(y)在计算上也是不可行的。若当给定某些辅助信息(陷门信息)时则易于计算f-l(y),就称单向函数f是一个陷门单向函数。公钥密码体制就是基于这一原理而设计的,将辅助信息(陷门信息)作为秘密密钥。这类密码的安全强度取决于它所依据的问题的计算复杂度。
目前比较流行的公钥密码体制主要有两类:一类是基于大整数因子分解问题的,其中最典型的代表是RSA体制。另一类是基于离散对数问题的,如ElGamal公钥密码体制和影响比较大的椭圆曲线公钥密码体制。
公钥密码
一般要求:
1、加密解密算法相同,但使用不同的密钥
2、发送方拥有加密或解密密钥,而接收方拥有另一个密钥
安全性要求:
1、两个密钥之一必须保密
2、无解密密钥,解密不可行
3、知道算法和其中一个密钥以及若干密文不能确定另一个密钥
公钥密码体制的思想是基于陷门单向函数公钥用于该函数的正向(加密)计算私钥用于该函数的反向(解密计算)。
加密算法的设计
设计加密算法的思想往往是:构造一个称为某种网络的固定结构,然后以该种网络的若干次迭代来对明文及密钥数据提供必要的混乱和扩散。
一个完整的网络应使每一输入比特经其变换以后都可能使形态改变至少一次。此外,按照Feistel构造中m与n是否相等可把Feistel网络分为平衡与非平衡的。
最基本的要素:S-盒、P-置换、以及结构(轮)函数
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)