信息安全与密码技术
古罗马:Caesar 密码 c=( m+ 3) Mod 26
三个发展阶段
保密:搭线窃听和密码分析
保护:保护信息的机密性、完整性和可用性
保障:可认证性,不可否认性
信息安全的基本属性
机密性(Confidentiality):信息不泄露给非授权的个人、实
体或进程,不为其所用。
完整性(Integrity):维护信息的一致性,即信息在生成、传
输、存储和使用过程中不应发生人为或非人为的非授权篡改。
可用性(Availability):保障信息资源随时可提供服务的能力
特性,即授权用户根据需要可以随时访问所需信息。
可认证性(Authenticity):能够核实和信赖一个合法的消息源
的真实性的性质,以建立对其的信任。
不可否认性(Non-repudiation):保证信息的发送者提供的交
付证据和接受者提供的发送者证据一致,使其以后不能否认信息
过程。
加密和解密的数学函数
c=E(m), m=D(c) , D(E(m))= m
密钥(Key) :算法中的一个变量
密码攻击
在未知密钥的前提下,从密文恢复出明文、或者推导出密钥
对密码进行分析的尝试称为攻击
攻击方法分类(根据已知信息量的多少)
- – 唯密文攻击
- – 已知明文攻击
- – 选择明文攻击
- – 自适应选择明文攻击
- – 选择密文攻击
- – 选择密钥攻击
方法
穷举:用各种可能
分析:通过数学关系式或统计规律找出明文或与明文相关的有用信息
密码算法的安全性
- 破译算法的代价 > 加密数据本身的价值
- 在信息的生命期内无法破解
对称密钥密码体制
a^e % n = b
a^d % n = b
欧几里得算法(辗转相除法)
扩张欧几里得算法的解:
def ext_euclid(a, b): if b == 0: return 1, 0, a else: x, y, q = ext_euclid(b, a % b) # q = gcd(a, b) = gcd(b, a%b) x, y = y, (x - (a // b) * y) return x, y, q
base64
base64加密与解密
encode = base64.b64encode(b'I love you') #加密 decode = base64.b64decode(b'SSBsb3ZlIHlvdQ==') #解密
encode = base64.b32encode(b'I love you') #加密 decode = base64.b32decode(b'JEQGY33WMUQHS33V') #解密
posted on 2019-08-05 19:42 、Discipline 阅读(755) 评论(0) 编辑 收藏 举报