加入收藏 | 设为首页 | 会员中心 | 我要投稿 网站开发网_安阳站长网 (https://www.0372zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

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

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

上一节提到了一种认证方案,但在某些场景下还存在诸多不足,如无法防止否认、无法抵御中间人攻击的问题。无法防止否认是因为密钥相同,无法判断谁发出了这条消息,因此将密钥分开为加密密钥和解密密钥就可以解决无法防止否认的问题。这是不是跟公钥密码很相似,,可以将数字签名看成是公钥密码的反过程,用私钥加密来生成签名,用公钥解密来验证签名(这也要求不对称加密算法可逆,由此可是RSA多牛逼)。但前文讨论过RSA算法效率不高,因此数字签名的做法通常:单向散列函数+RSA算法。

  • 组成:单向散列函数+公钥密码算法+公钥;
  • 加密过程:A将信息t经过单向散列函数运算得到h,利用A的私钥对h加密得到数字签名s;
  • 认证过程:B收到t和s,利用A的公钥对s进行解密,再将t散列,对比两者是否一致即可。
  • 优点:能够识别篡改和伪装,还可以防止否认;
  • 缺点:由于用到了公钥密码,那仍然无法理想的解决中间人攻击,因此提出了证书的概念;
  • 常见密码算法:RSA等算法组合;
  • 用途:各种需要认证的场景;

6. 证书

通过上面的讲解可以看出,密码学的基础是对称密码+公钥密码,但它们仍然无法抵御中间人攻击,也即M想办法阻断A和B的直接通信,同时伪装成B然后与A通信,伪装成A然后与B通信。这个问题在密码学看来就是个死循环,因此需要引入额外的技术——社会学知识:让公钥以及数字签名技术成为一种社会性的基础设施,即公钥基础设施(public key intrastructure),简称PKI。而证书,就是将公钥当作一条消息,由一个可信的第三方对其签名后所得到的公钥。

7. 伪随机数生成器

前面介绍的几项技术仿佛能保证信息的安全性,但其中仍然存在着坑:密钥的由来以及各种算法参数的由来。很显然,如果它是由特定的序列来生成的,那么攻击者很容易就能推测出密钥。那如何才能让攻击者没法推测出来呢?那就是用随机数。可又出现了一个问题,怎么得到随机数呢?一次次的扔硬币肯定不行,那还是需要一个算法来快速的生成类似随机数的数,这就是伪随机数生成器。因此这个伪随机数生成器的算法还是需要一番功夫的,这里就不再赘述。

四、 现代密码学常见的密码算法

1. 对称算法

对称密码算法有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立。在大多数对称算法中,加密解密密钥是相同的。这些算法也叫秘密密钥算法或单密钥算法,它要求发送者和接收者在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都能对消息进行加密解密。只要通信需要保密,密钥就必须保密。

(1) DES:DES算法的入口参数有三个:Key、Data、Mode。其中Key为7个字节共56位,是DES算法的工作密钥;Data为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。其功能是把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位,其置换规则为将输入的第58位换到第一位,第50位换到第2位……依此类推,最后一位是原来的第7位。L0、R0则是换位输出后的两部分,L0是输出的左32位,R0是右32位,例:设置换前的输入值为D1D2D3……D64,则经过初始置换后的结果为:L0=D58D50……D8;R0=D57D49……D7。

经过16次迭代运算后,得到L16、R16,将此作为输入,进行逆置换,逆置换正好是初始置换的逆运算,由此即得到密文输出。

此算法是对称加密算法体系中的代表,在计算机网络系统中广泛使用。

(编辑:网站开发网_安阳站长网)

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