iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 28
0
Security

資訊安全大補帖系列 第 28

資安補帖─Day28─Crypto

前言

密碼學的範疇真的超超超超超廣的。
突然發現自己已經寫到第28天,
拜託自己加油QQQQQ
前幾篇文章又增加了很多範疇,
希望可以把文章補到更完整XD

社團經驗談

社團常吵架的原因出在─溝通問題QQ
有時候人會因為在「網路」上只利用文字跟別人溝通
就會覺得對方態度不好,說不定別人真的沒有惡意
這時候可以直接利用語音跟對方講
當然其實有有些人打"XDDDD",但他其實在哭也說不定
透過定期關心,了解幹部或社員的近況

正文

X Y and or xor
1 1 1 1 0
1 0 0 1 1
0 1 0 1 1
0 0 0 0 0
  • 基礎
    • 密碼學
  • 基本起手式
    • 模運算(Mod)
      • 21 % 4 == 1
      • 21 % -4 == -3
      • -21 % 4 == 3
      • -21 % -4 == -1
    • 異或(xor)
      • (110)2 xor (1010)2 == 1100
      • 6 xor 10 == 12
    • 抽象代數:群(Group)、環(Ring)、體(Field)
    • 輾轉相除法
    • 中國剩餘定理
  • 常見密碼
    • 凱散密碼(Caesar Cipher)
      • 固定位移
      • 位移量為3
      • 特定名稱
        • ROT13(位移量為13)
        • ROT47
          • ROT13的衍生物
          • 加入更多的ASCII
      • 作法(n為位移量)
        • 凱薩(明文) = (明文+n)mod 26
        • 解密(密文) = (密文-n)mod 26
    • 仿射密碼(Affine Cipher)
    • k = (a, b)
    • gcd(a, m) = 1
      • a跟m互質
    • 加密k(x) = (ax + b) b mod m
    • 解密k(x) = a^{-1}(x - b) b mod m
    • a = 1 的時候其實就是凱薩

CTF例題

  • AIS3_Pre_exam_2016-Crypto1
  • xortool 安裝教學
    • git clone https://github.com/hellman/xortool.git
    • cd xortool
    • python setup.py install
  • writeup
    • Hint: xor
    $xortool -o crypto1
    The most probable key lengths:
       1:   10.6%
       3:   12.7%
       6:   11.6%
       9:   9.7%
      13:   13.7%
      15:   7.8%
      18:   6.9%
      21:   6.1%
      26:   8.1%
      39:   12.7%
    Key-length can be 3*n
    400 possible key(s) of length 13:
    I@d# HtO%u~qd
    I@d# HOO%u~qd
    I@O# HtO%u~qd
    I@O# HOO%u~qd
    HAe"!IuN$t\x7fpe
    ...
    Found 0 plaintexts with 95.0%+ printable characters
    See files filename-key.csv, filename-char_used-perc_printable.csv
    
    • 使用最有可能的key長度13沒成功
    • 使用39試試看
      • xortool -o crypto1 -l 39
      • 解出大量檔案,找看看有沒有flag
      • grep -r ais3 資料夾名稱
    • xortool -c 20 -m 250 crypto1
      • 利用更準確的模式進行xortool
        • ( -m ) 最大長度字元
        • ( -c ) 最常用字元(char)

工具網址

安裝筆記

  • 數學Library-gmp
    • ubuntu、debian
      • sudo apt-get install libgmp-dev
    • CentOS、RedHat、Fedora
      • yum install gmp-devel
    • 再安裝 pip2 install gmpy
  • 安裝gmpy2
    • ubuntu、debian
      • apt-get install libgmp-dev
      • apt-get install libmpfr-dev
      • apt-get install libmpc-dev
    • 再安裝pip3 install gmpy2 --user

上一篇
資安補帖─Day27─SQL injection
下一篇
資安補帖─Day29─Crypto2
系列文
資訊安全大補帖53

尚未有邦友留言

立即登入留言