使用 elgamal 密码系统的加密文件大小是多少?

what is encrypted file size using elgamal cryptosystem?

使用椭圆曲线加密后的 elgamal 加密文件大小是多少?比方说,一个 1mb 的普通文本文件?

我得到一个 250mb 的加密文件大小?比正常标准低多少?

您应该不仅对可以超过密钥大小的任何字节数使用非对称加密,减去一定的最小开销。此开销取决于所使用的算法,例如 RSA PKCS#1 填充开销最少需要 11 个字节,而 OAEP 最少需要大约 42 个字节。如果您直接使用非对称基元,您将获得此开销 对于每个 keylength - overhead 数据块

基本上,为了安全起见,您应该始终加密少量字节。一般来说,这意味着 hybrid cryptosystem 部署用于任何非平凡的字节数(并且,为了保持兼容性,通常也用于平凡的字节数)。

混合密码系统为每条要加密的消息随机生成对称会话或数据密钥。此对称密钥加密数据。对称密钥本身也使用非对称算法加密(或者,更准确地说,包装)。然后发送两个元素,为对称加密和非对称算法的输出大小(通常是密钥大小)产生 0 到 32 字节的小开销。解密解开对称密钥,然后解密密文。

如您所见,混合密码系统在密文大小和 CPU 时间方面都更加高效。非对称加密比对称加密效率低得多。

至于使用的算法,ElGamal 是一个相当古老的方案。我建议将 RSA OAEP 作为密钥大小为 4096 位的非对称原语,将 AES-GCM 作为对称原语。由于非对称和对称之间的差异,该方案仍然比 ElGamal 更快。