密码学基础篇

很多人听到密码学一定都吓得逼逼挫,
感觉密码学就很难很多数学很复杂,
不用担心,其实,我也是跟各位一样的啦哈哈。

但其实我也不讨厌数学,严格说起来算是喜欢的,
以前高中就会自己跟同学参加数学检定考试,
之後在机械系微积分、工程数学也都不错,
还有流体力学、热传学、一直到计算流体力学,
当中也是碰到了许多与数学相关的内容,
甚至在准备转职的时候,接触了机器学习里面也是不少数学。
话虽如此,我还是会怕密码学der

但今天这篇的内容阿,没有甚麽数学啦,
假密码学基础的密码学基础,所以真的不用担心。

列出了一些与密码学或是加密有一点点相关的基础内容,
但如果你想找的职位是真的跟密码学有密切关系的,
也许真的是要花时间去搞懂像是AES、RSA、MD5、RC4等等不算演算法,
彼此的原理,还有如何实作,这个其实网路上跟不少书籍也都是有教学。

我自己比较接近这种「数学」的密码学,
大概也是在玩picoCTF的时候,里面有密码学的类型,
只有那个时候花了比较多的时间在研究加密模块还有RSA原理。

不过以身为渗透测试工程师的角度来说,
其实对我的帮助算是很低的,
实际执行专案通常不会碰到需要知道太多密码学演算法之类,
如果真的有与加密相关的漏洞,
多数也是可以利用公开的exploit或是其他检测工具利用漏洞或找出风险。

而且我执行专案多数测试与网站相关,网站传输中的加密就是SSL/TLS,
所以今天後面的不少内容也都是跟SSL/TLS有关。
与其说了解AES演算法甚麽的,对於想学习Web安全与渗透的人,
我比较建议先了解SSL/TLS的整个原理与流程。

照惯例,每篇文章都会附上第一篇的文章,让大家了解一下这系列文章说明
https://ithelp.ithome.com.tw/articles/10264252

1.甚麽是杂凑(HASH)?

杂凑是一种单向的加密演算法,也就是你丢了一串内容A进去之後,会产生出来内容B,并且内容B理论上是无法推算回得到内容A。并且HASH通常具有几个特性,像是当输入的内容有非常少的改变,算出来的结果也会整个不同,还有就是不管输入的内容多长或多短,输出的内容长度固定。

2.甚麽是碰撞(Collision)?

当两个不同的内容A与内容B,都利用同样的HASH演算法得到同样的内容C,这样则为碰撞。

3.对称式加密与非对称式加密差别?

对称式密码学当中加解密通常是使用同一把金钥;而非对称式加密中,加解密为不同的金钥,会有一对金钥,分别为公钥与私钥,公钥加密的内容必须用私钥才能解开,而私钥加密的内容也必须要利用公钥才能解开。

4.ECB区块加密有甚麽风险?

每一个加密区块,同样的明文资料加密後,会得到一样的密文。

5.CBC区块加密有甚麽风险?

Padding Oracle attack

6.甚麽是数位签章?

通常非对称加密当中,私钥为自己拥有,而公钥为其他所有人可以知道的。在传输加密的讯息时,通常是利用公钥加密资讯,来达到资讯的机密性,因为只有我有私钥,只有我可以解开看到里面内容。数位签章则是反过来利用私钥去对要传输内容进行加密(签章),达到资料的完整性,因为每个人都有我的公钥,而只有我的公钥可以正确解开我的数位签章,也就确认了这个内容必定是我传送的。

7.甚麽是SSL/TLS?

SSL与TLS是一种通讯协定,目的在於替传输中的讯息进行资料的安全及完整性。SSL是比较就的协定了,现在几乎都是TLS。

8.甚麽是前向保密(Forward Secrecy,FS)/完美前向保密(Perfect Forward Secrecy,PFS)?

前向保密是通讯协定中的一种安全特性,指的是过去的传输讯息不会因为未来金钥遗失,而导致过去资料被解密,造成资讯泄漏。

9.稍微描述下列的CipherSuite

TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
TLS表示协定、ECDHE表示密钥交换的演算法、ECDSA是认证的演算法、AES为表示256位元并且CBC加密模式的加密演算法、SHA384表示MAC验证算法。

10.描述几个你知道的关於SSL/TLS的漏洞或是攻击?

Heartbleed、BEAST attacks、POODLE attack、SSL Strip...


对数学或是加密演算法有兴趣的,
我觉得可以先研究看看RSA跟椭圆曲线密码学,
先看看合不合胃口XDDD。

若有要补充也都欢迎留言


<<:  [ 卡卡 DAY 16 ] - React Native Animated 入门 + useNativeDriver 好棒棒

>>:  Day 16 - Reverse String

Azure - Day1 储存体帐户 (Storage Accounts)

Home -> 资源群组(Resource Groups) -> 储存体帐户(Stor...

#2. Blurring Loading Image(原生JS版), Vercel 出乎意料好用

将专案部署到Vercel 挑战开跑这两天,遇到最困扰的就是无法顺利将专案部署到GitHub Page...

Day 1 - [绪论] 长照小帮手的背景与动机

大家好,其实这个长照小帮手是我的论文题目,所以这系列的多文章,会有一大部分来自简化的论文内容,再加上...

[Day 27] 甚麽是ChromeDriver?可以自动驾驶吗?

其实相信有爬虫经验的人, 就会发现我们做的许多单元测试, 跟爬虫有87%像, 实际上它的原理跟爬虫也...

【5】超参数 Batch size 与 Learning rate 的关系实验

Colab连结 昨天探讨了 Batch size 的问题和前天的 Warm-up 问题後,其实在我心...