现代密码学读书笔记&学习笔记

前言

  • 信息安全分为系统安全(操作系统安全、数据库系统的安全)、数据安全(数据的安全存储和安全传输)和内容安全(病毒的防护,不良内容的过滤)3个层次。涉及安全体系结构,安全协议,密码理论,信息分析,安全监控,应急处理等。其中密码技术是保障数据安全的关键技术。
  • 密码技术加密方法包括单钥密码体系(对称密码体系)和公钥密码体系。单钥密码体制又包括流密码和分组密码。
  • 密钥分配与密钥管理也是密码技术的重要内容。
  • 信息除了考虑保密性以外,还要考虑信息的真实性、完整性、顺序性、时间性以及不可否认性。这些和消息认证和哈希算法,数字签名和认证协议,密码协议,可证明安全,网络加密技术和认证技术,区块链有关。

第一章 引言

信息安全面临的威胁

  • 安全威胁:
    • 信息安全面临的威胁来自多个方面,可以宏观的分为人为威胁和自然威胁。人为威胁也叫做人为攻击。人为攻击可以分为被动攻击和主动攻击。
      • 被动攻击:即窃听,是对系统的保密性进行攻击。被动攻击被分为两类,一类是获取消息的内容,第二类是进行业务流分析。被动攻击不对消息进行任何修改,因而是难以检测的。所以抗击这种攻击的重点在于预防而非检测。
      • 主动攻击:这种攻击包括对数据流的某些篡改或产生某些假的数据流,分为三种。绝对防止主动攻击是十分困难的,因为需要随时随地对通信设备和通信线路进行物理保护,因此抗击主动攻击的主要途径是检测,以及对此攻击造成的破坏进行恢复。
        • 中断:对系统的可用性进行攻击,破坏计算机硬件、网络或文件管理系统。
        • 篡改:对系统的完整性进行攻击,修改数据文件中的数据、替换某一程序中的功能、修改网络中的消息内容等。
        • 伪造:对系统的真实性进行攻击,在网络中插入伪造的消息或在文件中插入伪造的记录等。
  • 入侵者和病毒
    • 恶意软件指病毒,蠕虫等恶意程序,分为两类。一类需要主程序,另一类不需要。前者是某个程序中的一段,不能独立于实际的应用程序或系统程序;后者是能被操作系统调度和运行的独立程序。
    • 对恶意软件也可以根据能否自我复制来进行分类。可以进行自我复制的程序段或者独立的程序被执行的时候。可能复制一个或多个自己的副本,这些副本可以在这一系统或者其他系统中被激活。
  • 安全业务:
    • 安全防护措施也称为安全业务。
    • 保密业务:保护数据以防被动攻击,保护方式可根据保护范围的大小分为若干级。保密业务还有对业务流实施保密,防止敌手进行业务流分析。
    • 认证业务:用于保证通信的真实性。在单向通信时,认证业务的功能是使接收着相信消息确实是由它自己所声称的那个信源发出的。在双向通信的情况下,认证服务则使通信双方都相信对方是真实的。其次,认证业务还保证通信双方的通信不能被第三方所介入,以假冒其中的一方进行非授权的传输或接收。
    • 完整性业务:目的在于保证所接收的消息未经复制,插入,篡改,重排或重放,因而是和所发出的消息完全一样的。这种服务还能对已毁坏的数据进行恢复。
    • 不可否认业务:用于防止通信双方中的某一方对所传输的消息的否认。
    • 访问控制:防止对网络资源的非授权访问,控制的实现方式是认证,即检查欲访问某一资源的用户是否还有访问权。

信息安全模型

  • 通信双方欲传递某个消息,需通过以下方式建立一个逻辑上的通信信道:首先定义一个由发方到收方的一个路由,然后在该路由上共同执行通信协议。
  • 安全传输技术有以下两个基本部分:
    • 消息的安全传输,包括对消息的加密和认证。加密的目的是将信息搞乱以使敌手无法读懂,认证的目的是检查发送者的身份。
    • 通信双方共享的某些秘密信息,如加密密钥。
  • 为获得消息的安全传输,可能还需要一个可信的第三方,其作用可能是负责向通信双方发布秘密信息或者在通信双方有争议时进行仲裁。
  • 对付未授权访问的安全机制可以分为两道防线:第一道防线称为守卫者,包括基于通行字的登录程序和逻辑屏蔽程序,分别用于拒绝非授权的用户的访问、检测和拒绝病毒。第二道防线由一些内部控制部件构成,用于管理系统内部的各项操作和分析所存有的信息,以检查是否有未授权的入侵者。

密码学基本概念

  • 保密通信系统
    • 发送方将要发送的消息叫做明文,明文被转换成看似无意义的随机消息,成为密文,这种变换叫做加密。其逆过程,即由密文恢复出原文的过程称为解密。
    • 加密算法和解密算法的操作通常都是在一组密钥控制下进行的。分别称为加密秘钥和解密密钥。传统密码体制所用的加密秘钥和解密密钥相同,或实质上等同,即从一个易得出另一个,称为单钥密码体制或对称密码体制。若加密密钥和解密密钥不相同,从一个难以推出另一个,则称为双钥密码体制。
    • 在信息传输和处理系统中,除了预定的接受者外,还有非授权者。他们通过各种方式来窃取机密信息,称为截收者,截收者通过分析可能从接取得密文推断出原来的明文或密钥,这一过程称为密码分析。研究如何从密文推演出明文、密钥或解密算法的学问叫做密码分析学。
    • 保密通信系统可以通过符号化的描述来呈现,规定:明文消息空间M,密文消息空间C,密钥空间K1和K2,在单钥体制下K1=K2=K,此时密钥K需经过安全密钥信道由发送方传给接收方;加密变换Ek1:M -> C,其中k1∈K1,有加密器完成;解密变换Dk2:C -> M同理。称总体(M,C,K1,K2,Ek1,Dk2)为保密通信系统。
    • 密码分析者,用其选定的变换函数h,对截获的密文c进行变换,得到的明文是明文空间中的某个元素,即m’ = h©,一般m’ ≠ m,如果m’ = m,则分析成功。
    • 为了保护信息的保密性,抗击密码分析,保密系统应当满足下述要求:
      • 系统即使达不到理论上是不可破的,即P{m’ = m} = 0,也应当为实际上不可破的。也就是说,从截获得密文或某些已知明文密文对,要决定密钥或任意明文在计算上也是不可行的。
      • 系统的保密性不依赖与对加密体制或算法的保密,而依赖于密钥。这就是著名的Kerckhoff原则。
      • 加密和解密算法适用于密钥空间中的所有元素。
      • 系统便于实现和使用。
  • 密码体制分类
    • 从原理上可以分为两大类,即单钥体制和双钥体制。
    • 单钥体制的加密密钥和解密密钥相同。系统的保密性主要取决于密钥的安全性,算法无需保密。根据此种特性,单钥加密算法可通过低费用的芯片来实现。密钥可由发方产生,或第三方产生后通过安全可靠的方式分配给至收方或双方。密钥产生,分配,存储,销毁等问题,统称为密钥管理。
    • 单钥体制对明文加密有两种方式:一种是按字符逐位加密,称为流密码。另一种是将明文消息分组,逐组进行加密,称为分组密码。单钥体制不仅可以用于数据加密,还可以用于消息的认证。
    • 双钥体制中的每个用户都有一对选定的密钥:一个是公开的,另一个是秘密的。双钥体制的主要特点是将加密和解密能力分开,可以实现多个用户加密的消息只能由一个用户读,或由一个用户加密的消息而使多个用户可以解读。前者可以用于公共网络中的保密通信,而后者可以用于实现对用户的认证。
  • 密码攻击概述
    • 攻击者对密码系统的四种攻击类型,类型划分由攻击者可获取的信息量决定。
    • 其中最困难的是唯密文攻击,这种攻击的手段一般是穷搜索法,对密文依次使用所有可能的密钥试译,直到得到有意义的明文。
    • 与已知明文攻击相关的一种攻击法称为可能字攻击,例如一个公司开发的源代码中,在某个标准位置上会有该公司的版权声明。
    • 如果攻击者能在加密系统中插入自己选择的明文消息,则通过明文消息对应的密文,有可能可以确定密钥的结构,这种攻击叫做选择明文攻击。
    • 无条件安全:如果一个加密算法产生的密文不能给出唯一决定相应明文的足够信息,那么无论敌手收集多少密文,消耗多少时间都不能解密密文。Shannon指出,仅当密钥至少和明文一样长时,才能达到无条件安全。也就是说,除了一次一密方案外,再无其他的加密方案是无条件安全的。
    • 比无条件安全弱的一个概念是计算上安全的,有以下两个准则:
      • 破译密文的代价超过被加密信息的价值。
      • 破译密文所花的时间超过信息的有用期。
攻击类型攻击者掌握的内容
唯密文攻击1.加密算法
2.截获的部分密文
已知明文攻击1.加密算法
2.截获的部分密文
3.一个或多个明文密文对
选择明文攻击1.加密算法
2.截获的部分密文
3.自己选择的明文消息,以及由密钥产生的相应密文
选择密文攻击1.加密算法
2.截获的部分密文
3.自己选择的密文消息,以及相应的被破解的明文

几种古典密码

古典密码的加密是将明文的每一个字母代换为字母表中的另一个字母。

  • 单表代换密码
    • 凯撒密码
      • c = E₃(m) ≡ m + 3 (mod 26), 0 ≤ m ≤ 25
      • m = D₃( c ) ≡ c - 3 (mod 26), 0 ≤ c ≤ 25
      • 3为密钥,加密时,每个字母向后移3位,解密时反之。
    • 移位变换
      • c = Eₖ( m ) ≡ m + k ( mod 26 ), 0 ≤ m,k ≤ 25
      • m = Dₖ( c ) ≡ c - k ( mod 26 ), 0 ≤ c,k ≤ 25
      • k是密钥
    • 仿射变换
      • c = E( m ) ≡ am + b ( mod 26 )
      • m = D( c ) ≡ a⁻¹ ( c - b ) ( mod 26 )
      • 其中a,b是密钥,满足0 ≤ a, b ≤ 25和 gcd(a, 26) = 1的整数,即a,b互素。 a⁻¹表示a的逆元,在模26下的逆元。
    • 多表代换密码
      • Cᵢ ≡ AMᵢ + B (mod N),i = 1, 2, …, j
      • Mᵢ ≡ A⁻¹ ( Cᵢ - B ) (mod N),i = 1, 2, …, j
      • 多表代换密码首先将明文M分为由n哥字母构成的分组M1, M2 … Mj,对每个分组Mi的加密如上述公式。其中:(A,B)是密钥,A是n x n的可逆矩阵,满足gcd(|A|,N) = 1。

第二章 流密码

流密码的基本概念

流密码的基本思想是利用密钥k产生一个密钥流,密钥流由密钥流发生器 f 产生,zi = f(k, )

  • 同步流密码
  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值