识别加密算法

Chr*_*ris 2 encryption

首先,我想问一下你们是否知道使用密钥加密数据的加密算法,但没有密钥可以解密数据.这对我来说似乎不太可能,如果不是不可能,那么对不起,如果这是一个愚蠢的问题.

我的最后一个问题是,你说在加密之前你可以访问纯文本数据,用于加密纯文本数据的密钥,以及产生的加密数据,会弄清楚用于加密数据的算法是否可行?

fra*_*yer 8

首先,我想问一下你们是否知道使用密钥加密数据的加密算法,但没有密钥可以解密数据.

没有.有些算法使用不同的密钥来解密而不是加密,但是无密钥方法将依赖于算法的保密性,通常被认为是一个糟糕的想法.

我的最后一个问题是,你说在加密之前你可以访问纯文本数据,用于加密纯文本数据的密钥,以及产生的加密数据,会弄清楚用于加密数据的算法是否可行?

很可能是的,特别是考虑到关键.一个好的加密算法依赖于密钥的保密性和单独的密钥.见kerckhoff的原理.

此外,如果使用通用算法,它将是一个简单的反复试验,除了cryptotext之外,通常还会附带元数据,告诉您算法细节.

编辑:根据评论,您可能正在考虑数字签名(仅在发送方需要秘密),哈希算法(不需要密钥但不需要加密),或者零知识证明(可以证明)知道秘密而不透露它).


Zac*_*ena 5

抽象地说,我们可以这样想到加密系统:

               -------------------
plaintext ---> | algorithm & key | ---> ciphertext
               -------------------
Run Code Online (Sandbox Code Playgroud)

系统必须保证以下内容:

decrypt(加密(明文,算法,密钥),算法,密钥)=明文

首先,我想问一下你们是否知道使用密钥加密数据的加密算法,但没有密钥可以解密数据.

是的,在这样的系统中,关键是多余的; 所有的"秘密"都在于算法.

我的最后一个问题是,你说在加密之前你可以访问纯文本数据,用于加密纯文本数据的密钥,以及产生的加密数据,会弄清楚用于加密数据的算法是否可行?

在实践中,您可能只有很小的算法空间,因此简单的强力搜索是可行的.但是,可能有多个算法适合给定的信息.请考虑以下示例:

我们定义了以下加密和解密操作,其中明文,密文,算法和密钥是实数(假设算法非零):

加密(明文,算法,密钥)=算法x(明文+密钥)=密文

decrypt(密文,算法,密钥)=密文/算法 - 密钥=明文

现在,假设明文+键= 0.对于任何算法选择,我们都有密文= 0.因此,我们无法推断出所使用的算法.