我在玩一个用http://jecc.sourceforge.net/做椭圆曲线密码的包
每次对值进行加密时,都会产生不同的结果(相同的私钥)。但是,我总是能够用相关的公钥解密这个结果。对于一个1字节的结果,结果数据是34个字节,2个字节结果数据是35个字节。我假设在结果中包含了一些关于曲线的知识。
这是ECC的一个特性,还是您认为它只是这个实现?
发布于 2013-09-01 03:39:36
一定是这样的。
首先,如果它是确定性的,您可以轻微地破坏加密。说加密的信息是对“你投给哪个总统候选人”的回应。攻击者只需加密每个候选人的姓名并查看与加密数据匹配的响应。
其次,如果它与加密数据的长度相同,那么至少会有两个问题。首先,短消息可能是微不足道的暴力强迫。例如,如果输出只有两个字节(对于任何输入),则可以加密消息,直到得到匹配为止。第二,对于任何长度的消息,都存在一个明显的鸽子洞问题。除非关系是一对一的,否则不能将所有可能的X字节消息加密到X字节输出中,这就要求它是确定性的,由于我前面解释的原因而失败了。
我对random并不特别熟悉,但通常使用ECC进行加密(IES)的方法涉及两个随机步骤。首先,要加密的数据使用随机对称密钥加密。第二,在对称密钥的加密中使用随机的公共/私有ECC密钥对。这既解释了不确定性,也解释了长度。
发布于 2013-08-31 09:35:46
根据使用的具体加密方法,可以使用随机密钥对数据进行加密,使用对称算法,然后用私钥加密该密钥。
它还可能在加密前使用某种随机填充将1字节值扩展到更大的大小。
快速查看他们的代码,就会发现没有已知块密码的类,但确实对密码流进行了多次引用.
https://crypto.stackexchange.com/questions/10097
复制相似问题