密码学-03私钥加密与伪随机性p1

私钥加密与伪随机性 第一部分

  1. 在本节课程中,我们学习计算安全下的私钥加密和伪随机性的第一部分。本节我们会学习一个完整的现代密码学研究过程,从定义到假设,再到一个密码学方案,最后使用规约法来证明其安全性。

  2. 目录:密码学的计算方法论,计算安全加密的定义,伪随机性,规约法,构造安全的加密方案

  3. 计算安全思想

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

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

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

    • 限定时间和成功的概率为具体值
    • 该方法的问题是缺乏规律性
  6. 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;
      • 加密与计算法杂性:1955年,约翰·纳什在其给NSA的信中说,他怀疑破解一个复杂的代码需要密钥长度指数的时间。如果如此,则意味着P ≠ \neq =NP,因为解决问题所需时间不是多项式的,而验证答案是多项式的。
      • 因此,将多项式时间认为是“可行的时间”,而非多项式的指数时间被认为是“不可行的”;
      • 非常小的概率定义为,比任何多项式分之一都小。
  7. 有效的计算

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

    • 一个函数 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
  9. 渐进方法(Asymptotic)

    • 根据上面的基础,采用渐进方法来定义安全,所谓“渐进”是指不研究一个参数固定的问题的复杂性,而是研究时间复杂性随着问题参数 n n n的变化而变化的规律;
    • 问题X(破解加密方案)是难的,若X不能由任何多项式时间算法以时间 t t t解决,除非以可忽略的概率 ε \varepsilon ε
    • t t t ε \varepsilon ε都描述为安全参数 n n n(通常是密钥长度)的函数
    • 注意:安全是对足够大的 n n n值来说的
    • 例如,例子中随着 n n n的增加,破解的复杂性随密钥空间指数增加,加密方案更难破解
  10. 定义私钥加密方案

  • 回顾私钥加密相关定义
  1. 窃听不可区分实验

    • 在窃听者不可区分实验中,敌手和挑战者之间进行一个思维实验。敌手根据安全参数产生两个相同长度的不同消息,并发送给挑战者;挑战者根据安全参数生成密钥,并对随机选择的一个消息进行加密,将挑战密文发送给敌手。敌手输出一个比特,来表示对被加密消息的猜测,若猜对,则实验成功。
    • 一个敌手 A \mathcal{A} A与一个挑战者 C \mathcal{C} C进行3轮交互:
      1. A \mathcal{A} A选择两个长度相同、内容不同明文 m 0 , m 1 m_0, m_1 m0,m1,并发送给 C \mathcal{C} C
      2. C \mathcal{C} C根据密钥生成算法生成一个新密钥 k k k,随机生成一个比特 b b b并挑选一个明文 m b m_b mb,加密 E n c k ( m b ) \mathsf{Enc}_k(m_b) Enck(mb)后得到挑战密文 c c c,并发送给 A \mathcal{A} A
      3. A \mathcal{A} A输出对所加密明文的猜测 b ′ b' b,若 b = b ′ b=b' b=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值