本文原创 李昊轩 微众银行区块链 ————密码学技术易守难攻,困难性理论当居首功!

欢迎关注公众号:VenusBlockChain 致力于区块链技术研究,传播区块链技术和解决方案、区块链应用落地、区块链行业动态等。

1.开篇

隐私保护为何选用密码学算法?密码学算法背后有哪些神奇的数学理论?3何时比9大?计算可逆性错觉究竟是如何在数学领域被打破?

2.神奇的“不对称性”

在现代密码学中,关于不对称性,大家最熟悉的概念莫过于公钥和私钥。以加密通信为例,主人公小华要向他的朋友美丽通过加密的方式发送一份电子邮件,可以先找到美丽的公钥,使用公钥对邮件内容进行加密,并将加密后的得到密文发送给美丽。美丽收到邮件内容的密文之后,通过自己的私钥进行解密,最终得到邮件内容的明文。

以上过程中,密码学算法神奇的不对称性体现在以下问题中:

  • 为什么只有美丽可以解密邮件内容?
  • 为什么其他人不能通过美丽的公钥反推出她的私钥?

这些问题的答案,都要归结于密码学中的计算困难性理论。

3.计算困难性理论

在隐私保护场景中,计算困难性理论具体表现为,对同一隐私数据主体,通过不同计算路径,获得相同信息的计算难度具有不对称性。不对称性中,相对容易的计算方式被用来构造授权的数据访问,而困难的计算方式被用来避免非授权的数据泄露。

构造这样的不对称性的方式有很多,最经典的方式之一,就是千禧年七大难题之一——P和NP问题。

P问题是确定性图灵机,即通用计算机计算模型,在多项式时间(O(nk))(O(n^k))(O(nk))内可以计算获得答案的一类问题。NP问题是确定性图灵机在多项式时间内可以验证答案的正确性,但不一定能计算出答案的一类问题。

关于同一份答案,验证过程比计算过程要容易很多,由此我们可以构造出密码学算法所需要的计算难度不对称性。

NP问题是否能够通过有效的多项式时间算法转化成P问题,由此破解计算难度不对称性?目前学术界尚无定论。

理论研究进一步表明,对于NP问题集合中的核心问题,即NP完全问题,如果能够找一个有效的多项式时间算法来解决任何一个NP完全问题,那其他所有NP问题都可以基于这个算法来构造出有效的多项式时间算法。由此,之前提到的计算难度不对称性将不复存在。

幸运的是,经过将近70年的科学探索,这样的算法并没有被发现。在有限时间内,现代计算机难以求解这些问题的答案,所以现代密码学可以比较安全地基于这些NP完全问题来构造有效的密码学算法。

4.神奇的“计算困难问题”

形象地讲,计算困难性理论的核心就是构造一个迷宫,如果不知道捷径,是很难到达出口的。

我们日常所用的各类密码学算法,其有效性都与这一理论息息相关,这里重点以非对称密码学算法为例,介绍其中经典的迷宫构造蓝图,即三大计算困难问题:

  • 大数分解困难问题
  • 离散对数困难问题
  • 椭圆曲线上的离散对数困难问题
4.1.大数分解困难问题

给定两个大素数ppp和qqq,计算n=p∗qn=p*qn=p∗q是容易的。然而,给定nnn,求解ppp、qqq则是困难的。

整数的素数分解是数论中最著名的问题之一,目前,求解素数分解最有效的方法称为数域筛法,即通过构造代数数域不停地对整数可能的集合进行迭代运算。

目前,大整数分解问题仍不存在更有效的分解方法,因此密码学一些方案利用大数分解困难问题构造相应协议,如RSA系列算法将其困难性规约为大数分解困难问题。如果大整数分解困难问题被破解,使用RSA密码方案保护的隐私数据也会相应遭到破译。

4.2.离散对数困难问题

在模为n,生成元为g的有限域中,给定整数a,计算ga(modn)=bg^a(modn) = bga(modn)=b是容易的。然而,给定b和g计算a则是困难的。

许多新接触密码学的读者都会对离散对数问题产生计算可逆性的错觉,看起来就是进行一次log运算的事情,但真相并非如此。

在实数域,元素有一个非常重要的性质,全序关系,所以很容易比较大小。例如,在实数域中9>2且3>2,一定能推出9>2。

在计算log2(9)log2(9)log2(9)时,计算机会对以元素9为输入的函数结果进行二分查找法,首先计算(9/2)2(9/2)^2(9/2)2和9进行比较,再计算((0+9/2)/2)2...和9进行比较,再计算((0+9/2)/2)^2...和9进行比较,再计算((0+9/2)/2)2...。通过不停比较元素大小的性质,从而计算log最终的结果。

然而,在有限域中,元素之间并不存在全序关系。在模为7的有限域中,可以看到诸如9等于2,3比9大的关系存在。

因此,无法通过有效的算法计算上述过程中的a。许多著名的密码协议安全性都是建立在离散对数困难性上的,如Diffie-Hellman密钥交换协议、ElGamal加密、DSA算法等。

4.3.椭圆曲线上的离散对数困难问题

当前,椭圆曲线密码学算法是当前密码应用的主流,每一个隐私数据都能以坐标(x, y)的形式,表示为椭圆曲线上的一个点。与一般离散对数困难问题类似,椭圆曲线上的离散对数困难问题可以表示为:

在有限域F上的椭圆曲线群,点PPP为曲线上某个点,给定整数aaa,计算a∗P=Qa*P=Qa∗P=Q是容易的。然而,根据PPP和QQQ计算aaa则是困难的。

有别于普通代数运算,椭圆曲线上的点运算定义如下:

可以看到,椭圆曲线上的点运算和普通实数域上的运算有很大差别,当前尚未存在一种有效的算法对椭圆曲线离散对数问题进行破译。目前,最常用的公钥密码算法体系ECDSA、EdDSA、国密SM2等都是基于这一困难问题。

5.客观比较不同的密码学算法

由于不同的密码学算法构造使用了不同的困难问题,对应地,不同的困难问题也势必会引入不同的安全假设。理解这些安全假设,是企业进行技术选型,客观地判断基于不同密码学算法构造隐私保护方案孰强孰弱的关键。这里,我们需要进一步引入“安全参数”的概念。

安全参数是一个衡量密码学算法保护隐私数据强度的数值。对位于“同一等级"的安全参数值来说,不同密码学算法的安全级别基本相同,即面对已知最有效的攻击方式,算法被破解导致隐私数据泄露的概率相同。一般情况下,安全参数值的大小,直接体现为密钥长度的长短。在同一等级下,安全参数值有大有小,对应的密钥长度也有长有短。

基于不同困难问题的密码学算法密钥最小长度,美国国家标准与技术研究院NIST作如下推荐,其中,每个单元格表示需要使用密钥长度的最小比特数。

通过上表,我们可以看到**,即便密钥长度相同,选用不同困难问题获得的安全级别是不同的。一般而言,基于同一困难问题构造的技术方案,密钥长度越长,安全性越高,相应地,系统效率越低**,其中往往也伴随其他系统设计上的取舍。

不同场景应按照业务需求选择适合的技术方案和密钥长度,具体有以下几点需要特别注意:

  • 隐私保护技术方案的安全性取决于其使用的密码学算法实现中最低的安全参数等级。

  • 在未指明安全参数的前提下,进行密码学算法的安全性比较没有实际意义。

  • 如果安全参数值很小,一般表现为对应的密钥长度很短时,无论密码学算法设计多么精妙,实际效果可能都是不安全的。

  • 由于困难问题选用上的差异,密码学算法的理论强度没有最强,只有在满足特定安全假设下的够强,强行比较基于不同困难问题的密码学算法哪个更强通常没有实际意义。

计算困难问题归根结底还是一个计算问题,随着计算机计算能力的增强,或是算法理论研究进展的推进,这些困难问题的安全性都会发生变化。如RSA加密算法,NIST密钥管理准则认为,2010年后,1024位的密钥不再安全,需要增加到2048位的密钥长度,预计其安全有效性可以保持至2030年。

对于企业而言,这里的启示在于,不能简单地认为,隐私保护技术方案现在有效,就保证了10年后依旧有效。无论什么样的隐私保护技术方案都有其时效性。企业如果能够根据权威技术组织推荐的安全参数、算法方案及时更新现有的系统,困难性理论就能够有效保障隐私保护技术方案的有效性历久如新。

作为密码学安全的基石,计算困难问题和相关的安全参数,是企业有效进行密码学算法选型的关键考察点。企业应用落地时,需充分考虑隐私数据保密的有效期,选择合适的密码学算法和密钥长度,对数据安全性和系统效率进行必要衡量。

除了与密码学算法直接相关的计算困难问题,一个完整的隐私保护技术方案通常还需要构造密码学协议,来组合多种密码学算法。密码学协议引入了多方之间的交互,由此也引入其他重要的安全假设。

参考

[1] https://mp.weixin.qq.com/s/BlSBBm6NooxzkIP1Z-rx2g

密码学技术背后的计算困难性理论相关推荐

  1. 硬件可信计算环境 计算困难性理论 对比

    硬件可信计算环境利用CPU等计算硬件为需要隐私保护的数据隔离出一个受保护的计算环境. 数据以密文形式传入,在隔离环境内部完成计算后,再以密文形式返回.主流的国内外芯片 提供商均提供了类似功能,当前广泛 ...

  2. 密码学技术如何选型?终探量子计算通信的安全模型

    经典密码学技术的应用寿命将至?量子计算何以破解现有隐私保护方案?量子通信对隐私保护方案设计有何启示?如何有效应对量子计算通信技术给隐私保护带来的挑战? 这里,我们将进入安全模型分析三部曲的最终章,跳出 ...

  3. 密码学技术如何选型?终探量子计算通信的安全模型|第6论

    ​作者:严强 来源:微众银行区块链 ​经典密码学技术的应用寿命将至?量子计算何以破解现有隐私保护方案?量子通信对隐私保护方案设计有何启示?如何有效应对量子计算通信技术给隐私保护带来的挑战? 这里,我们 ...

  4. 综述 | 语言分析技术在社会计算中的应用

    综述 | 语言分析技术在社会计算中的应用 刘知远 社媒派SMP 2016-01-27 中国中文信息学会社会媒体处理专委会 传统社会科学研究中的数据主要通过调查问卷或口头采访等方式获取,既耗时耗力,数据 ...

  5. 现代密码学3.1--定义计算安全的两种方法

    现代密码学3.1--定义计算安全的两种方法 三种安全性定义 定义计算安全的两种方法 具体方法/concrete approach 渐进方法/asyptotic approach "高效/PP ...

  6. 干货 | 清华大学郑方:语音技术用于身份认证的理论与实践

    本讲座选自清华大学语音和语言技术中心主任郑方教授近期于清华大数据"技术·前沿"系列讲座上所做的题为<语音技术用于身份认证的理论与实践>的演讲. 以下为演讲的主要内容: ...

  7. 计算机学科的三大科学形态,华中科技大学 计算机科学与技术方法论 3计算学科中的三个学科形态.ppt...

    华中科技大学 计算机科学与技术方法论 3计算学科中的三个学科形态 第3章 计算学科中的三个学科形态 文坤梅 E-Mail:kunmei.wen@ 智能与分布计算实验室 Intelligence and ...

  8. 云计算技术背后的天才程序员:Open VSwitch鼻祖Martin Casado

    摘要:Martin Casado被称为软件定义网络之父,OpenFlow的发明人.Nicira的创始人.硅谷最炙手可热的"40 under 40"之一,另外,他提交的虚拟交换机Op ...

  9. 腾讯技术分享:微信小程序音视频技术背后的故事

    1.引言 微信小程序自2017年1月9日正式对外公布以来,越来越受到关注和重视,小程序上的各种技术体验也越来越丰富.而音视频作为高速移动网络时代下增长最快的应用形式之一,在微信小程序中也当然不能错过. ...

  10. 七桥问题属于计算机科学方法论中的,华中科技大学-计算机科学与技术方法论-2计算学科中的科学问题.ppt...

    华中科技大学-计算机科学与技术方法论-2计算学科中的科学问题.ppt 第二章 计算学科中的科学问题 文坤梅 E-Mail:kunmei.wen@ 智能与分布计算实验室 Intelligence and ...

最新文章

  1. ARP欺骗与嗅探入侵揭密--上篇(转)
  2. 代码审计XSS 0day
  3. java接口允许ajax访问_服务允许AJAX请求,允许跨域请求
  4. petshop4.0 详解之五(PetShop之业务逻辑层设计)
  5. 小汤学编程之JAVA基础day01——JAVA基本概念、第一个JAVA程序
  6. Repository(资源库)模式
  7. 火力发电厂卸料车系统无线改造
  8. 如何绘制一幅优雅的列线图
  9. 计算机扩容硬盘,扩容盘是什么 如何恢复真实容量【方法详解】
  10. [USACO Hol10] 政党
  11. react(子传父、父传子)
  12. 国家杰青,任同济大学新校长!
  13. UKF滤波的简单理解与仿真
  14. Java函数的基本知识
  15. java 读取excel 合并单元格_利用java读写Excel文件、合并单元格
  16. app开发-CocoaChina
  17. STL—queue(队列) 详解
  18. 大数据Hadoop等大数据架构学习
  19. OMS 3.4.0 发布,打造更安全易用的数据迁移体验
  20. 史上最全——手把手开发Django网站建设

热门文章

  1. 云锁linux宝塔安装,【最新版】宝塔面板下为Nginx自编译云锁Web防护模块教程
  2. python填空题_《Python程序设计》题库 - 填空题
  3. Vue 改变数据,页面不刷新的问题
  4. VMware Workstation下载及安装
  5. MATLAB排列组合计算
  6. 下列属于计算机应用,计算机的应用领域可大致分为6个方面,下列选项中属于计算机应用领域的是...
  7. Web 通信 之 长连接、长轮询
  8. Labview优化技巧
  9. 一名菜鸟程序员的跳槽经历以及其所感所想(二)
  10. IT项目管理之第5章 项目时间管理习题之选择题汇总