加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_阳江站长网 (https://www.0662zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 评论 > 正文

成为“黑客”前,必学的“密码学原理”

发布时间:2018-12-24 18:53:07 所属栏目:评论 来源:信息安全我来讲你来听
导读:副标题#e# 密码学是一个高度跨学科的领域,包含纯数学、计算机科学以及电子工程等多方面的知识。 许多小白看到这里应该头就大了要学这么多知识才能理解密码学吗?当然不需要如果你的理想是成为密码学科学的研究者或者领域专家,一定要掌握上述学科知识。但是
副标题[/!--empirenews.page--]

”密码学“是一个高度跨学科的领域,包含纯数学、计算机科学以及电子工程等多方面的知识。 "许多小白看到这里应该头就大了"要学这么多知识才能理解密码学吗?"当然不需要"如果你的理想是成为密码学科学的研究者或者领域专家,一定要掌握上述学科知识。但是对于一名"初学者黑客"我们仅需要了解密码学的常规术语、密码加密、密码分析等密码学基本体系就足够了。

接下来我就以本篇文章给想了解密码学的小伙伴们一点启发和引导!

成为“黑客”前,必学的“密码学原理”

一、 什么是密码学

官方定义:密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学。

通俗理解:密码学是隐藏信息的科学和艺术,因此它们是保密的,然后"取消隐藏"它们,以便只有预期的接收者才能阅读它们。基本上,我们可以说密码学是秘密消息传递的科学。

二、 密码学里的常用术语解释

 密码学里的常用术语

  • 消息也成为明文。
  • 加密的消息称为密文。
  • E(M) = C,E为加密函数,M为明文,C为密文。
  • D(C) =M,D为解密函数,C为密文,M为明文 。
  • 算法和密钥:如果算法的保密性是基于保持算法的秘密,这叫受限制的算法。任何算法都是可能被人逆向分析的,显然这样是不安全的。现代密码学采用密钥解决这个问题。密钥用K表示,k1称为加密密钥,k2称为解密密钥,如果K1=K2,或者k2能从k1推算出来,反过来也成立,则这样的算法叫对称算法。如果k1不等于k2,并且k1与k2不能互相推导出来,则这样的算法叫做非对称方法,也叫公钥算法。
  • 密码分析:不知道密钥的情况下,回复出明文的科学。
  • 隐写术:将秘密消息隐藏在其它消息中。最常见的就是在图像中隐藏消息,window下用copy命令直接可成功。

三、 密码学的七个重要工具

密码学的七个重要工具分别是:对称密码、公钥密码、单向散列函数、消息认证码、数字签名、证书和伪随机数生成器。

1. 对称密码

对称密码(symmetric cryptography)是指在加密和解密时使用同一密钥的方式。它是最常见的一种加密方式,通过将信息编码,利用公开的加密算法和保密的密钥完成对信息的加密和解密,其中加密过程和解密过程是对称的,因此被称为对称密码。

这里出现了公开的加密算法的概念,人们通常存在一种错误的观点,即保密的加密算法具有更高的安全性,这被现代密码学称之为"隐蔽式安全性"。因为保密的加密算法只要被使用,迟早会公诸于世,想依靠对密码算法本身进行保密来确保机密性的密码系统也就土崩瓦解了。相反,如果加密算法从一开始就没设想过要保密,则它会得到各种攻击的洗礼,从而实现更强的保密性。因此现代密码学的加密方式基本以"公开加密算法+保密密钥"组成。

  • 组成:公开的加密算法+保密的密钥;
  • 加密过程:A向B发送加密信息t时,需要利用加密算法和密钥对t进行加密;
  • 解密过程:加密过程的逆过程;
  • 优点:巨大的密钥空间能够抵御暴力破解、算法上没有弱点可以抵御其他类型的攻击、加解密运算效率高等优点;
  • 缺点:密钥配送问题(这也是必须用到其它密码技术的原因);
  • 常见密码算法:DES、AES等;
  • 用途:加密信息;

2. 公钥密码

公钥密码(public-key cryptography)是指在加密和解密时使用不同密钥的方式,与对称密钥正好相反,因此也被称为非对称密码(asymmetric cryptography)。

  • 组成:公开的加密算法+公开密钥(公钥)+保密密钥(私钥);
  • 加密过程:A向B发送加密信息t时,需要利用加密算法和B的公钥对t进行加密;
  • 解密过程:B需要利用解密算法(通常与加密算法相同)和B的私钥对t进行解密;
  • 优点:解决了密钥配送的问题;
  • 缺点:加解密算法效率低(意味着它无法直接用于信息加密),中间人攻击(B无法确定密文是由A发来的,因此需要引入新的安全技术);
  • 常见密码算法: RSA等;
  • 用途:加密对称密钥等;

3. 单向散列函数

首先说明,后面这几项技术都不是直接用于加密的。单向散列函数(one-way hash function)有一个输入和一个输出,其中输入称为消息,输出称为散列值。它通过一个不可逆的函数y=f(x)将x映射为y,通过对比传输前后y的变化来判断x是否被篡改。举个例子:假设A要传输t给B,并且要能够让B判断传输过程中是否有人修改过t,那怎么做呢?A可以利用单向散列函数,求出y=f(t),并将t和y一起发给B;B得到t和y后,利用f(t)=y1,判断y和y1是否相同,不同则说明传输过程中t或y出现了错误,信息不完整,相同则说明传输过程中t没有被修改过。

  • 组成:单向散列函数;
  • 优点:算法效率高、辨别篡改;
  • 缺点:无法辨别伪装(这就需要新的安全技术来保证);
  • 常见密码算法:MD5、SHA1等;
  • 用途:判断篡改、基于口令的加密、消息认证码、数字签名等;

4. 消息认证码

说到这里,B仍然无法确定与他通信的人是A。那如何认证A就是A呢?本节介绍的消息认证码(message authentication code)是一种确认完整性并进行认证的技术,简称MAC。它的思想很朴素,为了确保完整性,需要MAC与信息内容相关,为了能够认证,可以利用公共密钥来提供。很显然,MAC可以用单向散列函数与密钥的组合来实现,这也是现实中MAC的一种实现方案。

  • 组成:完整性技术(单向散列函数等)+保密密钥;
  • 加密过程:将密钥作为完整性技术的种子引入,从而得到MAC;
  • 认证过程:将信息t做相同的操作,并与传来的MAC对比,辨别伪装;
  • 优点:辨别篡改和伪装;
  • 缺点:存在密钥传递的问题,当然可以引入公钥方案解决,但又会引入中间人攻击的问题(这也是数字签名的作用)。另外也存在无法防止否认的问题;
  • 常见密码算法:HMAC等;
  • 用途:判断篡改、认证;

5. 数字签名

(编辑:应用网_阳江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读