iT邦幫忙

2023 iThome 鐵人賽

DAY 15
0

前言

這次人在老家寫文,熱到不能思考 XD,今天開始踏進密碼學的領域!

Crypto

這邊指的不是加密貨幣,密碼學的全名為 Cryptography,一般來說可以分為兩種:

  • 古典密碼學
  • 現代密碼學

古典密碼學

古典密碼學大部分是使用替換或是移項的方式來加密,大致上也可以分為幾類:

  • 單表替換加密
  • 多表替換加密
  • 其他

單表替換加密

單表替換加密通常是明文與密文可以一對一 mapping,所以像凱薩密碼(Caesar)也屬於單表替換加密的類型。

凱薩密碼應該很多人剛開始學程式的時候都寫過 XD,原理也相當容易理解,就是設一個偏移量 n,然後將明文依據字母順序移動 n 位,就可以算出密文。

假設我們將 n 設為 3,對照表如下:

A B C ... X Y Z
D E F ... A B C

這種方式除了可以用暴力破解,也能用詞頻分析的方式來破解。

多表替換加密

相對於單表只用一個表來對應,多表就是用了多個表來對應,乍聽之下可能很抽象,我們實際看一個例子:維吉尼亞密碼
https://ithelp.ithome.com.tw/upload/images/20230929/20162615iP24Pc2tW0.png

Credit: https://commons.wikimedia.org/wiki/File:Vigen%C3%A8re_square.svg

假設我們的明文是 HELLO WORLD!,並且 key 是 ITHOME,那麼怎麼得出密文呢?

首先如果 key 比明文還要長,我們需要先把 key 給 padding 到和明文一樣的長度:

明文 H E L L O W O R L D
KEY I T H O M E I T H O

依據明文和 key,我們就可以到上面的表對照出密文:

明文 H E L L O W O R L D
KEY I T H O M E I T H O
密文 P X S Z A A W K S R

因此可得密文就是 PXSZA AWKSR!,一般標點符號和空格都不管它 XD。

可以看見 OW 都是對應到 A,所以詞頻分析就不管用了。

後記

今天回老家時間好少 XD,沒有足夠的時間可以更深入研究,不過後續幾天應該都還是會寫 Crypto,希望可以涵蓋到多一點東西!


上一篇
Day 14. Web Security - SSRF 介紹
下一篇
Day 16. Crypto - 雜湊與現代密碼學
系列文
進了資安公司當後端 RD 才入門資安會不會太晚了30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言