密码学基础

密码学基本概念

      密码学(Cryptology)是结合数学、计算机科学、电子与通信等学科于一体的交叉学科,研究信息系统安全的科学。起源于保密通信技术。具体来讲,研究信息系统安全保密和认证的一门科学。

      密码编码学,通过变换消息(对信息编码)使其保密的科学和艺术

      密码分析学,在未知密钥的情况下从密文推演出明文或密钥(破解或攻击)的艺术

密码系统的组成

      一个加密系统是由明文、密文、加密算法、解密算法、密钥五部分组成。

  • 明文:作为加密输入的原始信息,即消息的原始形式
  • 密文:明文经加密变换后的结果,即消息被加密处理后的形式
  • 密钥:参与明密文变换的参数
  • 加密算法:将明文变换为密文的变换函数,相应的变换过程称为加密,即编码的过程
  • 解密算法:将密文恢复为明文的变换函数,相应的变换过程称为解密

密码学基础_第1张图片

密码系统形式化的定义

The syntax of encryption. A private-key encryption scheme,or cipher,is comprised of three algorithms: the first is a procedure for generating keys, the second a procedurefor encrypting, and the third a procedure for decrypting. These algorithms have the following functionality:
      1、The key-generation algorithm Gen is a probabilistic algorithm that out-puts a key k k k chosen according to some distribution that is determinedby the scheme.

      2、The encraption algorithm Enc takes as input a key k k k and a plaintext m m m and outputs a ciphertext c c c. We denote the encryption of the plaintextm using the key k k k by E n c k ( m ) Enc_k(m) Enck(m).

      3、The decryption algorithm Dec takes as input a key k k k and a ciphertext c c c and outputs a plaintext m m m. We denote the decryption of the ciphertext c c c using the key k k k by D e c k ( c ) Dec_k(c) Deck(c).

现代密码体制的分类

  • 对称密码体制(Symmetric System)
          加密密钥和解密密钥相同,又称为秘密密钥体制或单密钥体制。从密钥使用方式上分为分组密码和序列密码。

  • 非对称密码体制(Asymmetric System)
          加密密钥和解密密钥不相同,并且从加密密钥很难推出解密密钥,又称为公钥密码体制。该体制下,用一个密钥进行加密,而用另一个密钥进行解密。参与加密运算的密钥称为加密密钥,又称为公钥;参与解密运算的密钥称为解密密钥,也称为私钥。

密码体制的基本要求

  • 密码体制既易于实现又便于使用,主要是指加密函数和解密函数都可以高效的计算
  • 密码体制的安全性是依赖于密钥的安全性,密码算法是公开的
  • 密码算法安全强度高,密码分析者除了穷举搜索攻击外再找不到更好的攻击方法
  • 密钥空间应足够大,使得试图通过穷举密钥空间进行搜索的方式在计算上不可行

密码算法公开的意义
有利于增强密码算法的安全性
有利于密码技术的推广应用
有利于增加用户使用的信心
有利于密码技术的发展

密码分析学

      研究如何分析或破解各种密码编码体制的一门科学,密码分析也称为密码破译,是指在密码通信过程中,非授权者在不知道密钥的条件下对密文进行分析,试图得到明文或密钥的过程。解密和密钥破译都是设法将密文还原成明文的过程,但具备的条件不同。

密码分析分类

  • 唯密文攻击(Ciphertext only),破译者已知:加密算法、待破译的密文

    密码分析者除了拥有截获的密文外(密码算法是公开的),没有其它可以利用的消息。密码分析者的任务是恢复尽可能多的明文,或者最好能推算出解密密钥,这样就很容易解出被加密的信息。这种攻击的方法至少可采用穷举搜索法,即对截获的密文依次用所有的密钥尝试,直到得到有意义的明文。只要有足够多的计算资源和存储资源,理论上穷举搜索是可以成功的,但实际上,任何一种能保障安全要求的算法复杂度都是实际攻击者无法承受的。在这种情况下进行密码破译是最困难的,经不起这种攻击的密码体制被认为是完全不安全的(类似网络通信中仅仅进行搭线窃听)
    密码学基础_第2张图片

  • 已知明文攻击(Known plaintext),破译者已知:加密算法、一定数量的明文和对应的密文

    密码分析者不仅掌握了相当数量的密文,还有一些已知的明-密文对可供利用。密码分析者的任务是用密文信息推导出解密密钥或导出一个替代算法,此算法可以对所获得的密文恢复出相应的明文。在现实中,密码分析者可能通过各种手段得到更多的信息,即得到若干个明-密文对并不是十分困难的事,而且明文消息往往采用某种特定的格式,如电子现金传送消息总有一个标准的报头或标题等等。对于现代密码体制的基本要求:不仅要经受得住唯密文攻击,而且还要经受得住已知明文攻击
    密码学基础_第3张图片

  • 选择明文攻击(Chosen plaintext)CPA,破译者已知:加密算法、选定的明文和对应的密文

    密码分析者不仅能够获得一定数量的明-密文对,还可以选择任何明文并在使用同一未知密钥的情况下能得到相应的密文。如果攻击者在加密系统中能选择特定的明文消息,则通过该明文消息对应的密文就有可能确定密钥的结构或获取更多关于密钥的信息。选择明文攻击比已知明文攻击更有效,这种情况往往是密码分析者通过某种手段暂时控制加密机
    密码学基础_第4张图片

  • 选择密文攻击(Chosen ciphertext)CCA,破译者已知:加密算法、选定的密文和对应的明文

    密码分析者能选择不同被加密的密文,并还可得到对应的明文,密码分析者的任务是推出密钥及其它密文对应的明文。如果攻击者能从密文中选择特定的密文消息,则通过该密文消息对应的明文有可能推导出密钥的结构或产生更多关于密钥的信息。这种情况往往是密码分析者通过某种手段暂时控制解密机。(暂时控制解密机)
    密码学基础_第5张图片

  • 选择文本攻击(Chosen text),破译者已知:加密算法、选定的明文和对应的密文、选定的密文和对应的明文

    它是选择明文攻击和选择密文攻击的组合,即密码分析者在掌握密码算法的前提下,不仅能够选择明文并得到对应的密文,而且还能选择密文得到对应的明文。这种情况往往是密码分析者通过某种手段暂时控制加密机和解密机。

攻击密码体制的常用方法

  • 穷举攻击
          密码分析者尝试所有的密钥来破译密码。穷举攻击所花费的时间等于尝试次数乘以一次解密所需时间。因此,可以通过增大密钥量或增加解密算法的复杂性来对抗穷举攻击。不过抵御穷尽攻击最好的方法是增大密钥空间,因为增加解密算法的复杂性,也增加了合法用户使用密码系统的计算量

  • 统计分析攻击
          密码分析者通过分析密文和明文的统计规律来破译密码。统计分析攻击在历史上为破译做出过极大的贡献,大多数传统密码都可以通过统计分析的方法来破译。对抗统计分析攻击的方法是设法使明文的统计特征尽可能地不带入密文。如果密文不带有明文的痕迹,那么统计分析攻击成为不可能。

  • 数学分析攻击
          密码分析者针对加密变换所依赖的数学难题(如大整数的素因子分解、离散对数等),通过数学求解的方法(如二次筛法、积分指数法等)来设法找到相应的解密变化,从而实现破译。对抗这种攻击,应该选用具有坚实的数学基础和足够复杂的加密方法。

评价密码系统安全性的方法

  • 无条件安全性
          不论提供的密文有多少,密文中所包含的信息都不足以惟一地确定其对应的明文;
          具有无限计算资源(诸如时间、空间、资金和设备等)的密码分析者也无法破译某个密码系统。

  • 计算安全性
          涉及到攻破密码体制所做计算的工作量。计算出或估计出破译密码系统的计算量下限,利用已有的最好方法破译该密码系统所需要的努力超出了破译者的破译能力(诸如时间、空间、资金等资源)。

  • 可证明安全性
          通过有效的转化,将对密码体制的任何有效攻击归约到解一类已知困难问题,即使用多项式归约技术形式化证明一种密码体制的安全性,称为可证明安全性。
          譬如,如果给定大整数的素因子分解是不可行的,那么RSA密码体制是不可破解的。
          注:这种方法只是说明了安全性和另一个问题相关的,并没有完全证明它是安全的。
    RSA密码体制是不可破解的。
          注:这种方法只是说明了安全性和另一个问题相关的,并没有完全证明它是安全的。

你可能感兴趣的:(密码学,安全,网络安全)