繁体   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