【发布时间】:2016-04-23 20:35:37
【问题描述】:
在 PBC 库中有一个从哈希中获取元素的函数:
void element_from_hash(element_t e, void *data, int len)从存储在缓冲区数据中的 len 个字节确定性地生成一个元素 e。
PBC manuals: Converting elements
有没有办法反过来,即从元素中恢复相应的哈希?
或者,是否有一致的方法将字符串来回转换为元素?
element_to_bytes / element_from_bytes 是否有效,或者这些字节是否以特定形式被解释为 PBC 元素(我强烈认为)?
我正在构建一个密码系统,显然我需要在解密后恢复明文;)。 为了更好地解释我的问题,我需要一种将字符串编码为元素并将元素解码为字符串的方法。
【问题讨论】:
-
应该有两个函数可用(我没有仔细观察)从一些数据中获取散列元素并从元素中获取字节散列。通常,您只需要其中一个而不是两者都需要(因为它们是不可逆的)。请记住,混合加密或更确切地说是密钥封装方法只需要其中一种功能即可进行加密和解密,因此您应该认真考虑您的加密系统或在Cryptography 上提问。
-
@ArtjomB。不,我需要将消息转换为元素,就像在 RSA 中一样,您必须将消息编码为整数。
-
您不必将消息编码为整数以进行 RSA 加密或解密。看看Key Encapsulation Method。这基本上就是使用椭圆曲线的 all 加密的工作原理。
-
@ArtjomB。我明白你的意思,我可以简单地生成一个随机元素作为“消息”并使用它来派生对称密钥,我知道这一点,实际上我的备份计划是使用
element_to_bytes然后散列。我想知道是否有这样的功能既可用于测试目的,又因为它会是某种嵌入式 KDF(再次很高兴拥有用于测试)。
标签: c hash cryptography