簡體   English   中英

如何將已完全散列的menezes-qu-vanstone(fhmqv)的補丁應用於已從Ubuntu存儲庫安裝的crypto ++

[英]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與簽名方案配對。 例如,TL​​S將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.hwait.cpp的更改。 它被添加來解決未解決的錯誤。 這些錯誤已在Crypto ++ 5.6.3中清除。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM