Encryption Schemes & Security Notions

  • 安全的意义
  • 保密的加密方案
  • Encryption vs Encoding 加密和编码俩者的区别
  • 对称加密和非对称加密
  • 加密的安全概念
  • 安全模型
    • Semantic Security
    • Information Theoretic Security
    • Indistinguishability IND模型
    • Indistinguishability under Chosen Message Attacks  我们最熟悉的IND-CPA
  • Public key encryption 公共密钥加密
    • IND-CCA1
    • IND-CCA2
  • Trapdoor One-way Function
  • Reference

安全的意义

•保密性:未经授权方应无法访问敏感数据。
举例:所有的 encryption

•完整性:未经授权方检测,数据应不可修改。
举例:message auth code, digital signature

•真实性:未经授权的方应不可伪造数据
举例:digital signature

•可用性:应向授权人员提供数据。

保密的加密方案

• Classical ciphers 经典密码学

• Modern symmetric-key ciphers现代对称加密
• Block cipher
• Stream cipher

• Modern asymmetric-key ciphers现代非对称加密
• Public key encryption
• Identity-based encryption
• Attribute-based encryption
• Functional encryption

Encryption vs Encoding 加密和编码俩者的区别

加密需要密钥Key,而编码则不需要。
编码的例子:
ASCII码
语言翻译,比如英语翻译成汉语
用摩尔斯电码等等。
这些都不需要key!

对称加密和非对称加密


对称加密:
加密和解密的密钥是相同的。
Advantage: 算法公开、计算量小、加密速度快、加密效率高
Disadvantage: 一方的秘钥被泄露=gg.
收、发双方所拥有的钥匙数量巨大,密钥管理会成为双方的负担。

常见的对称加密算法有: DES、3DES、Blowfish、IDEA、RC4、RC5、RC6 和 AES

非对称密钥加密
非对称加密算法需要两个密钥:
一个公钥(加密密钥)和一个私钥(解密密钥)。
优点:安全
缺点:低速度

常见的非对称加密算法有: RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用。

加密的安全概念

Goal + Atk

understand 攻击者有着最强大的能力,却不能实现最简单的目标难么证明这个model很Strong!

安全目标是什么?防止攻击者

•发现解密密钥
•解密密文
•获取有关加密消息的任何重要信息

攻击模型是什么?

•仅密文 Ciphertext only
•已知消息攻击 Known-message attack
•选择消息攻击 Chosen-message attack
•选择密文攻击 Chosen-ciphertext attack
//攻击强度从上到下递增

安全模型

  1. Semantic Security

An encryption scheme has semantic security if the attacker A learns norting (except the length of the message) from a ciphertext c. 攻击者除了长度啥都不知道。

  1. Information Theoretic Security

我们称之为Perfectly secure system
The ciphertext c does not provide any additional information to the attacker.

然而这个系统是不切实际的! We focus on computationally secure systems in modern cryptography.

  1. Indistinguishability IND模型

An Encryption Scheme has indistinguishability if for any PPT attacker, the winning probability is≈1/2. 猜中的概率等于瞎猜的概率.

两个限制:
Only consider polynomial time adversary.
The two challenge messages m0 and m1 must have equal length.
攻击者的时间必须是有限的,不能考虑没有时间限制的暴力破解
M0和M1的长度必须相等。

我们更深入一点:
Is Vigenere Cipher scheme IND secure?
No
M0: aaaaa. M1:abcde
C–>Repeat–>M0
C–>Random–>M1
解决方法:让KEY和M一样长–>One Time Pad
Is the One Time Pad IND secure? 
Yes! Perfect security. Only information leaked is the size of the message.

  1. Indistinguishability under Chosen Message Attacks  我们最熟悉的IND-CPA

Chosen Message Attacks简写CMA等同于CPA (Chosen Plaintext Attacks)


想比较于IND,IND-CPA在挑战之前2-4重复多次+ 挑战过程中多次Encryption queries
可以理解为给Attacker叠增益Buff,攻击者在能力越多的情况下猜中的概率仍然等于瞎猜–>
模型更强大。

Is the One Time Pad IND-CPA secure? 
NO! Why?
在IND-CPA model里,KEY必须要重复使用,所以one-time pad 不安全
正常的One Time Pad–>每次加密使用的key不同–>Perfect security.
在模型中,key被固定,所以我们只需要查询m=0000000就可以得到key–>直接解密C*

Proposition: There exists no deterministic encryption scheme that is IND-CPA secure
这个定义很重要!什么是确定加密?对于相同的原文,按照算法加密后得到的密文不变,那么就是确定加密,只要是确定加密那么就不是IND-CPA secure的。哈希函数也是确定加密。

Public key encryption 公共密钥加密

在说PKE之前我们思考一下:

SKE的最小攻击模型是什么?
Ciphertext only is meaningful minimum.
CPA is stronger.

PKE的最小攻击模型是什么?
CPA

这意味着需要一种方法,即使输入相同的m也要得到不同的ciphertext,因为在CPA中PK是直接给到ATTACKER的,在Public key encryption中不能有比这个更弱的了。

IND-CCA1

CCA1: The decryption oracle is only accessible before receiving the challenge ciphertext.

IND-CCA2

CCA2: The decryption oracle can be accessed before and after receiving the challenge ciphertext.

相比较与CCA1,CCA2第6步之后多了一步.

Trapdoor One-way Function

对于那些不知道Trapdoor 的人来说,这是one-way function,对于知道的人来说,他们可以reverse this function.

A trapdoor one-way function is a function which looks like a one-way function but is equipped with a secret trapdoor.

If this secret door is known, the inverse can be easily calculated.

Reference

  1. Wenbo Mao, Modern Cryptography, Prentice-Hall, 2003.
  2. Jonathan Katz and Yehuda Lindell, Introduction to Modern Cryptography, 2nd Edition, CRC Press, 2015.
  3. W Stallings, Cryptography and Network Security, Fourth (or later) Edition, Prentice Hall, 2006.
  4. J. Pieprzyk, T, Hardjono and J. Seberry, Cryptography: an introduction to computer security,
    Springer Verlag, 2003.
  5. Guo, F., Susilo, W., Mu, Y. Introduction to Security Reduction, Springer, 2018

现代密码学之加密方案和安全概念相关推荐

  1. 基于属性加密方案的发展

    1.公钥加密体制: 与对称密码体制相比,公钥密码体制加密密钥(公钥)和解密密钥(私钥)是不一样的,加密密钥是可以公开的,并且不会危及密码算法的安全性.其过程可以简单的表示如下图所示: 如上图所示,其步 ...

  2. 密码学学习笔记(五)——CKKS同态加密方案

    文章目录 1. 提出背景 2. 方案原理 3. 算法描述 4.方案改进 4.1 自举方案 4.2 RNS变体 1. 提出背景 1978年,Rivest.Adleman和Dertouzos在文献[1]中 ...

  3. gpg加密命令 linux_加密方案 GNUPG amp; Yubikey

    随着时间流逝,我生活中出现的设备越来越多,密码也越来越多,因为记忆成本很多密码强度都不够高,不安全,所以迫切需要一款密码学加密工具来真正解放主动记忆密码,能够将密码存储在一个文件中并且保证这个文件绝对 ...

  4. 密码学和加密数字货币的简介

    所有货币都需要一些方法来控制供应,并强制执行各种安全属性以防止作弊.在法定货币方面,像中央银行这样的组织控制货币供应量,并对实体货币增加防伪功能.这些安全功能提高了对攻击者的防范能力,但是他们不可能不 ...

  5. 密码学-软件加密技术和注册机制

    本文是一篇软件加密技术的基础性文章,简要介绍了软件加密的一些基本常识和一些加密产品,适用于国内软件开发商或者个人共享软件开发者阅读参考. 1.加密技术概述 一个密码系统的安全性只在于密钥的保密性,而不 ...

  6. 隐私计算-密码学-同态加密

    文章目录 1 隐私计算综述 2 隐私计算发展史 3 加密技术概述 4 同态加密的历史 5 什么是同态加密 6 同态加密的定义 6.1 场景定义 6.2 核心流程 6.3 HE的分类 7 同态加密库Pa ...

  7. 一种混合加密方案在软件授权中的应用

    拥有知识产权的软件一般采取软件保护手段,需要使用某种方式激活软件才可以使用.软件激活本质是对密文数据进行比较,而密文数据是由软件开发商根据目标机器的特征数据进行加密产生的.激活过程是在认证服务器或者目 ...

  8. oracle密文怎么弄成明文,明文编码随机化加密方案

    随着密码技术的发展, 可证明安全概念已被广泛认可.在随机谕言机(random oracle, 简称RO)模型[或者标准模型下具有自适应性选择密文攻击不可区分安全(indistinguishable s ...

  9. C++实现通用的文件(万能)加密方案——包含源码

    最近做了一个项目,里面有一个小需求就是对处理过的文件进行加密,加密之后无法打开.我最先想到的是异或加密,因为需要速度,并且对加密的安全性要求不高. 1.异或加密原理 异或密码(simple XOR c ...

最新文章

  1. 将Java程序打jar包并运行
  2. sdwan安全如何加固?六种安全SD-WAN方案分享
  3. MSN空间上的以往技术贴整理
  4. Python编译成C语言,性能有多暴力?
  5. python array操作,Python中数组的基本操作
  6. Mybatis源码日志模块分析
  7. 可以上传视频的网站大全
  8. linux英文包安装教程视频,Linux源码包安装过程讲解
  9. 《NET 产品版权保护方案》非常全面, 《武汉.NET俱乐部》, 培训讲议
  10. JavaWeb——jsp原理
  11. JavaScript面向对象 - 严格模式
  12. 铁路售票系统的设计分析(时序图、类图)
  13. linux 下perl离线包下载
  14. easypanel面板搭建虚拟主机教程
  15. oracle 查询时间段内的天,ORACLE任意时间段内所有天数日期查询
  16. 在生鲜电商领域创业到底是怎样的一种苦逼体验?【创业者说】
  17. 电脑图片分类管理软件用什么工具,这一款便签工具可以管理图片
  18. linux dd iflag oflag,【转】dd命令详解及利用dd测试磁盘性能
  19. 选计算机硬盘原则和注意事项,旧电脑升级是升内存还是SSD?按照这个原则就对了!...
  20. Java 埃拉托色尼筛选法

热门文章

  1. turtle.seth()
  2. 【C++】磁盘文件的输入和输出
  3. Tomcat启动失败
  4. 如何在注册表中彻底锁定IE浏览器的的主页?
  5. linux安装redis选择那个版本,linux下编译安装redis服务与配置
  6. MySql分区(partion)之range(范围)-----------01
  7. ubuntu-18.04 虚拟机磁盘 + 内存扩容
  8. vue自定义指令使用
  9. sliverlight入门指南
  10. 中级职称报名上海计算机考试,关于上海中级职称计算机考试的问题