2024年【现代密码学】笔记3

* 完美保密局限性在于密钥需要很长,而且如果密钥不够长,则不能达到完美保密。Kerchhoffs提出另一个原则:**一个加密方案如果不是数学上,那必须是实践上不可破解的。** 不同于在完美保密部的信息论上的安全,计算安全放松了安全条件来追求实践中的安全,使得密钥相对于明文可以很短。
* 计算安全:
	+ 敌手在**可行的时间**内运行,破解密码的时间是有限的
	+ 敌手以**非常小的概率**成功,能成功但可能性很小
  1. 放松条件的必要性

为什么相对于完美保密,要放松对安全的需求。考虑之前的不可区分实验,

* 为了对抗蛮力攻击,需要限定敌手的能力;因为只要给了充足的时间来遍历 
 
 
 
 
 ∣ 
 
 
 K 
 
 
 ∣ 
 
 
 
 |\mathcal{K}| 
 
 
 ∣K∣,蛮力攻击一定会成功;
* 为了对抗随机猜测,需要允许小到可忽略的(**negligible**)成功概率;因为瞎猜也有 
 
 
 
 
 1 
 
 
 / 
 
 
 ∣ 
 
 
 K 
 
 
 ∣ 
 
 
 
 1/|\mathcal{K}| 
 
 
 1/∣K∣概率成功;
  1. 具体法与渐进法

    • 具体法:限定时间和成功的概率为具体值;一个加密方案是

    (

    t

    ,

    ε

    )

    (t,\varepsilon)

    (t,ε)-安全的,如果对任意敌手以时间

    t

    t

    t 运行,成功破解方案的概率最多是

    ε

    \varepsilon

    ε。

    • 具体法的问题是缺乏规律性,无法描述密钥长度、时间和成功概率之间的关系。
    • 渐进法:计算复杂性理论使用是与输入规模

    n

    n

    n有关的函数来表示时间或空间复杂性。例如,快速排序算法的时间复杂性是

    O

    (

    n

    log

    n

    )

    O(n\cdot \log n)

    O(n⋅logn),其中

    n

    n

    n是问题的规模,这里是排序元素的个数。

    • 具体法和渐进法的区别之一是,一个是点,一个是线。
  2. P=NP?

    • 如何定义“可行的时间”和“非常小的概率”?答案来自计算复杂性理论,理论上认为一个搜索问题(例如,获得密钥)是相对简单的,如果解决该问题算法的时间复杂性为问题规模参数

    n

    n

    n的多项式;而需要非多项式(包括指数)时间复杂性来解决的问题是难以被实际解决的。

    • 在计算复杂性理论中,问题可分为两类:

      • 一类可解的问题,称为P(polynomial time)问题,是指能够在问题规模的多项式时间内由确定性图灵机解决的问题;
      • 另一类包含P问题的更大范围的NP(nondeterministic polynomial time)问题,不能确定是否在多项式时间内可以解决,但能够在多项式时间内验证一个答案是否正确的问题;尽管理论上用非确定性图灵机可在多项式时间解决,但非确定性图灵机还无法实现;
      • 在NP问题中,包含一类相似的难题,尚未找到多项式时间算法,但这些问题中的一个若被解决了,则其它也能被解决,称为NP完全问题(NP-Complete);与NP完全问题一样难或更难的问题,称为NP难问题(NP-Hard);
      • 科学家们相信NP问题集合不同于P问题集合,在NP问题中有一些难题无法在多项式时间内解决,即P

      \neq

      =NP;
      - 在一部穿越电视剧《天才基本法》中,一个情节是:P=NP被证明真成立。

      • 加密与计算复杂性:1955年,约翰·纳什在其给NSA的信中说,他猜测破解一个复杂的代码需要密钥长度指数的时间。如果如此,则意味着P

      \neq

      =NP,因为解决问题所需时间不是多项式的,而验证答案是多项式的。

      • 因此,将多项式时间认为是“可行的时间”,而非多项式的指数时间被认为是“不可行的”;
      • 非常小的概率定义为,比任何多项式分之一都小。
  3. 有效的计算

    • 一个算法是多项式时间的(polynomial time),如果存在一个多项式使得对于任意输入,算法都在该多项式步骤内结束。
    • 一个算法可以在多项式时间内以任何多项式时间算法作为子例程来运行;
    • 概率(probabilistic)算法有“掷硬币”的能力。其中,随机数生成器应该是为密码学用途来设计的,而不是C语言里的random()。相反地,没有随机性的算法就是确定性的;
    • 开放问题:概率性的敌手比确定性的敌手更强大吗?

    P

    =

    B

    P

    P

    \mathcal{P} = \mathcal{BPP}

    P=BPP (限定错误的概率多项式)?

  4. 可忽略的成功概率

    • 一个函数

    f

    f

    f是可忽略的,若对于任意多项式

    p

    (

    )

    p(\cdot)

    p(⋅),存在一个

    N

    N

    N使得对于所有整数

    n

    N

    n>N

    n>N,

    f

    (

    n

    )

    <

    1

    p

    (

    n

    )

    f(n) < \frac{1}{p(n)}

    f(n)<p(n)1​。

  5. 渐进方法(Asymptotic)

    • 根据上面的基础,采用渐进方法来定义安全,所谓“渐进”是指不研究一个参数固定的问题的复杂性,而是研究时间复杂性随着问题参数

    n

    n

    n的变化而变化的规律;

    • 问题X(破解加密方案)是难的,若X不能由任何多项式时间算法以时间

    t

    t

    t解决&#x

  • 12
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值