209 字
1 分鐘
一些 CTF 密碼學會用到的東西
常用到的密碼學工具
- yafu
- factordb
- sagemath
- CoCalc
- CyberChef
常用到的 Python 函式庫
- gmpy2
- libnum
- sympy
- pycryptodome
- owiener
正確安裝 Crypto
pip uninstall crypto pycryptodomepip install pycryptodome
crypto.bytes_to_long 原理
def bytes_to_long(byte): result = 0 for b in byte: result = result * 256 + int(b) return result
crypto.bytes_to_long 原理
def long_to_bytes(long): result = "" for i in range(len(str(long))): result += (chr(long >> (i * 8) & 0xff)) return result[::-1]
RSA 原理
- 隨意選擇兩個大的質數 和 , 不等於 ,計算
- 根據歐拉函數獲取
- 選擇一個小於 並與 互質的整數 (public key) 我們通常取 65537。
- 求得 關於 的模反元素 (private key)
- 丟棄
- 加密:
- 解密:
- 公鑰:
- 私鑰:
RSA 攻擊
N
- p, q 質數太小
- 共用 N
- p, q 太接近
e
- 太小 -> 沒加密到
- 太大 -> 導致 d 太小
- Wiener attack
一些 CTF 密碼學會用到的東西
https://guan4tou2.github.io/posts/some-ctf-crypto/