英文:
Why JDK doesn't provide IGE block cipher mode
问题
JDK提供了各种块密码模式的实现,例如CBC、CTR、ECB。至于标题中提到的,是否有关于为什么不提供IGE模式的(可能在某处有文档记录)的原因?
英文:
The JDK provides various block cipher modes implementations, e.g. CBC, CTR, ECB.
As per title, is there a (maybe documented somewhere) reason why IGE mode is not provided?
答案1
得分: 2
Java包含了大量的密码学功能作为标准运行时。然而,很明显它仍然主要受到标准的驱动,特别是TLS / X.509。这很容易看出:密钥存储区以前只用于存储(RSA)私钥及其相关链。默认证书存储包含所有必要的根证书等。
还有一些更为人熟知的用于秘密密钥加密的块密码和模式。然而,这些都是由NIST标准化的模式,并包含在大多数库中。它不包括许多其他密码或模式。包括一种专为特定用途设计的模式,如IGE,是没有意义的。尽管IGE和特别是双向IGE在提供“合理否认”方案方面有一定意义,但它们的误差传播特性在经过身份验证的加密时有点丧失。另请参阅此问题和答案(请注意提问该问题的人)。
但是,没有什么可以阻止您在提供程序中创建一个,并以这种方式定义自己的模式。请注意,如果您想将其与特定的Java商业发布版本一起包含,可能需要对该提供程序进行签名。
英文:
Java contains a lot of cryptography for a standard runtime. However, it is pretty clear that it is still mainly driven by standards, and particularly TLS / X.509. It is pretty easy to see this: key stores used to only store (RSA) private keys with their chains attached. The default certificate store contains all the necessary root certificates etc.
There are a few more well known block ciphers and modes implemented for secret key encryption. However, these are all modes standardized by NIST and included in most libraries. It doesn't include many other ciphers or modes. Including a mode that has been specifically designed for a niche purpose such as IGE doesn't make sense. Although IGE and specifically bi-IGE make some sense in schemes providing plausible deniability their error propagation properties are kind of lost in the days of authenticated encryption. See also this question and answer (note the person asking the question).
However, nothing is preventing you to create one in a provider, and define your own mode that way. Note that you may need to sign that provider if you want to include it with specific commercial releases of Java.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论