iT邦幫忙

2024 iThome 鐵人賽

DAY 30
0
佛心分享-刷題不只是刷題

一直刷 CTF系列 第 30

一直刷 CTF - Day30

  • 分享至 

  • xImage
  •  

Crypto 1

棒棒的練習資源

  • 編碼
  • 古典密碼
  • 穿插「ㄧ」點數學
  • 流加密
  • 對稱式加密

先裝套件

pip install pycryptodome

什麼是編碼

「編碼器(英語:Encoder)是一種將資訊由一種特定格式轉換為其他特定格式的感測器、軟體或是演算法,轉換的目的可能是由於標準化、速度、保密性、保安或是為了壓縮資料。」——維基百科

Image

Image

Image

常見文字編碼

  • ASCI
    • 用一個 byte 來表示字母、數字、符號,是針對英文設計的,Unicode的最初128個字符與ASCII完全相同 (因為只有了 128 種可能,所以最左邊的 bit 永遠是 0)
  • UTF-8
    • 用 1~4 bytes 來表示一個字符,也包含了 ASCII 的字符,因為 ASCII 的字符只用 1 byte 表示,所以 UTF-8 能完全兼容原先是 ASCII 編碼的文件
    • 容納了各國語言,算是 Unicode 的一種實現方式
  • HEX (16 進位)
  • Base64
    • 用 64 個字符來表示二進位數據,常用於在 URL、Cookie、網頁中傳輸少量二進位數據,常見編碼結果會有 =, ==

Lab - Complex Encoder

要先用 Base64 解碼,再用 HEX 解碼

Image

Lab - F**k Encoder

用 BrainFuck 和 JSFuck 都試試看,然後發現用 JSFuck 解密 Flag 就出來了

古典密碼學

加解密的用途

Image

即便被攔截如果加解密夠好,也能確保密文不被破譯

常見的加解密

  • 凱薩密碼
    • ROT13
    • 曹操密碼
  • 簡易替換密碼
    • Image
    • 解密方式:頻率分析
    • Image
  • 維吉尼亞密碼(Vigenere)
    • Image
    • Image
    • 用密鑰長度切分,每一段相同位置的偏移量會相同 (例如上圖的CSASTPK的 K 和 CSASTPI 的 I 同樣都是向右偏移兩格) ,這樣就能分別對相同位置的字幕做頻率分析
  • 波雷費密碼 (Playfair)
    • Image
  • 柵欄密碼 (Rail fence)
    • Image
    • 密鑰是有幾個 _

Lab - vigenere cipher

線上解密工具

然後找了一下就發現了一個看起來像正確 flag 的字串

Image

Lab - secure substitution

[線上解密工具](secure substitution)

丟上去跑出來的第一個就是 Flag 了

Image

XOR

Image

MOD

Image

Lab - XOR wormup

改一下他的程式碼就可以得到 Flag 了

from Crypto.Random import get_random_bytes
# from flag import FLAG

FLAG = bytes.fromhex("603ad76575ed41dd3fd38be80d6edfdc569e2a324c928741129e210e2c934aa3770ff8d4f0c5340e82d9c0eea5")

def xor_bytes(a, b):
    return bytes(x ^ y for x, y in zip(a, b))

random_data = bytes.fromhex("0209e4030e9929b44c8ce29b5216b0ae09ed456d29f3f4386be7585114f22ec2436ecdb795f2506db0bff5dcd8")
result = xor_bytes(FLAG, random_data)
print({result.decode()})

流密碼

Image

隨機數

Image

偽隨機數

Image

Image

線性同餘生成器 (Linear Congruential Generator)

Image

Image

Image

Image

其他常見方法

Image

反饋位移生成器 (Feedback Shift Register)

Image

Image

lab - eof-almost baby prng

lab - easy lcg

lab - eof lf3r

對稱式加密

Image

重點是 使用同一把鑰匙

基本策略

  • Confusion
    • 混淆密文和密鑰的關係,使難以從密文推斷出密鑰
  • Defusion
    • 改變一點點明文,就能改變很多密文

Feistel Network

Image

DES (Data Encryption Standard)

Image

Image

Image

Image

Substitution-Permutation Network

Image

AES (Advanced Encryption Standard)

Image

Image

Image

Image

TODO

之後好好研究一下原理還有把上面三題 lab 做完

參考資料


上一篇
一直刷 CTF - Day29
系列文
一直刷 CTF30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言