今天要來開啟Symmetric CryptoGraphy課程!開始學非對稱加密-AES
網址 : https://cryptohack.org/courses/symmetric/course_details/
點進去之後會看到這些題目
根據題目名稱,我相信它會一步一步帶我們認識AES
好! 廢話不多說,按下START COURSE開始吧( •̀ ω •́ )y
今天會接觸這三題
網址 : https://cryptohack.org/courses/symmetric/aes0/
這題在跟我們介紹甚麼是AES,詳細內容會在最後統整時提到
介紹完後問了 :
What is the mathematical term for a one-to-one correspondence?
"一對一"在數學中的術語為何
flag為這個問題的答案
直接把問句複製貼上到古狗找
找到答案為 bijection (對射)
flag : crypto{bijection}
網址 : https://cryptohack.org/courses/symmetric/aes1/
這題在介紹AES的安全性,很難被暴力破解
最後題目問說 :
What is the name for the best single-key attack against AES?
針對AES最好的單密鑰攻擊的名稱是
flag為這問題的答案
其實這個在題目中就有提到
點一下那個an attack,之後就會跳轉到一個介紹 Biclique attack 的介面
由此可知針對AES最好的單密鑰攻擊的名稱為Biclique
flag : crypto{biclique}
網址 : https://cryptohack.org/courses/symmetric/aes2/
這題在跟我們講解AES的加密流程
最後題目要求我們:
Write a matrix2bytes function to turn that matrix back into bytes, and submit the resulting plaintext as the flag.
把matrix矩陣內容轉為bytes型別來得到flag
把題目給的matrix.py下載下來,之後題目要求把matrix矩陣轉回bytes形式
所以利用Crypto.Util.number裡的long_to_bytes實現
[long_to_bytes(i) for row in matrix for i in row]
為python的列表推導式應用
for row in matrix跑了matrix的每一行
for i in row 跑了matrix的每一行裡面的值
用二維陣列表示就是matrix[row][i]
from Crypto.Util.number import *
def matrix2bytes(matrix):
""" Converts a 4x4 matrix into a 16-byte array. """
byte_output_arr = [long_to_bytes(i) for row in matrix for i in row]
byte_output = b"".join(byte_output_arr)
return byte_output.decode()
matrix = [
[99, 114, 121, 112],
[116, 111, 123, 105],
[110, 109, 97, 116],
[114, 105, 120, 125],
]
print(matrix2bytes(matrix))
flag : crypto{inmatrix}
題目出現的名詞 :
one-to-one correspondence between input and output blocks
數學中,一個由集合X映射至集合Y的函數,
若對每一個Y內的y,存在唯一一個在X內的x與其對應,
且對每一在X內的x,存在唯一一個在Y內的y與其對應
it lowers the security level of AES-128 down to 126.1 bits, and hasn't been improved on for over 8 years
2. Initial key addition 新增初始密鑰
SubBytes
ShiftRows
MixColumns
AddRoundKey
這幾題根本就是考英文閱讀阿ˊ_>ˋ再次感謝google大神的協助 \ | /
學密碼學的同時也學了英文w 今天也了解了AES的架構
對射(Bijection) : https://en.wikipedia.org/wiki/Bijection
AES介紹 : https://ithelp.ithome.com.tw/articles/10235060
AES動畫呈現 : https://www.youtube.com/watch?v=gP4PqVGudtg&ab_channel=AppliedGo
AES動畫網址 : https://formaestudio.com/rijndaelinspector/archivos/Rijndael_Animation_v4_eng-html5.html