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

   更新日期:2024.06.02
本文首发于 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

  • 17321071615 :密码学基础(四)算法的安全性
    房时壮2524 :答:区块链技术当中一个很重要的组成部分就是密码学,作为从事区块链研究的工程技术人员,应该对密码学有一定的了解。现我想分享一些密码学的基本概念以供交流学习,大家共同学习,更加充实对区块链技术的理解。 算法的安全性 根据被破译的难易程度,不同的密码算法具有不同的安全等级。如果破译算法的代价大于加密数据的价值,那...
  • 17321071615 :密码技术的安全性表现在哪几方面?求大神帮助
    房时壮2524 :答:希望能帮到你2.1 对称密码 对称密码技术也叫做单钥或常规密码技术,其包括分组密码技术和流密码技术这两个重要的分支。在公钥密码技术出现之前,它是惟一的加密类型。2.1.1 基本原理前不久,美国计算机安全专家又提出了一种新的安全框架,除机密性、完整性、可用性、真实性之外,又增加了实用性和占有性,认为这样才能解释...
  • 17321071615 :rsa算法的安全性基于什么1994年sh or算法的提出威胁到rsa算法的安全
    房时壮2524 :答:量子计算机是基于量子力学原理的计算机,它可以同时处理多个计算状态,相比传统计算机有更高的计算能力。如果量子计算机可以实现,并且应用于破解RSA算法等密码学算法,那么RSA算法的安全性就会受到威胁。1994年,SHOR算法的提出引起了RSA算法的安全性问题,因为它可以在多项式时间内破解RSA算法。这引起了人们对于R...
  • 17321071615 :密码系统的安全性
    房时壮2524 :答:(1)一个是所使用密码算法本身的保密强度。密码算法的保密强度取决于密码设计水平、破译技术等。可以说一个密码系统所使用密码算法的保密强度是该系统安全性的技术保证。(2)另外一个方面就是密码算法之外的不安全因素。因此,密码算法的保密强度并不等价于密码系统整体的安全性。—个密码系统必须同时完善...
  • 17321071615 :rsa算法的安全性基于什么1994年
    房时壮2524 :答:rsa算法的安全性基于大整数因子分解问题。RSA算法建立的理论基础是大数分解和素数检测 。RSA是1977年由罗纳德·李维斯特、阿迪·萨莫尔和伦纳德·阿德曼一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。RSA公开密钥密码体制是一种使用不同的加密密钥与解密密钥,“...
  • 17321071615 :密码学HASH函数的安全性要求是有哪些?
    房时壮2524 :答:1、已知哈希函数的输出,要求它的输入是困难的,即已知c=Hash(m),求m是困难的。这表明函数应该具有单向性。2、已知m,计算Hash(m)是容易的。这表明函数应该具有快速性。3、已知,构造m2使Hash(m2)=c1是困难的。这表明函数应该具有抗碰撞性。4、c=Hash(m),c的每一比特都与m的每一比特...
  • 17321071615 :试比较对称加密算法与非对称加密算法在应用中的优缺点?传统密码体制...
    房时壮2524 :答:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。3、传统密码体制 优点 由于DES加密速度快,适合加密较长的报文。缺点 通用密钥密码体制的加密密钥和解密密钥是通用的,即发送方和接收方使用同样密钥的密码体制。4、公钥密码体制 优点 RSA算法的加密...
  • 17321071615 :密码学基础
    房时壮2524 :答:​ 计算上安全: ​ 破译的代价超出信息本身的价值,破译所需的时间超出信息的有效期。 ​ 任何密码系统的应用都需要在安全性和运行效率之间做出平衡,密码算法只要达到计算安全要求就具备了实用条件,并不需要实现理论上的绝对安全。1945年美国数学家克劳德·E·香农在其发布的《密码学的数学原理》中,严谨地证明了...
  • 17321071615 :“DES”和“AES”算法的比较,各自优缺点有哪些?
    房时壮2524 :答:DES算法优点:DES算法具有极高安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。DES算法缺点:1、分组比较短。2、密钥太短。3、密码生命周期短。4、运算速度较慢。AES算法优点:1、运算速度快。2、 对内存的需求非常低,适合于受限环境。3、分组长度和密钥长度设计...
  • 17321071615 :单向散列函数具备的特征有
    房时壮2524 :答:单向散列函数是一种常用的密码学基础技术,其具备以下特征:1、不可逆性 单向散列函数是一种不可逆的函数,即无法通过输出值计算出毕孝输入值。这种不可逆性是单向散列函数最重要的特征之一,保证了密码学安全性。2、固定输出长冲数局度 单向散列函数的输出长度是固定的,不受输入长度的影响。这种固定...
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网