[英]How to apply the patch for fully hashed menezes-qu-vanstone (fhmqv) to crypto++ that has been installed from the Ubuntu repository
我想將橢圓曲線Diffie-Hellman(ECDH)密鑰交換協議用於密鑰協商過程。 它已經在crypto ++庫中實現,我想利用它。 我已經安裝了crypto ++(通過在終端中鍵入sudo apt-get ...命令),但是由於傳統的ECDH容易受到中間人攻擊。
我想使用完全散列的menezes-qu-vanstone協議。 盡管它是為crypto ++實現的,但它不在主流中,因此我需要對其進行修補。 這里有一個解釋,但這是針對那些從源代碼構建庫的人的。
有誰知道如何將此修補程序應用於從Ubuntu存儲庫安裝的crypto ++? 我正在使用Ubuntu 15。
但是由於傳統的ECDH容易受到中間人攻擊。
其他人通常要做的是將ECDH與簽名方案配對。 例如,TLS將ECDH與RSA或ECDSA之類的方案一起使用。
我並不是說您應該這樣做; 我只是讓你知道別人在做什么。
它不在主流中,所以我需要對其進行修補...
在下一個版本中,我們將添加HMQV和FHMQV。 下一個版本將在未來幾個月內發布。
有誰知道如何將此修補程序應用於從Ubuntu存儲庫安裝的crypto ++?
最簡單的操作可能是構建該庫的新版本,然后將其安裝到/usr/local
。 我想您知道如何下載和打補丁。 要構建和安裝:
# Crypto++ build directory
...
make static dynamic cryptest.exe
sudo make install PREFIX=/usr/local
您可能可以修補Ubuntu版本,因為FHMQV主要是僅標頭的實現。 但是, cryptest.exe
將不包含驗證內容。 您確實需要為其構建庫。
下載補丁程序並執行以下操作。 fhmqv.h
是補丁的“肉和土豆”。
sudo cp fhmqv.h /usr/include/cryptopp
您還需要將以下內容添加到eccrypto.h
。 首先使用特權打開文件(即sudo emacs /usr/include/cryptopp/eccrypto.h
)。
然后,將其添加到eccrypto.h
的頂部:
#include "fhmqv.h"
並將其添加到eccrypto.h
的底部:
//! Fully Hashed Menezes-Qu-Vanstone in GF(p) with key validation,
/*! <a href="http://eprint.iacr.org/2009/408">A Secure and Efficient Authenticated DiffieHellman Protocol</a>
Note: this is FHMQV, Protocol 5, from page 11; and not FHMQV-C.
*/
template <class EC, class COFACTOR_OPTION = CPP_TYPENAME DL_GroupParameters_EC<EC>::DefaultCofactorOption, class HASH = SHA256>
struct FHMQV
{
typedef FHMQV_Domain<DL_GroupParameters_EC<EC>, COFACTOR_OPTION, HASH> Domain;
};
不需要DIFF文件中的大多數其他內容,例如對wait.h
和wait.cpp
的更改。 它被添加來解決未解決的錯誤。 這些錯誤已在Crypto ++ 5.6.3中清除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.