当前位置:  开发笔记 > 编程语言 > 正文

识别加密算法

如何解决《识别加密算法》经验,为你挑选了2个好方法。

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

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



1> frankodwyer..:

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

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

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

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

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

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



2> Zach Scriven..:

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

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

系统必须保证以下内容:

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

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

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

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

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

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

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

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

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

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有