识别加密算法

问题描述:

首先,我想问问您是否有人知道使用密钥加密数据的加密算法,但没有解密数据的密钥。这似乎不太可能,如果不是不可能的话,那么对不起,如果这是一个愚蠢的问题。识别加密算法

我的最后一个问题是,假设您在加密之前可以访问纯文本数据,用于加密纯文本数据的密钥以及生成的加密数据将计算出用于加密数据的算法可行?

+1

为什么用密钥进行加密如果有人可以解密它?你不能只是发送明文,然后呢?如果你只是想打乱你的数据,使用ROT13 ... – 2008-12-31 16:42:44

我不相信有这样的算法,会使用密钥进行加密,但不解密。 (傻的答案就像一个26字符Caesar cipher一边...)

你的第二个问题,是的;这取决于你愿意花多少时间在它上面。在理论密码学中,假定算法总是可以确定的。无论是通过盗窃算法还是物理机器,或者在您的情况下使用纯文本和密文对。

首先,我想问一下 如果你们知道,使用一个密钥来加密 数据的加密算法 的,但没有密钥解密 数据。

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

我的最后一个问题是,说你有 之前 访问纯文本数据是加密的,用于 加密的明文数据的密钥,并且 产生的加密数据,将 搞清楚哪些算法用于对数据加密 是否可行?

最有可能的是,尤其是考虑的关键。一个好的加密算法依赖于密钥的保密性和密钥本身。请参阅kerckhoff's principle

此外,如果使用常见的算法,它将是一个简单的尝试和错误的问题,除了cryptotext通常伴随着元数据告诉你算法的细节。

编辑:根据意见,你可能会想的digital signature(仅需要在发送侧的秘密),一个hash algorithm(它不需要密钥,但不加密),或zero-knowledge proof(能证明知识的秘密而不透露它)。

首先,我想问你们是否有人知道使用密钥加密数据的加密算法,但没有解密数据的密钥。

你想说什么的?提出一对符合规范要求的函数是微不足道的,但如果不知道意图,很难提供更有用的答案。

说,你有机会获得明文数据被加密之前,使用纯文本加密数据的密钥,并将得到的加密数据,会搞清楚哪些算法用于加密数据是可行的?

如果算法是好的输出将无法区分随机噪声,所以没有分析解决方案。实际上,广泛使用的只有很多可信算法。反过来尝试每一个都会很快,但是会因为一个实现在字节顺序(小端到大端),密钥派生(如果你有一个密码短语实际的加密密钥本身),加密模式和填充。

正如frankodwyer指出的那样,这种情况不属于常见的威胁模型。这对你有利,因为它使算法更有可能是一个众所周知的算法。

抽象地,我们可以认为加密系统是这样的:

   ------------------- 
plaintext ---> | algorithm & key | ---> ciphertext 
       ------------------- 

系统必须保证以下几点:

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

首先,我想问一下 如果你们知道,使用一个密钥来加密 数据的加密算法 的,但没有密钥解密 数据。

是的,在这样的系统中,密钥是多余的;所有“秘密”在于算法。

我的最后一个问题 的,说你有机会获得纯 文本数据被加密之前,使用纯文本加密 数据,并将得到的加密 数据 键,会搞清楚哪些 用于加密数据的算法是 可行吗?

实际上,您可能只有一小部分算法空间,所以简单的蛮力搜索是可行的。但是,可能有多个算法符合给定的信息。请看下面的例子:

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

加密(明文算法,键)=算法X(明文+键)=密文

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

现在,假设明文+密钥= 0。对于算法的任何选择,我们都有密文= 0。因此,我们不能推断使用的算法。

如果没有解码器中已知的密钥,最好的解决方法是添加一些默默无闻的密码。例如,如果解码算法的第一步是除去每十个字符以外的所有内容,那么您的编码密钥可用于为每十个字符中的九个生成一些随机垃圾。因此,对于不同的密钥,您可以实现不同的编码结果,这些编码结果将被解码为相同的消息,而解码器不需要密钥。

但是,这并没有增加太多真正的安全性,不应该仅仅依靠保护关键数据。我只是在想,如果你只是试图证明一个观点或者增加一个安全级别,那么我可能会这样做。