密码学基础

密码学基本概念

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

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

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

密码系统的组成

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

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

在这里插入图片描述

密码系统形式化的定义

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),破译者已知:加密算法、待破译的密文

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Dan Boneh 是一位著名的密码家和计算机科家,他开设的密码基础课程被广泛认为是密码的理想选择。 在 Boneh 的密码基础课程中,生将密码的基本概念、原则和技术。课程内容涵盖了对称加密、公钥加密、哈希函数、数字签名等关键密码算法和协议的深入讲解。 在课程开始的阶段,Boneh 会简要介绍密码的历史背景和基本概念,然后逐步引入重要的密码算法。生将习如何使用对称加密算法来保护数据的机密性,如何使用公钥加密算法来实现安全的通信,以及如何使用哈希函数来验证数据的完整性。 此外,课程还将涵盖一些高级密码主题,如数字签名和零知识证明等。生将习如何使用数字签名算法来验证数据的身份和完整性,以及如何使用零知识证明来实现安全的认证和身份验证。 Boneh 的密码基础课程注重理论与实践相结合,生将有机会参与编写和分析密码算法的代码。通过实践,生将更深入地理解密码的核心概念和实际应用。 总而言之,Dan Boneh 的密码基础课程是一门全面且深入的密码课程,能够帮助生建立扎实的密码基础,为深入研究密码或从事密码相关工作打下坚实的基础。毫无疑问,这是一门高品质的密码课程,值得推荐给对密码感兴趣的生和从业人员。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值