密码学基础(四)算法的安全性

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-06-29
本文首发于 2017-10-30 16:06 原地址:http://www.blockchainbrother.com/article/83

此次和大家谈一谈算法的安全性。根据被破译的难易程度,不同的密码算法具有不同的安全等级。 区块链技术当中一个很重要的组成部分就是密码学,作为从事区块链研究的工程技术人员,应该对密码学有一定的了解。现我想分享一些密码学的基本概念以供交流学习,大家共同学习,更加充实对区块链技术的理解。

算法的安全性

根据被破译的难易程度,不同的密码算法具有不同的安全等级。如果破译算法的代价大于加密数据的价值,那么一般不会有人想去破译它,即你可能是“安全的”。如果破译算法所需的时间比加密数据保密的时间更长,那么你可能也是“安全的”。如果用单密钥加密的数据量比破译算法需要的数据量少得多,那么你也可能是“安全的”。

在这里说“可能”,是因为在密码分析中总有新的突破。另一方面,随着时间的推移,大多数数据的价值会越来越小。

Lars Knudsen曾把破译算法分为不同的类别,安全性的递减顺序为:

(1) 全部破译 (total break)。密码分析者找出密钥K,这样就能得到

(2) 全盘推导 (global deduction)。密码分析者找到一个替代算法A,在不知晓密钥K的情况下等价于得到

(3) 实例(或局部)推导 (instance (or local) deduction)。密码分析者从截获的密文中找出明文。

(4) 信息推导 (information deduction)。密码分析者获得一些有关密钥或明文的信息。这些信息可能是密钥的几位、有关明文格式的信息等。

若不论密码分析者获得多少密文,都没有足够的信息恢复出明文,那么这个算法就是 无条件保密的 (unconditionally secure)。事实上,只有一次一密乱码本,才是不可破的(给出无限多的资源仍然不可破)。所有其他的密码系统在唯密文攻击中都是可破的,只要简单的一个接一个的去尝试每种可能的密钥,并检查所得明文是否有意义,这种方法称为 蛮力攻击 (brute-force attack)。

在密码学中,更关心在计算上不可破译的密码系统。如果算法用(现在或者将来)可得到的资源都不能破译,这个算法则被认为是计算安全的(computationally secure)。准确的说,“可用资源”就是公开数据的分析整理。

可以采用不同的方式衡量攻击方法的复杂性:

1) 数据复杂性 (data complexity)。用于攻击输入所需要的数据量。

2) 处理复杂性 (processing complexity)。完成攻击所需要的时间,也经常称作 工作因素 (work factor)。

3) 存储需求 (storage requirement)。进行攻击所需要的存储量。

作为一个法则,攻击的复杂性取这三个因数的最小值。有些攻击包括这三种复杂性的折中:存储需求越大,攻击可能越快。

复杂性用数量级来表示。如果算法的处理复杂性是2的128次方,那么破译这个算法也需要2的128次方次运算(这些运算可能非常复杂和耗时)。假设我们拥有足够的计算速度去完成每秒100万次的运算,并且用100万个并行处理器完成这个任务,那么仍然需要花费10的19次方年以上才能找到密钥。(而这是宇宙年龄的10亿倍)。

当攻击的复杂性是常数时(除非一些密码分析者发现更好的密码分析攻击),就只取决于计算能力了。在过去的半个世纪中,计算能力已经得到了显著的提高,并且现在这种趋势还在发展。许多的密码分析攻击用并行处理的机制进行计算非常理想,一个任务可以分成亿万个子任务,并且处理之间不需要相互作用。一种算法在现有技术条件下不可破译就草率的宣称是安全的,是很冒险的。从中我们可以得出,一个好的密码系统应设计成能抵御未来多年后的计算能力的发展。

注: 上面提到的 一次一密乱码本 (one-time pad),是由Major Joseph Mauborgne 和AT&T公司的Gilbert Vernam在1917年发明的。(事实上,一次一密乱码本是门限方案的特殊情况)感兴趣的朋友可以查阅相关资料深入了解,在此我就不展开描述了。

此次和大家谈一谈算法的安全性。根据被破译的难易程度,不同的密码算法具有不同的安全等级。 区块链技术当中一个很重要的组成部分就是密码学,作为从事区块链研究的工程技术人员,应该对密码学有一定的了解。现我想分享一些密码学的基本概念以供交流学习,大家共同学习,更加充实对区块链技术的理解。

算法的安全性

根据被破译的难易程度,不同的密码算法具有不同的安全等级。如果破译算法的代价大于加密数据的价值,那么一般不会有人想去破译它,即你可能是“安全的”。如果破译算法所需的时间比加密数据保密的时间更长,那么你可能也是“安全的”。如果用单密钥加密的数据量比破译算法需要的数据量少得多,那么你也可能是“安全的”。

在这里说“可能”,是因为在密码分析中总有新的突破。另一方面,随着时间的推移,大多数数据的价值会越来越小。

Lars Knudsen曾把破译算法分为不同的类别,安全性的递减顺序为:

(1) 全部破译 (total break)。密码分析者找出密钥K,这样就能得到

(2) 全盘推导 (global deduction)。密码分析者找到一个替代算法A,在不知晓密钥K的情况下等价于得到

(3) 实例(或局部)推导 (instance (or local) deduction)。密码分析者从截获的密文中找出明文。

(4) 信息推导 (information deduction)。密码分析者获得一些有关密钥或明文的信息。这些信息可能是密钥的几位、有关明文格式的信息等。

若不论密码分析者获得多少密文,都没有足够的信息恢复出明文,那么这个算法就是 无条件保密的 (unconditionally secure)。事实上,只有一次一密乱码本,才是不可破的(给出无限多的资源仍然不可破)。所有其他的密码系统在唯密文攻击中都是可破的,只要简单的一个接一个的去尝试每种可能的密钥,并检查所得明文是否有意义,这种方法称为 蛮力攻击 (brute-force attack)。

在密码学中,更关心在计算上不可破译的密码系统。如果算法用(现在或者将来)可得到的资源都不能破译,这个算法则被认为是计算安全的(computationally secure)。准确的说,“可用资源”就是公开数据的分析整理。

可以采用不同的方式衡量攻击方法的复杂性:

1) 数据复杂性 (data complexity)。用于攻击输入所需要的数据量。

2) 处理复杂性 (processing complexity)。完成攻击所需要的时间,也经常称作 工作因素 (work factor)。

3) 存储需求 (storage requirement)。进行攻击所需要的存储量。

作为一个法则,攻击的复杂性取这三个因数的最小值。有些攻击包括这三种复杂性的折中:存储需求越大,攻击可能越快。

复杂性用数量级来表示。如果算法的处理复杂性是2的128次方,那么破译这个算法也需要2的128次方次运算(这些运算可能非常复杂和耗时)。假设我们拥有足够的计算速度去完成每秒100万次的运算,并且用100万个并行处理器完成这个任务,那么仍然需要花费10的19次方年以上才能找到密钥。(而这是宇宙年龄的10亿倍)。

当攻击的复杂性是常数时(除非一些密码分析者发现更好的密码分析攻击),就只取决于计算能力了。在过去的半个世纪中,计算能力已经得到了显著的提高,并且现在这种趋势还在发展。许多的密码分析攻击用并行处理的机制进行计算非常理想,一个任务可以分成亿万个子任务,并且处理之间不需要相互作用。一种算法在现有技术条件下不可破译就草率的宣称是安全的,是很冒险的。从中我们可以得出,一个好的密码系统应设计成能抵御未来多年后的计算能力的发展。

注: 上面提到的 一次一密乱码本 (one-time pad),是由Major Joseph Mauborgne 和AT&T公司的Gilbert Vernam在1917年发明的。(事实上,一次一密乱码本是门限方案的特殊情况)感兴趣的朋友可以查阅相关资料深入了解,在此我就不展开描述了。

于中阳 Mercina-zy

  • 密码学基础(四)算法的安全性
    答:区块链技术当中一个很重要的组成部分就是密码学,作为从事区块链研究的工程技术人员,应该对密码学有一定的了解。现我想分享一些密码学的基本概念以供交流学习,大家共同学习,更加充实对区块链技术的理解。 算法的安全性 根据被破译的难易程度,不同的密码算法具有不同的安全等级。如果破译算法的代价大于加密数据的价值,那...
  • 传统密码学的理论基础是什么
    答:传统密码学的理论基础是数学和统计学原理。数学原理在传统密码学中发挥着至关重要的作用。例如,在古典密码学中,凯撒密码(Caesar cipher)就是一个基于数学加法原理的简单替换密码。凯撒密码通过将字母表中的每个字母向前或向后移动固定数量的位置来加密文本。这种加密方式实际上是数学运算在字符集上的一种...
  • 密码学基础
    答:1、密码学的基础是保护数据和通信的安全性。它涉及使用算法和协议来确保信息在传输和存储过程中不被未授权的人或恶意方获取或篡改。密码学的基本原理包括加密和解密,其中加密是将明文转换为密文,而解密则是将密文转换回明文。2、密钥需要经常更新。每当有成员离开用户组时,所有涉及这个成员的密钥都需要...
  • 密码学基础
    答:​ 任何密码系统的应用都需要在安全性和运行效率之间做出平衡,密码算法只要达到计算安全要求就具备了实用条件,并不需要实现理论上的绝对安全。1945年美国数学家克劳德·E·香农在其发布的《密码学的数学原理》中,严谨地证明了一次性密码本或者称为“弗纳姆密码”(Vernam)具有无条件安全性。但这种绝对安全的加密方式在...
  • 密码系统安全性的定义有几种?它们的含义是什么
    答:统计分析法 统计分析攻击就是指密码分析者根据明文、密文和密钥的统计规律来破译密码的方法。数学分析法 数学分析攻击是指密码分析者针对加解密算法的数学基础和某些密码学特性,通过数学求解的方法来破译密码。数学分析攻击是对基于数学难题的各种密码算法的主要威胁。
  • 密码学相关知识梳理
    答:按密码体制划分:对称密码体制密码学和非对称密码体制密码学对应的有对称密码算法和非对称密码算法。消息摘要算法又称散列算法,其核心在于散列函数的单向性,即通过散列函数可获得对应的散列值,但不可通过该散列值反推其原始信息,这是消息摘要算法的安全性的根本所在,我们通常使用该算法判断数据的完整性。...
  • 密码学基本理论
    答:国内密码算法也在不断发展,如SM1,采用128位分组对称加密;SM2是基于椭圆曲线的公钥加密,256位的素数域椭圆曲线确保了更高的安全性;SM3提供256比特的杂凑值,用于数字签名和消息认证;SM4则以128位分组和32轮迭代结构为特色;SM9作为标识密码,私钥由KGC生成,支持丰富的安全功能。在数字世界中,签名...
  • 公钥密码系统及RSA公钥算法
    答:它的安全性是基于大整数素因子分解的困难性,而大整数因子分解问题是数学上的著名难题,至今没有有效的方法予以解决,因此可以确保RSA算法的安全性。RSA系统是公钥系统的最具有典型意义的方法,大多数使用公钥密码进行加密和数字签名的产品和标准使用的都是RSA算法。 RSA算法是第一个既能用于数据加密也能用于数字签名的...
  • 密码应用的安全性评估有哪些要求?
    答:4. 有效性评估关注密码应用是否能够确保网络与信息系统的安全、稳定和可靠运行,防止未经授权的访问和数据泄露。5. 密码学是一门涉及密码设计和分析的学科,它包括对称密码学、非对称密码学、公钥基础设施(PKI)等多个领域。6. 对称密码学使用相同的密钥进行加密和解密,速度快且安全,但密钥的分发和管理...
  • 密码学基础:AES加密算法
    答:AES,全称Advanced Encryption Standard,作为当代最强大的加密算法之一,它的出现是为了解决DES时代的安全需求。Rijndael算法凭借其128位分组和128/192/256位密钥的灵活性,成功胜出,尤其在MixColumn层,其巧妙运用了伽罗瓦域的数学特性。伽罗瓦域的数学基础 素域,如GF(p),是有限域的特例,元素个数为...