对称加密和伪随机性

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

对称加密和伪随机性:Private-Key Encryption and Pseudorandomness


一、安全目标

计算安全(computational security):攻击者具有有限的计算资源很难攻破密码体制,我们称这种密码体制是计算安全的。

并不是百分之百安全的,只是安全性与易用性折中的加密算法。

1.如何定义“有限的计算资源”

攻击者只能获取有限的明文/密文对。

  • 有限的计算资源
    – 多少台计算机?
    – 每台计算机有多快的CPU?
    – 每台计算机有多⼤的内存?
    – 程序允许在其上运⾏多久?
    – 等等

  • 如何给出统一的定义?

  • 算法
    – O表示法

  • 有限的计算资源
    – 将敌手视作一个算法
    – 该算法的时间复杂度是 O ( n c ) O(n^c) O(nc)
    n n n是安全参数, c c c是一个常数( n n n一般是二进制密钥的长度)

  • 敌手能够利用有限的计算资源,遍历所有可能的密钥吗?(当密钥足够长时,是不可能的)
    设密钥为一个长度为 n n n的二进制串,那么敌手猜中密钥的可能性为 n c 2 n \dfrac{n^c}{2^n} 2nnc,由此可见,敌手是有可能猜中密钥的,但是, lim ⁡ n → + ∞ ( n c 2 n ) = 0 \displaystyle\lim_{n \rightarrow + \infty}(\dfrac{n^c}{2^n}) = 0 n+lim(2nnc)=0。所以,可以认为只要密钥足够长,敌手猜中密钥的可能性就为 0 0 0

2.如何定义“很难”

  • 计算安全:攻破密码算法的概率可忽略。

  • 无条件安全:无法攻破密码算法。
    &

  • 如何定义概率可忽略

    • 多小算小呢?
      • 安全参数: n n n(密钥的二进制位数)
      • n n n足够长时,攻破密码算法的概率趋近于0
      • 形式化定义,利用可忽略函数实现

可忽略函数

  1. 安全参数 n n n:密钥的二进制位数,简称密钥位数。

  2. 多项式 q ( n ) q(n) q(n):密钥位数的多项式,如 2 n 2 + 3 n + 5 2n^2+3n+5 2n2+3n+5

  3. 可忽略函数 ε ( n ) \varepsilon(n) ε(n):极限趋于0的表达式。通常是分数形式,如 3 n 3 + 5 2 n \dfrac{3n^3+5}{2^n} 2n3n3+5, 3 n 3 + 5 2 n − 2 n 4 + n 2 \dfrac{3n^3+5}{2^n-2n^4+n^2} 2n2n4+n23n3+5

    性质

    • 两个可忽略函数的和是可忽略函数
    • 常数与可忽略函数的积是可忽略函数

二、加密算法的定义

加密算法包括三个⼦算法:

  1. 密钥⽣成⼦算法(Gen)
    算法输⼊:安全参数 n n n;算法输出:满⾜特定分布的密钥 k k k

  2. 加密⼦算法(Enc)
    算法输⼊:密钥 k k k和明⽂ m m m;算法输出:密⽂ c c c c ← E n c ( k , m ) c \leftarrow Enc(k, m) cEnc(k,m)
    箭头的含义:用相同的明文和密钥,多次加密,最终得到的密文可以是不同的。

  3. 解密⼦算法(Dec)
    算法输⼊:密钥 k k k和密⽂ c c c;算法输出:明⽂ m m m m = D e c ( k , c ) m = Dec(k, c) m=Dec(k,c)

满足: D e c ( k , E n c ( k , m ) ) = m Dec(k, Enc(k, m)) = m Dec(k,Enc(k,m))=m


三、敌手能力

唯密⽂攻击,已知明⽂攻击,选择明⽂攻击,选择密⽂攻击

唯密⽂攻击实验:(建立敌手模型/威胁模型)

  1. 运⾏密钥⽣成算法Gen,确定密钥k。
  2. 随机加密若⼲明⽂,并将密⽂发送给攻击者。(若干条密文并不是密文的全集)
  3. 攻击者发送明⽂空间中的两条消息m0和m1。
  4. 随机加密其中⼀条明⽂,并将对应密⽂发送给攻击者。
  5. 随机加密若⼲明⽂,并将密⽂发送给攻击者。
  6. 攻击者根据密⽂猜测对应的明⽂是m0还是m1。

定理:假定 n n n表示安全参数。如果加密⽅案在唯密⽂攻击下是计算
安全的,那么攻击者猜对的概率不超过 1 / 2 + n e g l ( n ) 1/2+negl(n) 1/2+negl(n)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大连米兰哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值