常用的非对称密钥秘密算法(安全对称密钥原理以及生成的方法)
1.简介
对称密钥交换是一种方法(通常称为Bob)将共享密钥S发送给他希望用于加密数据通信线路的另一端(通常称为Alice)。
经典解决方案采用函数f,函数f通常是具有以下属性的XOR函数:
f(f(A,B),A)= B和f(f(A,B),B)= A
Bob可以编码S私钥B到f(B,S)并将其发送给Alice。
Alice现在使用私钥A到f(f(B,S),A)对f(B,S)进行编码并将其返回给Bob
Bob现在使用f(f(f,B,S)删除他的私钥, A),B)= f(A,S)并将其发送给Alice
Alice使用f(f(A,S),A)= S移除私钥并具有共享密钥。
2.问题
在不安全的连接上,可以通过窃听Bob和Alice之间的通信来执行中间人攻击。黑客知道f(B,S),f(f(B,S),A)和f(A,S)。
通过计算f(f(f,B,S),A),f(B,S))黑客确定A.然后通过计算f(f(A,S),A)他可以确定S,并收听在加密连接上。
3.解决方案如果我们可以找到另一个函数g,其中对于某些或所有x,f(x)!= g(x)但具有相同的属性g(g(A,B),A)= B和g(g (A,B),B)= A,我们可以在f和g之间随机选择,因此黑客不知道是否使用f或g,使得中间人攻击无法使用。
我们发现这个函数是XAND函数,它具有特殊属性A XAND B = NOT(A XOR B)和A XOR B = NOT(A XAND B)。所以它是XOR的反转。
我们现在可以使用完美的逻辑属性。
设f为函数,XOR或XAND。
设g是XOR或XAND的函数。
我们现在有公式f(g(f(B,S),A),B)= g(A,S)。在我们的握手中,Bob只需要f,而Alice只需要g。因为另一方不需要知道f或g是什么,所以他们可以保密,使黑客无法确定使用哪个。现在通过在每个位上随机使用XOR或XAND进行编码来最终确定加密。
4.实现Bob想要将随机密钥S发送给Alice。
Bob和Alice创建私钥B和A.
现在Bob和Alice创建第二个私钥,其长度与A和B相同,Q代表Bob,R代表Alice。
Bob计算E = B XOR S.
对于E中的每个位,我们查看Q中相同位置的位,如果它是1,我们将E中的位翻转,使这些位使用XAND函数。然后我们将E发送给Alice。
Alice计算F = A XOR E,如果R中的相应位为1,则翻转F的位,并将F发送给Bob。
Bob现在计算G = F XOR B,如果Q中的位为1,则再次翻转G中的所有相应位,并将G发送给Alice。
Alice现在计算T = G XOR A,并翻转T中的相应位,其中R中的位为
1.T现在等于S,并且我们可以建立编码通信。
黑客现在只能确定R(B,S)或Q(A,S),但不知道R也不是B,也不知道Q也不知道A,因此不可能确定S.
5.示例Bob Alice
共享密钥10011101 S
私钥10110001 B 00111001 A
专用功能密钥00110101 R 11001111 Q
Bob - > Alice:R(B,S)Alice - > Bob:Q(A,R(B,S))= Q(A,E)
B 10110001 A 00111001
S 10011101 E 00011001
-------------- XOR -------------- XOR
X 00101100 X 00100000
R 00110101 Q 11001111
------- -------如果R = 1则翻转X ---------------如果Q = 1则翻转X
E 00011001 F 11101111
Bob - > Alice:R(B,Q(A ,R(B,S)))= R(B,F)Alice:Q(A,R(B,Q(A,R(B,S))))= Q(A,G)
B 10110001 A 00111001
F 11101111 G 01101011
-------------- XOR -------------- XOR
X 01011110 X 01010010
R 00110101 Q 11001111
--------------如果R = 1则翻转X ---------------如果Q = 1则翻转X
01101011 T 10011101
S 10011101已成功发送。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com