首先,我想问一下是否有人知道一种加密算法,它使用密钥加密数据,但不需要密钥解密数据。对我来说,这似乎非常不可能,甚至是不可能的,所以如果这是一个愚蠢的问题,请原谅。
我的最后一个问题是,假设您可以在对数据进行加密之前访问明文数据,用于加密明文数据的密钥以及生成的加密数据,那么确定使用哪种算法加密数据是否可行?
首先,我想问一下是否有人知道一种加密算法,它使用密钥加密数据,但不需要密钥解密数据。对我来说,这似乎非常不可能,甚至是不可能的,所以如果这是一个愚蠢的问题,请原谅。
我的最后一个问题是,假设您可以在对数据进行加密之前访问明文数据,用于加密明文数据的密钥以及生成的加密数据,那么确定使用哪种算法加密数据是否可行?
首先,我想问一下,你们是否知道一种加密算法,它使用密钥来加密数据,但不需要密钥来解密数据。
没有。虽然有一些算法在解密和加密时使用不同的密钥,但无需密钥的方法将依赖于算法的保密性,这通常被认为是一个不好的想法。
我的最后一个问题是,假设您可以访问加密前的明文数据、用于加密明文数据的密钥以及生成的加密数据,那么确定用于加密数据的算法是否可行?
很可能是的,特别是考虑到密钥。一个好的加密算法仅依赖于密钥的保密性。请参见克尔克霍夫原则。
此外,如果使用了常见的算法,那么试错就会变得简单,而且加密文本通常伴随有元数据,告诉您算法的细节。
< p > < em >编辑:根据评论,您可能在考虑数字签名(仅在发送方需要秘密),哈希算法(不需要密钥但不是加密)或零知识证明(可以证明知道一个秘密而不泄漏它)。< /em > < /p >抽象地说,我们可以这样考虑加密系统:
-------------------
plaintext ---> | algorithm & key | ---> ciphertext
-------------------
如果在解码器中没有已知的密钥,你能做的最好的事情就是增加一点点的混淆。例如,如果解码算法的第一步是除了每十个字符之外的所有内容都被剥离掉,那么你的编码密钥可以用于为每十个字符中的九个提供一些随机垃圾数据。因此,使用不同的密钥,您可以实现不同的编码结果,这些结果将被解码为相同的消息,而解码器无需密钥。
然而,这并没有增加太多真正的安全性,不应该仅仅依赖它来保护关键数据。我只是想到了一个可能能够这样做的例子,如果你只是想证明一点或者增加一层安全性,那么也许可以这么做。
我不相信有这样一种算法,它可以使用密钥进行加密,但不能用同样的密钥进行解密。(除了像26个字符的凯撒密码这样的愚蠢答案...)
对于你的第二个问题,是的;这只取决于你愿意花多少时间。在理论密码学中,假定可以始终确定算法。无论是通过窃取算法或物理机器,还是像你的情况一样拥有明文和密文对。