渗透测试中的密码学(二) 密码算法的分类--从密钥角度

      上一节介绍现代密码学原理的时候提到了密码算法的输入和输出,还有印象么?密码算法一般包含加密和解密两个部分(从程序的角度,一般也会有这两个接口):加密的输入,密钥、明文,输出密文(密码);解密的输入,密钥,密文,输出明文。

       密码算法的分类其实跟输入的形式密切相关的。当然了,从根本上说,算法的实现逻辑决定了输入的形式,但算法本身比较复杂,其中涉及到的一些数学基础知识看着就头大,如果只是为了渗透测试,掌握算法本身的实现逻辑就不是必选项了。所以,将密码算法作为一个黑盒,只从输入的角度对密码算法做一个分类,理解起来会比较容易一些,也便于记忆。

       先说密钥:如果加密密钥和解密密钥相同,那么这种密码算法叫做对称密码算法,这个比较好理解,符合正常的逻辑,一把钥匙对一把锁嘛;另外一类,正好相反,也就是加密密钥和解密密钥不相同,这种密码算法叫做非对称密码算法,也叫公钥密码算法,这种算法第一次接触的话正常人估计会觉得是天方夜谭,严重违反逻辑的,我第一次接触公钥密码算法的时候也是持严重怀疑的态度,完全无法想象,但慢慢的,了解了原理后,取而代之的想法是数学家真的是太牛了。。。。

       对称密码算法本身没什么好说的,逻辑上比较简单。我给你发消息,用一个密钥A加密,你收到加密的消息,也就是密码后,再用密钥A解密。如果信道上有人截获了密码,在不知道密钥的情况下,可以用密钥空间里的每一个密钥做解密尝试,试到天荒地老,海枯石烂。。。

       公钥密码算法中,加密密钥是公开的(谁想拿都可以拿,不限制,不保密,还怕你不知道呢),因此也叫做公钥,但解密密钥是保密的,叫做私钥,公钥和私钥是成对的(在生成的时候同时产生)。我想给你发消息,我先获取你的公钥,用你的公钥对消息进行加密,你收到密码后,用你的私钥对密码进行解密。是不是有点像武侠小说里毒药和解药的感觉?

       估计有人会问,公钥密码怎么有点脱裤子放屁的感觉呢?对称密码算法能解决的事情干嘛要用公钥密码算法这么违反正常逻辑的东西。这个就跟公钥密码算法的产生背景和用途密切相关了。对称密码算法确实逻辑上简单,效率上更是比公钥密码算法高出几个数量级,但有一个问题大家是否想过,对称密码算法中的密钥怎么安全传输呢?

       比如一艘军舰出海执行任务,假设只使用对称密码算法与基地通讯,在出海前跟基地确定了通信的密钥。但走了几天后,突然接到基地通知,出发前预置的通信密钥不知什么原因全部泄露了,现有的加密通信在敌方那里已毫无秘密可言。怎么办?当然是立即更换密钥了,但是怎么更换?叫个快递,还是派个飞机空投?

       这时候,公钥密码学就派上用场了。对称密码算法的密钥泄露了是吧?好说,军舰重新选择一个用于通信的密钥(对称密码算法的),用基地的公钥加个密,发送给基地,基地用自己的私钥解密后拿到新的对称密码算法的密钥,然后使用新的密钥就可以继续安全通信了。什么?万一基地的私钥也泄漏了咋办?那就再换一个公钥密码的密钥(私钥和公钥同时换,这俩成双成对的,永不分离),然后明文通知军舰,我换公钥了啊,新的公钥是123456789,然后重复上述选择新的对称密码算法密钥的过程。。。。啥?那公钥不就泄露了嘛?这个。。。这个。。。仿用兄弟连男一号Winters的一句经典“我是公钥,本来就是要公开的”。

        现在大家看出来公钥密码算法的用途了吧,那就是快速的协商新的密钥,学术点呢叫做用于密钥交换。关于公钥密码学实现的基本原理,或者数学原理,大家若感兴趣的话可以去看看大名鼎鼎的RSA算法(公钥密码学的开山鼻祖),如果再进一步了解了解RSA算法的一些背景故事,大家应该就不会觉得公钥密码学的逻辑那么反人类了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值