关于平均情况困难问题与最坏情况困难问题的理解

本文介绍了密码学中平均情况困难问题和最坏情况困难问题的概念,通过大整数N分解难题和格上的困难问题为例进行阐述。平均情况困难问题如RSA系统的安全性依赖于大部分N难以分解,而最坏情况困难问题则意味着所有实例都是困难的,如格上的最短独立向量问题。在密码方案设计中,平均情况困难问题易于构造,但需要确保随机实例的安全性,而最坏情况困难问题提供了一种在所有情况下都安全的保障。

前言

  在密码学中,为了证明一个密码方案是安全的,我们会将其安全性归约到一个已知的困难问题上。这是因为在没有任何已知条件下,要证明一个密码方案是安全的,必须要说明所有可能的算法都不能在多项式时间内攻破该方案。而采用归约证明,将一个公认数学问题是困难的作为已知条件,只需要证明一个逆否命题——“如果已知问题是困难,那么密码方案是安全的”,就能够说明该方案是可证明安全的。归约证明为密码方案没有基础性缺陷提供了依据,同时也为选择方案的参数提供了依据。
  常见的困难问题有两种:平均情况(average-case)困难问题和最坏情况(worst-case)困难问题。在根据2012年BIU密码学冬令营的格课程[1]学习相关基础知识时,我对平均情况困难问题和最坏情况困难问题产生了困惑,一度难以理清楚其中的复杂逻辑。在与导师简单讨论并研究了相关优质解答后,尝试整理我的理解与感悟。
  本文将以大整数NNN分解难题和格上的困难问题为例,谈谈我对这两种困难问题的理解。


平均情况困难问题

  我们常见的大整数NNN分解难题就是一个平均情况困难问题,经典的RSA系统就是基于它构造的。类似的,Rabin密码学系统[2]的精髓是一个模平方函数fN(x)=x2mod  Nf_N (x)=x^2 \mod NfN(x)=x2modN,它的安全性在于逆向计算fNf_NfN函数的难度与函数实例对应的NNN的分解难度相关,即,实现了逆向计算也就成功分解了NNN。如图1所示,NNNfNf_NfN函数实例之间是一一对应的,其中橙色部分的NNN是难分解的,它里面每个NNN对应的fNf_NfN函数也是难以被逆向的。也就是说,基于大整数NNN分解难题的函数实例,有一些是困难而有一些不是。

图1 平均情况困难问题实例与函数实例映射关系示意图

  Rabin给出的安全性证明为:在密码学定义上,只要大部分NNN是难以被分解的,那么对应的fNf_NfN函数也是难以被逆向的。在平均情况下,只要我们大概率拿到的NNN是难的,那么相应的fNf_NfN也是难的。比如说,实际中使用RSA系统时,我们会利用素性检测选取强素数,来以较高的概率构造难以被分解NN

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值