如果一方從不回复,雙棘輪中的 diffie helman rachet 是否有任何作用?
如果這個問題很幼稚,我對這個功能如何提前道歉感到有點困惑。
我理解它的方式,雙棘輪中標準發送和接收棘輪的功能是提供向後保密。由於棘輪不斷地通過 KDF 傳遞密鑰,因此如果攻擊者以某種方式鎖定目前密鑰,則無法推斷出先前的密鑰。
問題是,這不提供前向保密,因為攻擊者現在可以與我們的棘輪一起打勾。這就是 DH Ratchet 應運而生的地方。
我正在閱讀http://cryptowiki.net/index.php?title=The_Double_Ratchet_Algorithm#Diffie-Hellman_ratchet
Alice 和 Bob 都生成了一個 DH 密鑰對。該密鑰對與發送和接收棘輪中使用的密鑰是分開的。
當 Bob 發送消息時,他會發送他的 DH 公鑰。當愛麗絲收到它時,她使用嘿私鑰並從這兩個中形成一個新密鑰。現在 Alice 有了新的鑰匙(我們稱之為 K1)用於她的棘輪。
然後,當 Alice 向 Bob 發送消息時,她會發送她的私有組件並生成一個新的 DH 密鑰對,因為雙方都使用了這個密鑰對。Bob 現在可以使用它來派生相同的 K1 密鑰。Bob 生成一個新的 DH 密鑰對,因為這個密鑰對已經用於計算雙方的 K1。
我對這種理解的問題是,如果愛麗絲從不回應怎麼辦?Bob 將繼續發送他的公鑰。由於他只在接收消息時進行棘輪,他的 DH Rachet 將永遠不會啟動,並且他發送的 N 條消息現在沒有前向保密? 此外,alice 將多次收到相同的公鑰。這肯定是個問題。發送時應該更改密鑰,不是嗎?
我知道我在這裡缺少一些東西。任何幫助表示讚賞。
Bob 將繼續發送他的公鑰。由於他只在接收消息時進行棘輪,他的 DH Rachet 將永遠不會啟動,並且他發送的 N 條消息現在沒有前向保密?
如果棘輪通道上確實沒有答案,這是正確的。然而,一些實現通過棘輪通道發送他們的接收回執,這意味著只有當接收者從未真正接收到消息或無法發送確認時,棘輪才不會被推進。
此外,alice 將多次收到相同的公鑰。這肯定是個問題。發送時應該更改密鑰,不是嗎?
這不是問題,協議指示使用哪個公鑰,哪個應該是第一個新公鑰。