[英]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.