密码学基础(一)

来源:互联网 发布:农村淘宝村小二 编辑:程序博客网 时间:2024/05/22 14:22

课程内容

  • 二进制
  • 八进制
  • 十进制
  • 十六进制
  • 进制互转

今天,我们正式开始学习密码学基础的相关知识。
大家有没有认真的查找”密码学知识预热“文档里的相关概念呢?没有也没关系,就是暂时输在了起跑线上嘛。虽然说密码学在比赛中以应用为主,课程比重也较轻,但并不是说它不重要,因为在比赛中,很多时候拿到flag(什么是flag??去百度或者谷歌”CTF中的flag“吧。什么??不会上谷歌??去找帅学长或漂漂学姐帮忙吧)的关键步骤就是密码破译。当你竭尽全力用掌握的web渗透的方法获取到了一段代码时,而这个代码又是一堆奇怪的字符,这可能就需要用到密码破译了。如果你的脑海里没有密码学的相关知识,心里默念MMP并放弃它,是多么可惜啊。
废话少说,我们从最基础的知识开始吧,

进位制,是一种计数方法。小时候老师教我们写数字:1,2,3,4,5,6,7,8,9,写到10你会发现数字由一位变成了两位,并且老师还会多说一句,这叫”逢十进一“。任意一位计数到10时,9所处那个位置归零,并把前一位加一,如19加1等于20,129加1等于130。其实,这就是十进制。进位计数法可以用有限种数字符号表示所有数值。

二进制

我们日常生活中应用最广泛的就是十进制,但是计算机可不认识十进制,计算机是逻辑电路组成的,它只知道高电位低电位两种状态(也可以简单的理解成为通电断电)。伟大的家们就想到了,既然只有这两种状态,那我们就把高电位表示数字”1“,低电位表示数字”0“,二进制就这样诞生了。现代密码几乎都是用计算机处理的,所以再牛逼的密码在计算机中也是用二进制处理的。
二进制就是”`逢二进一“,从0开始数起就是:0,1,10,11,100,101…10101110001…

八进制

”逢八进一“,有0~7共8个数字,把二进制中的3位数码编成一组就是一位八进制码。

十六进制

计算机里用的较多的还有十六进制,”逢十六进一“。实事上,在解答比赛中的逆向题的过程中,大家看到的几乎都是十六进制。十六进制的前10个数字用0,1,2,3,4,5,6,7,8,9表示,而后6个数字10~15则用大写的英文字母A(代表10),B(代表11),C(代表12),D(代表13),E(代表14),F(代表15)表示。

举个例子:

十进制数字520用上述进制表示为:
二进制:1000001000
八进制:1010
十六进制:208
细心的同学应该发现,这520转换成十六进制后,长的跟十进制一样啊?我怎么区分啊?其实,在实际应用中,最常用的表示十六进制数值的方式是将 ‘0x’ 加在数字前,所以,我们应该把208写成0x208

进制互转

关于这四种进制之间的相互转换,我推荐给大家一个地址:
http://www.cnblogs.com/gaizai/p/4233780.html
这里的讲解很详细,也可以结合学校的课本一起看。

小测验:

1.想想看,时钟用的是什么进制呢?
2.将二进制数1111000010.01101分别转换为八进制、十进制和十六进制数。
3.将十进制数137.5分别转换成二进制、八进制。

啰嗦一句:进制转换可以在网上找到大把的工具,很容易算出结果,比赛中一定是优先利用工具求解,但是如果有的同学想考研,那一定要能熟练的写出转换步骤,进制转换可以考研的必备基础呦。