C#(加密)Des很容易被破解吗?
希望对密码加密算法比较了解的用通俗的语言回答下.还有顺便说下Aes加密算法.为什么Aes取带Des,仅仅是Aes更安全,效率更高?Aes是否容易被破解呢?路过的谢谢了....
希望对密码加密算法比较了解的用通俗的语言回答下.
还有顺便说下Aes加密算法.
为什么Aes取带Des,仅仅是Aes更安全,效率更高?
Aes是否容易被破解呢?
路过的谢谢了. 展开
还有顺便说下Aes加密算法.
为什么Aes取带Des,仅仅是Aes更安全,效率更高?
Aes是否容易被破解呢?
路过的谢谢了. 展开
展开全部
用C#做加密相对其他语言而言,是比较容易被破解的
C#是一种中间语言,做加密有一个致命的问题,它可以被完全逆向成源代码
因此无论做什么加密,加密代码都可以呈现在破解者面前
算法本身并没有问题(当然AES安全性确实高于DES,不论是密钥长度、抗分析能力都远超后者),可是代码变成白盒,算法再厉害,解密的密钥直接可以从代码中分析出来,算法也就没有意义了。
因此算法部分最好是用C/C++这些可以直接运行的,目标文件为机器码级别的语言开发相对比较安全。
同样作为中间语言的java、python也有这种缺点。
C#是一种中间语言,做加密有一个致命的问题,它可以被完全逆向成源代码
因此无论做什么加密,加密代码都可以呈现在破解者面前
算法本身并没有问题(当然AES安全性确实高于DES,不论是密钥长度、抗分析能力都远超后者),可是代码变成白盒,算法再厉害,解密的密钥直接可以从代码中分析出来,算法也就没有意义了。
因此算法部分最好是用C/C++这些可以直接运行的,目标文件为机器码级别的语言开发相对比较安全。
同样作为中间语言的java、python也有这种缺点。
展开全部
加密算法跟 C#、或者说跟语言无关。
DES 是通过16轮迭代函数,使得原文混淆+扩散;而 AES 是通过线性混合层(行移位SR以及列混合MC)使得原文扩散,字节代替变换使得原文混淆。
说 DES 不如 AES 原因有几点:1、DES 密钥长度短,只有 56bit,而 AES 密钥长度可以达到 256bit;2、DES 不能对抗差分和线性密码分析;3、DES 支持可变分组长度。
综上三点,导致破解 AES 的难度几何倍数增加(其实光第一条就已经秒杀 DES 了)。但要注意的是,DES 的容易破解是相对的,用穷举法来破解(不考虑彩虹表),就凭你家用机的速度,马力全开的得算个几年的。当然了,计算机也在不断发展,未来要是能出现个1微秒能穷举几万个密钥的芯片了,那 AES 也会被迅速淘汰掉。
DES 是通过16轮迭代函数,使得原文混淆+扩散;而 AES 是通过线性混合层(行移位SR以及列混合MC)使得原文扩散,字节代替变换使得原文混淆。
说 DES 不如 AES 原因有几点:1、DES 密钥长度短,只有 56bit,而 AES 密钥长度可以达到 256bit;2、DES 不能对抗差分和线性密码分析;3、DES 支持可变分组长度。
综上三点,导致破解 AES 的难度几何倍数增加(其实光第一条就已经秒杀 DES 了)。但要注意的是,DES 的容易破解是相对的,用穷举法来破解(不考虑彩虹表),就凭你家用机的速度,马力全开的得算个几年的。当然了,计算机也在不断发展,未来要是能出现个1微秒能穷举几万个密钥的芯片了,那 AES 也会被迅速淘汰掉。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先加密是一种思想方法,与语言本身无关。
什么是DES算法
DES算法为密码体制中的对称密码体制,又被称为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。 明文按64位进行分组,密钥长64位,密钥事实上是56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位, 使得每个密钥都有奇数个1)分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。
DES算法的脆弱性
DES算法具有极高安全性 ,到目前为止,除了用穷举搜索法对DES算法进行攻外,还没有发现更有效的办法。但在DES算法只用到64位密钥中的其中56位, 第8,16,24,…,64位8个位并未参与DES运算 ,因此,在实际应用中, 我们应避开使用第8,16,24,…,64位作为有效数据位,而使用其他的56位作为有效数据位,才能保证DES算法安全可靠地发挥作用。如果不了解这点,把密钥 Key的8,16,24,…,64位 作为有效数据使用,将不能保证DES加密数据的安全性,对运用DES来达到保密作用的系统产生数据被破译的危险,这正是DES算法在应用上的误区,留下了被人攻击、被人破译的极大隐患 。
什么是DES算法
DES算法为密码体制中的对称密码体制,又被称为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。 明文按64位进行分组,密钥长64位,密钥事实上是56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位, 使得每个密钥都有奇数个1)分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。
DES算法的脆弱性
DES算法具有极高安全性 ,到目前为止,除了用穷举搜索法对DES算法进行攻外,还没有发现更有效的办法。但在DES算法只用到64位密钥中的其中56位, 第8,16,24,…,64位8个位并未参与DES运算 ,因此,在实际应用中, 我们应避开使用第8,16,24,…,64位作为有效数据位,而使用其他的56位作为有效数据位,才能保证DES算法安全可靠地发挥作用。如果不了解这点,把密钥 Key的8,16,24,…,64位 作为有效数据使用,将不能保证DES加密数据的安全性,对运用DES来达到保密作用的系统产生数据被破译的危险,这正是DES算法在应用上的误区,留下了被人攻击、被人破译的极大隐患 。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不是C#的问题、只要密码体制是完善的、用什么语言实现安全性都是一样的、当然AES更加安全一点、
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询