“IND-”安全概念的简单解释(IND-CPA,IND-CCA等)

IND-CPA,IND-CCA

翻译自:
https://crypto.stackexchange.com/questions/26689/easy-explanation-of-ind-security-notions

理想的加密方案 E E E 是这样的,对每一个密文 C = E ( K , M ) C=E(K,M) C=E(K,M).如果对于对手来说,密钥是不可见的,那么区分 M M M 的概率是可忽略不计的。由于这在实践中是不可能的,第二个最合理的方式是定义足够强的限制来满足一些安全的定义。IND-notation 根据一些攻击游戏提供了这样的定义,在游戏中,挑战者保持它的密钥,对手有一定的能力并且对手的目标是破坏整个加密系统。

通常来说,一个加密系统将会有密钥生成算法 K G KG KG,这将会生成一个密钥对 K E , K D K_E,K_D KE,KD,(用来加密的密钥和用来解密的密钥),还有一个加密算法和一个解密算法。

  • IND-CPA INDistinguishability under Chosen Plaintext Attack 选择明文攻击下的不可区分性。

    总的来说:对手生成两个相同长度的明文信息,挑战者随机地决定加密其中一个,对手尝试去猜测哪个信息被加密了。

    算法:

    1. 挑战者: K E , K D = K G K_E,K_D=KG KE,KD=KG(安全参数)
    2. 对手: m 0 , m 1 m_0,m_1 m0,m1= 选择两个相同长度的明文。发送 m 0 , m 1 m_0,m_1 m0,m1给挑战者。在多项式时间内执行 额外的操作包括调用加密oracle
    3. 挑战者: b b b=随机选择0或者1
    4. 挑战者: C : = E ( K E , m b ) C:=E(K_E,m_b) C:=E(KE,mb) 发送C给对手
    5. 对手:在多项式时间内执行额外的操作,包括对加密oracle的调用。输出猜测 g u e s s guess guess
    6. 如果 g u e s s = b guess=b guess=b 对手赢

    在这个场景中,主要引入的概念是多项式界。现在,我们对密码的期望被减弱:从“赢得概率是可忽略不计的”,到“在一个合理的时间片中赢得概率是可忽略不计的”。对相同长度明文的限制是为了防止对手只是对比密文长度就能赢。然而,这种要求太弱,特别是因为它假设在对手和挑战者之间只有单一的交互。

  • IND-CCA1: INDistinguishability under Chosen Ciphertext Attack

    总的来说:游戏的目标和IND-CPA是一样的。对手有额外的能力:调用一个加密或者解密oracle。这意味着,对手可以在得到挑战密文之前加密或者解密任意信息。

    算法:

    1. 挑战者: K E , K D = K G K_E,K_D=KG KE,KD=KG(安全参数)
    2. 对手(多项式有界的次数):对任意明文或者密文分别调用加密或者解密oracle
    3. 对手: m 0 , m 1 m_0,m_1 m0,m1= 选择两个相同长度的明文。发送 m 0 , m 1 m_0,m_1 m0,m1给挑战者。在多项式时间内执行 额外的操作包括调用加密oracle
    4. 挑战者: b b b=随机选择0或者1
    5. 挑战者: C : = E ( K E , m b ) C:=E(K_E,m_b) C:=E(KE,mb) 发送C给对手
    6. 对手:在多项式时间内执行额外的操作。输出猜测 g u e s s guess guess
    7. 如果 g u e s s = b guess=b guess=b 对手赢

    IND-CCA1考虑了重复交互的可能性,这意味着安全不会随着时间的推移而减弱。

  • IND-CCA2: INDistinguishability under adaptive Chosen Ciphertext Attack

    总的来说:除了IND-CCA1的能力以外,对手在收到 C C C后可以访问oracle,但是不可以发送 C C C给解密oracle。

    算法:

    1. 挑战者: K E , K D = K G K_E,K_D=KG KE,KD=KG(安全参数)
    2. 对手(多项式有界的次数):对任意明文或者密文分别调用加密或者解密oracle
    3. 对手: m 0 , m 1 m_0,m_1 m0,m1= 选择两个相同长度的明文。发送 m 0 , m 1 m_0,m_1 m0,m1给挑战者。在多项式时间内执行 额外的操作包括调用加密oracle
    4. 挑战者: b b b=随机选择0或者1
    5. 挑战者: C : = E ( K E , m b ) C:=E(K_E,m_b) C:=E(KE,mb) 发送C给对手
    6. 对手:在多项式时间内执行额外的操作,包括对不同于 C C C的密文的oracle的调用。输出猜测 g u e s s guess guess
    7. 如果 g u e s s = b guess=b guess=b 对手赢

    IND-CCA2建议,在了解密文之后使用解密oracle在某些方案中具有合理的优势,因为可以根据特定的密文定制对oracle的请求。

  • 10
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
"an-ind-1-011_using_canoe_net_api.pdf" 是一个关于使用 Canoe Net API 的文档。Canoe 是一种网络分析工具,Canoe Net API 是 Canoe 提供的用于与其它系统进行集成和交互的应用程序接口。 这个文档主要介绍了如何使用 Canoe Net API 进行网络分析和数据处理。它包含了使用 Canoe Net API 的基本概念和操作步骤,以及示例代码和实际应用场景。通过阅读这个文档,开发人员可以了解如何使用 Canoe Net API 对网络数据进行收集、分析、过滤和可视化,并可以根据自己的需求进行定制和扩展。 使用 Canoe Net API,开发人员可以实现以下功能: 1. 收集网络数据:通过 Canoe Net API,可以获取网络传输层(如 TCP、UDP)上的数据包,包括源地址、目标地址、数据负载等信息。 2. 网络分析:可以利用 Canoe Net API 提供的功能,对网络数据进行分析和统计,例如计算网络流量、检测网络异常等。 3. 数据过滤:通过 Canoe Net API 可以对网络数据进行过滤,只保留感兴趣的数据包,以便后续处理和分析。 4. 可视化展示:Canoe Net API 还提供了可视化工具,可以将网络数据以图表、图形等形式展示,便于用户直观地了解网络情况。 总之,"an-ind-1-011_using_canoe_net_api.pdf" 是一份介绍 Canoe Net API 的文档,通过学习和应用其中的内容,开发人员可以使用 Canoe Net API 进行网络数据处理和分析,提升网络管理和安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值