對稱密鑰交換是一種方法(通常稱為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移除私鑰并具有共享密鑰。
在不安全的連接上,可以通過竊聽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已成功發送。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!