Reduction in Computational Complexity
Proof by Contradiction
在计算复杂度中,如果没有额外的假设,就“不可能”证明解决一个计算问题B是困难的。
在计算复杂度方面,我们可以证明问题B的困难性,并附加假设一些计算问题是困难的。
证明过程称为reduction,它是一种Proof by Contradiction
一个计算问题A被认为是很困难的。
如果问题B很容易,那么我们证明了问题A也很容易。
如果这个假设是错误的,而且问题B一定是困难的。
The old problem A is reducible to the new problem B.
Reducible
在计算复杂性方面,The problem A is reducible to the problem B
即:
解决问题B可以转化为解决问题A。
我们可以将一个问题实例xA转换为问题B的一个问题实例xB。
我们可以把问题解yB转化为问题解yA。
问题B(我们关心的问题)并不比问题A容易。
Example1:
Example2:
Example3:
Security Reduction in Cryptography
Overview
Security Reduction (Overview)
降低安全性类似于计算复杂度的降低
我们通过矛盾的证明来证明安全性如下。
一个计算问题P被认为是很困难的。
如果一个方案是不安全的,我们证明了问题P是容易的。
那么这个假设就会是错误的,而且这个方案必须是安全的。
note:以上是高度high level的安全归约
Security Reduction (Proof Strategy)
问题A可归约为问题B➡问题实例
x
A
x_A
xA可以用于创建问题实例
x
B
x_B
xB
Framework
Framework of Security Reduction
安全归约必须采用以下框架进行。
**Breaking Assumption:**生成一个模拟方案(使用问题实例xP),并通过遵循安全模型与对手进行交互。
- **Simulation.**生成一个模拟方案(使用问题实例 x p x_p xp),并通过遵循安全模型与对手进行交互。
- **Solution.**利用对手对模拟方案的攻击,提取问题解 y p y_p yp
- **Analysls.**证明了如果破坏假设为真,则求解困难问题P的优点是不可忽略的。
Analysis in Security Reduction
**Breaking Assumption:**假设存在一个对手,他可以打破所提议的方案(在一个安全模型中)。
- **Simulation.**生成一个模拟方案(使用问题实例 x p x_p xp),并通过遵循安全模型与对手进行交互。
- **Solution.**利用敌手对模拟方案的攻击,提取问题解 y p y_p yp。
Question:我们可以在不进行分析的情况下进行安全归约的程序吗?
Analysis in Security Reduction
- 安全归约并不是一个真正的数学证明。
- 相反,它仅仅提出了一种归约算法,并展示了如何归约对手的攻击来解决一个难题。
- 即,安全归约只是一种归约算法
- 不幸的是,我们无法演示这种归约算法来说服人们,归约算法是有效的,因为没有对手。
- 相反,我们所做的是一个理论分析,表明所提出的归约算法确实有效。
Concepts1
Concepts2
- 实际方案是根据该方案中描述的方案算法,使用安全参数生成的方案。
- 模拟方案是根据约简算法由一个潜在硬问题的随机实例生成的方案。
Concepts3
- 对手与由挑战者控制的真实方案进行交互。挑战者出现在安全模型中。
- 对手与由模拟器控制的模拟方案进行交互。模拟器出现在安全降低的过程中。
Concepts4
- 真正的攻击是对手和挑战者之间的相互作用。(对手所知道的信息。)
- 仿真是对手和模拟器之间的相互作用。(对手所知道的信息。)
Concepts5
- 从对手的角度来看,真实方案和模拟方案的响应可能无法区分(看起来相同)。
- 实际方案的响应遵循方案算法,模拟方案的响应遵循归约算法。
Indistinguishable: First View
Approach1:
Breaking to Solving
Solution
降低安全级别的目的是减少对手的攻击,以解决潜在的难题。攻击可以是计算性攻击或决策性攻击。
- 一个计算攻击,如伪造一个有效的签名,要求对手从一个指数大小的答案空间中找到一个正确的答案。
- 决策攻击,例如猜测IND-CPA安全模型中的挑战密文中的消息mb∈{m0,m1},只需要对手猜测b(0或1)。
note:安全对抗决策攻击=不可区分的安全性。
Three Types
note第三种类型非常特殊,因为它只在随机oracle模型中可用,在该模型中,模拟器使用对手进行的哈希查询来解决一个计算难题。
Evaluation of Security Reduction
Cost and Loss in Reduction
Reduction Cost and Reduction Loss
Tight Reduction and Loose Reduction
Tight Reduction: Necessary or Not?
Concreate Security
Lower Bound Security Level Revisited
- 假设打破方案S可以简化为解决一个潜在的困难问题,用B表示。
- 方案S的安全下限级别是从底层的困难问题B中计算出来的。
- 方案S的安全下限级别≠问题B的安全级别
这仍然取决于 reduction cost和 reduction loss.
Concrete Security
假设困难问题B有kbit的安全性
Ideal Security Reduction
一个理想的安全归约是我们可以为所提出的方案编程的最佳安全归约。
- Security Model.安全模型允许对手最大限度、灵活、自适应地向挑战者查询,并以最低要求赢得游戏。
- Hard Problem.所采用的基本硬问题必须是在同一数学原语上定义的所有硬问题中最难的问题。例如,DL问题。
- Reduction Cost and Reduction Loss.降低成本T和降低损失L为最小值。也就是说,T在对手的查询数量上是线性的,而L=是1。
- Computational Restrictions on Adversary.除了时间和优势外,对对手没有计算限制。随机的oracle模型确实限制了对手
不幸的是,在文献中提出的所有安全归约中,这些理想特性之间的固有权衡是非常常见的。
例如,我们可以构造一个有效的签名方案,其安全是在一个弱硬度的假设下,但安全降低必须使用随机的oracles。
例如,我们也可以在安全降低中构造一个没有随机谕的签名方案,但它伴随着一个强大的假设或长公钥
目前,在技术上似乎不可能构建一个能够满足上述四个特性的理想的安全降低方案。