p = 57092957057384230690303198761058034094859258539355954234059064085097060056186338893145278836857007868453350859297747381734217426552410127089962523253805231253327423 q = 2841175794376981485685944329309369604591631077159915516404228304178440077816194532730501118291350227769623123843923435156398000132729751621749907 e = 65537 c = "E2L+9hcy+HyDXll5Ai9qP97R+GzEObFSc1GWZCmgu/AT/PHlVcEgbZuNBJCV6+BY4sN4fuIQv/sBLe8Z9hvkMucAb3oeleGAohk+dzA6OfWY/GM1iFDBP+J83iK2zqZmDYeqx7Ot1y3RwI+PpXvN0QvAggA69EhNwnTDRGr8+E4="
import base64 import libnum def egcd(a,b): if a == 0: return (b, 0, 1) else: g, y, x = egcd(b % a, a) return (g, x - (b // a) * y, y) def modinv(a, m): g, x, y = egcd(a, m) if g != 1: raise Exception('modular inverse does not exist') else: return x % m n = p*q d = modinv(e, (p-1)*(q-1)) enc = libnum.s2n(base64.b64decode(c)) m = pow(enc,d,n) print libnum.n2s(m) #flag{748814fd3070e914}
題目描述:
題目:常見的對稱加密
內容:標準的對稱加密發現S盒有問題python
S: [14, 13, 4, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7] [0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8] [4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0] [15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13] [15, 1, 8, 14, 6, 11, 3, 4, 9, 7, 2, 13, 12, 0, 5, 10] [3, 13, 4, 7, 15, 2, 8, 14, 12, 0, 1, 10, 6, 9, 11, 5] [0, 14, 7, 11, 10, 4, 13, 1, 5, 8, 12, 6, 9, 3, 2, 15] [13, 8, 10, 1, 3, 15, 4, 2, 11, 6, 7, 12, 0, 5, 14, 9] [10, 0, 9, 14, 6, 3, 15, 5, 1, 13, 12, 7, 11, 4, 2, 8] [13, 7, 0, 9, 3, 4, 6, 10, 2, 8, 5, 14, 12, 11, 15, 1] [13, 6, 4, 9, 8, 15, 3, 0, 11, 1, 2, 12, 5, 10, 14, 7] [1, 10, 13, 0, 6, 9, 8, 7, 4, 15, 14, 3, 11, 5, 2, 12] [7, 13, 14, 3, 0, 6, 9, 10, 1, 2, 8, 5, 11, 12, 4, 15] [13, 8, 11, 5, 6, 15, 0, 3, 4, 7, 2, 12, 1, 10, 14, 9] [10, 6, 9, 0, 12, 11, 7, 13, 15, 1, 3, 14, 5, 2, 8, 4] [3, 15, 0, 6, 10, 1, 13, 8, 9, 4, 5, 11, 12, 7, 2, 14] [2, 12, 4, 1, 7, 10, 11, 6, 8, 5, 3, 15, 13, 0, 14, 9] [14, 11, 2, 12, 4, 7, 13, 1, 5, 0, 15, 10, 3, 9, 8, 6] [4, 2, 1, 11, 10, 13, 7, 8, 15, 9, 12, 5, 6, 3, 0, 14] [11, 8, 12, 7, 1, 14, 2, 13, 6, 15, 0, 9, 10, 4, 5, 3] [12, 1, 10, 15, 9, 2, 6, 8, 0, 13, 3, 4, 14, 7, 5, 11] [10, 15, 4, 2, 7, 12, 9, 5, 6, 1, 13, 14, 0, 11, 3, 8] [9, 14, 15, 5, 2, 8, 12, 3, 7, 0, 4, 10, 1, 13, 11, 6] [4, 3, 2, 12, 9, 5, 15, 10, 11, 14, 1, 7, 6, 0, 8, 13] [4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1] [13, 0, 11, 7, 4, 9, 1, 10, 14, 3, 5, 12, 2, 15, 8, 6] [1, 4, 11, 13, 12, 3, 7, 14, 10, 15, 6, 8, 0, 5, 9, 2] [6, 11, 13, 8, 1, 4, 10, 7, 9, 5, 0, 15, 14, 2, 3, 12] [13, 2, 4, 8, 6, 15, 11, 1, 10, 9, 3, 14, 5, 0, 12, 7] [1, 15, 13, 8, 10, 3, 7, 4, 12, 5, 6, 11, 0, 14, 9, 2] [7, 11, 4, 1, 9, 12, 14, 2, 0, 6, 10, 13, 15, 3, 5, 8] [2, 1, 14, 7, 4, 10, 8, 13, 15, 12, 9, 0, 3, 5, 6, 11] plaintext: ec33e878b62ab8a5f8250d7156c719dd35916f1471a4c7217944cd89d2cfb7f9 key: welcome
很簡單的加密bash
strings = [0x98, 0x9E, 0x93, 0x99, 0xAD, 0x7B, 0xA0, 0xA0, 0x97, 0xA4, 0x7F, 0xA1, 0xA0, 0x99, 0xA1, 0x9E, 0x9B, 0x93, 0x91, 0x84, 0x77, 0xAF] for i in range(len(strings)): flag += chr(strings[i] - 50) print flag #flag{InnerMongolia_RE}
7B56261B810D2145C20F
脫殼加密
key = [54,61,51,52,47,108,111,97,61,106,107,105,108,56,106,62,85,89,82,7,80,24] print len(key) flag = "" for i in range(22): flag += chr(key[i]^(i+80)) print flag #flag{996e3120e4a580d4}