计算困难假设(Computational hardness assumption)
以下内容翻译自:维基
介绍
在计算复杂性理论中,计算困难假设是一个特定问题无法得到有效解决的假设(有效通常指“在多项式时间内”)。目前还不知道如何证明其困难性。同时,我们可以将一个困难问题规约到(reductions)一个比较容易理解的问题上。
多项式时间
常见的时间复杂度从小到大:
\]
只要算法的复杂度不会是最后两个指数或者阶乘型,前面的\(O(1)\)到\(O(n^m)\)(\(m\)为常数)任意组合都算是多项式级的复杂度,它们的规模\(n\)都出现在底数位置;而\(O(2^n),O(n!)\)型 复杂度,就是非多项式级的,问题规模较大时,计算机也很难算出结果。所以我们一般会选择多项式级复杂度的算法。
在密码学中,计算困难假设是非常重要的。可以这么说,"只要给出一个困难问题,就能构造一个公钥加密方案"。通常一个加密方案,需要具有信息论上的安全(information theoretic security),也就是满足一次一密(one-time pad),然而信息论上的安全一般是难以实现的。在这种情况下,我们一般会回到计算安全上(computational security),粗略的说,就是假设敌手的计算都是有限的,那么系统就是安全的。
常见困难问题
整数难分解问题(Integer factorization)
简单来说,就是对于一个复合数\(n\),是两个大素数的乘积,即\(n=p*q\)。给定\(n\),难以在多项式时间内求出其素因子\(p\)和\(q\)。更一般来说,是给出\(n=\prod_{i}p_i\),难以找到这些素数\(p_1,...,p_k\)。
RSA问题
给出复合数\(n\),\(e,c=m^e(mod n)\),难以找到\(m\)。所以在RSA密码中,\((n,e)\)作为公钥,\(m\)作为私钥。
更详细的RSA参考:RSA
剩余问题(Residuosity problems)
给出符合数\(n\),\(y,d\),找到\(x\)是困难的,对于\(x^d=y(mod n)\)。
特殊情况:二次剩余问题(Quadratic residuosity problem)、决策复合剩余问题(Decisional composite residuosity problem)
下面给出基于剩余问题的密码方案:
- Goldwasser–Micali cryptosystem (quadratic redisduosity problem)
- Blum Blum Shub generator (quadratic redisduosity problem)
- Paillier cryptosystem (decisional composite residuosity problem)
更多Paillier请参考:Paillier - Benaloh cryptosystem (higher residuosity problem)
- Naccache–Stern cryptosystem (higher residuosity problem)
隐藏假设(Phi-hiding assumption)
对于复合数\(m\),难以计算出\(\phi(m)\),即欧拉函数。
离散对数问题(Discrete log problem (DLP))
给出乘法群\(G\)中的两个元素\(a,b\),难以找到一个整数\(k\),使其满足\(a=b^k\)。
离散对数问题和整数分解问题不同,但是其计算复杂度接近。
大多数的密码协议都基于更具体的DH假设。
DH假设(Diffie–Hellman assumption)
给出群中元素\(g,g^a,g^b\),其中\(g\)是群\(G\)的生成元,\(a,b\)是随机整数,难以找到\(g^{a,b}\)。
例如:
在原始的DH密钥交换协议(Diffie–Hellman key exchange)中使用。详细见:DH-密钥交换协议
ElGamal算法基于的是Decisional Diffie–Hellman (DDH)问题的变体。了解更多ElGamal参考:ElGamal
多线性映射(Multilinear maps)
对于一个多线性映射函数\(e:G_1,...G_n\to G_T\),其中\(G_1,..,G_n,G_T\)都是群,例如有任意的\(g_1,...,g_n\in G_1,...,G_n\)和\(a_1,...,a_n\),则有\(e(g_1^{a_1},...,g_n^{a_n})=e(g_1,...,g_n)^{a_1...a_n}\)。
在设计密码方案时,我们需要构造一个群\(G_1,...G_n,G_T\)和一个映射函数\(e\),使得在群上可以方便计算,而在\(G_1,...G_n\)上的离散对数是困难的。
当\(n=2\)时,就是双线性映射(bilinear maps),使用Weil pairing和Tate pairing构造的。
下面给出基于多线性映射的例子:
- Boneh-Franklin scheme (blinear Diffie-Hellman)
- Boneh–Lynn–Shacham (blinear Diffie-Hellman)
格上问题(Lattice problems)
更多请参考:格基础
对于量子计算机来说,可以破解整数分解问题和离散对数问题,但对格上的问题是安全的,所以使得一些基于格上的密码成为后量子力密码。
下面给出一些基于格上的密码方案:
- NTRU (加密和签名)
- 全同态加密,fully homomorphic encryption
最短向量问题,Shortest vector problem (SVP))
一些变体:
- Shortest independent vectors problem (SIVP)
- GapSVP
- Unique-SVP
最近向量问题 ,Closest vector problem (CVP)
LWE问题,Learning with errors
LWE问题可以规约到GapSVP问题。
计算困难假设(Computational hardness assumption)的更多相关文章
- 计算思维(Computational Thinking)在少儿编程中的体现
本文主要针对少儿编程从业人员及正在学习编程的学生家长 大家好,我是C大叔,国内早期的少儿编程从业人员.一直以来都是在做scratch,JavaScript,python以及信息学奥赛C++的讲师,教研 ...
- 计算广告(computational advertising)
计算广告学是一门由信息科学.统计学.计算机科学以及微观经济学等学科交叉融合的新兴分支学科. 1. 课程与资源 Andrei Broder:美国工程院院士,计算广告概念的提出者: MS&E 23 ...
- DH问题汇总
本节内容主要转载于:弄清楚DL,D-H,CDH problem,CDH assumption,DDH,BDDH,BCDH. DLP(Discrete Logarithm Problem) 在乘法群\( ...
- CFD计算
47 求解器为flunet5/6在设置边界条件时,specify boundary types下的types中有三项关于interior,interface,internal设置,在什么情况下设置相应 ...
- 漫谈计算摄像学 (一):直观理解光场(Light Field)
什么是计算摄像学 计算摄像学(Computational Photography)是近年来越来越受到注意的一个新的领域,在学术界早已火热.本来计算摄像学的业界应用在群众中一直没什么知名度,直到Lytr ...
- 在有限 computational budget 下,借助 low-fidelity 模型提高精度
论文名称:context-aware learning of hierarchies of low-fidelity models for multi-fidelity uncertainty qua ...
- GPU计算的十大质疑—GPU计算再思考
http://blog.csdn.NET/babyfacer/article/details/6902985 原文链接:http://www.hpcwire.com/hpcwire/2011-06-0 ...
- Computational biological hypothesis generation using "-omics" data
Computational biological hypothesis generation using "-omics" data Forming biological hypo ...
- 《Kafka Stream》调研:一种轻量级流计算模式
原文链接:https://yq.aliyun.com/articles/58382 摘要: 流计算,已经有Storm.Spark,Samza,包括最近新起的Flink,Kafka为什么再自己做一套流计 ...
- aix 计算性内存和文件内存
经过有客户问AIX topas中内存(memory)一项显示的数值含义: MEMORY Real,MB 4096 % Comp 68.9 % Noncomp 22.6 % Clie ...
随机推荐
- chrome标签同步神器插件-集装箱!
前言 最近无法忍受360极速浏览器铺天盖地的广告.也无法忍受火狐浏览器的耗内存打开慢的情况.最终又把浏览器换回了Chrome.总所周知Chrome在国内使用的最大问题是同步书签.扩展等功能受到网络环境 ...
- 快速量产低功耗 4G 定位方案?Air201 模组来搞定!
今天我们来了解的是Air201模组快速量产低功耗 4G 定位方案,希望大家有所收获. 寻寻觅觅低功耗4G定位方案? 一个Air201就够了! --定位准.体积小.功耗低,助力行业客户快速量产! 01 ...
- Air780E篇:采集温湿度传感器数据,并网页查看
今天我们学习合宙低功耗4G模组Air780E篇:采集温湿度传感器数据并实现网页查看,以下进入正文. 一.硬件装备 1.1 硬件连接 使用跳线帽将IO_SEL连接3.3V,给引脚供3.3V的电.dh ...
- C#验证IP是否为局域网地址的三种方法
C#验证IP是否为局域网地址的三种方法 前一阵子有[广州.NET群]的客户问起这个问题,说他们需要验证客户输入的网站是否为局域网.其实局域网的IP并没有确定的定义,只要是局域网中,即可设置为任何一个I ...
- 2023NOIP A层联测25 T4 滈葕
2023NOIP A层联测25 T4 滈葕 配血实验与2-SAT. 思路 \(z=1\) 表示配血实验发生凝集反应,设 \(a_i,b_i\) 分别表示第 \(i\) 个人有无凝集原 A,B.(无凝集 ...
- markdown小小白常用语法
第一次用vscode写笔记去同步Cnblog,不知道写啥就记点常用的md语法吧 1. 标题怎么写? 利用"#" + " " 即可实现第几节标题(其中'/',表转 ...
- 一条语句查看web日志排名前十的IP/URL页面及总数
查看 Nginx web 访问日志访问量前十的ip 以及访问的网站页面地址 ,可以分析网站哪些页面受欢迎,以及访问量大的ip在干什么! 标签: <无> 代码片段(3)[全屏查看所有代码] ...
- JAVA MemCache 史无前例的详细讲解!看完包精通MEMCACHE!
Memcach什么是Memcache Memcache集群环境下缓存解决方案 Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式 ...
- rabbitmq-c与amqp扩展安装
最近需要使用RabbitMQ进行消息队列处理 1.安装rabbitmq-c 在安装amqp之前需要先安装rabbitmq-c扩展 rabbitmq-c下载网址:https://github.com/a ...
- docker之网络与数据管理
docker默认使用bridge(单主机互联)和overlay(可跨主机互联)两种网络驱动来进行容器的网络管理.如需要,还可以自定义网络驱动插件进行docker容器的网络管理. 1.docker默认网 ...