2018/05/31

[Cryptography] RSA private key & public key PEM之解析和驗證

這次要動手來驗證RSA的理論與實際操作Openssl產生的key pair是否一致。

2018/05/30

[Cryptography] 複習筆記: Week4 - Active attack on CBC encryption with a random IV using AES

本週課程探討AE(Authenticated Encryption)的重要性,因為不論是流加密(Stream cipher)或區塊加密(Block cipher),雖然是CPA(Cipher plaintext attack) security,但是無法阻擋Active attack在資料上的完整(Integrity)。


2018/05/28

[Cryptography] 複習筆記: Week2 - Problem Set Question 5

第二週的測驗第五題,在考CBC的概念。

[Cryptography] DES筆記: meet in the middle attack

Meet in the middle attack是在cryptography攻擊上很常見的手法,概念上是把一系列的計算分成前半部份和後半部份,利用建立表格的方式,找到前半部份計算與後半部份計算相等的地方。

2018/05/18

[Cryptography] 數論相關筆記-Quadratic equations mod p

最後,綜合上面幾篇的概念,來解二元一次方程式的難題。題目是:
x2 + 4x + 1 = 0 in Z23


[Cryptography] 數論相關筆記-Fermat and Euler

Fermat's theorem之定義是,若p是一個質數,則存在一個x,x比p小且互質,x會滿足下列式子:
xp-1 = 1 in Zp

2018/05/17

[Cryptography] 數論相關筆記-用Extended Eculid algorithm求Modular multiplicative inverse


在數論中,最大公因數是一個很重要的概念,因為如果兩個數的最大公因數為1,則代表兩個數互質(relatively prime)。要求兩數的最大公因數,可以透過Extended Eculid algorithm來計算。

2018/05/15

[Cryptography] pycrypto筆記: CBC Padding Attacks之程式作業



在AES CBC工作模式下,因為有padding的關係,會使得駭客可以用padding來進行資料的竊取。這次的作業是要利用CBC的Padding來把獲取已知的加密的訊息。

2018/05/08

[Cryptography] pycrypto筆記: SHA256計算之程式作業

在Coursera上Cryptography I之第三週作業中,要利用chaining的方式來計算檔案的SHA256。作業給了兩個檔案,分別是:
1. 驗證用:6.2.birthday.mp4_download, 16,927,313 bytes
2. 作業題目:6.1.intro.mp4_download, 12,494,779 bytes


2018/05/02

[Cryptography] pycrypto筆記: 使用AES區塊加密之CBC和CTR工作模式

在此紀錄學習Coursera上學習密碼學(Cryptography)的一些心得。

首先,在第二週的課程,Dan Boneh教授介紹了區塊加密(Block Ciphers)的概念,特別是進階加密標準(AES, Advanced Encryption Standard)中的兩個工作模式:

1. 密碼塊連結(CBC, Cipher-block chaining): 利用隨機產生的初始向量(IV, Initialization Vector)與明文(Plaintext)區塊做互斥邏輯運算,再透過金鑰(Key)加密區塊,再把IV取代成加密區塊結果,依序加密剩下明文區塊。但缺點是,最後一個明文區塊有dummy padding的問題。假設明文長度剛好為16bytes的倍數,其尾端還得加上由0x16 * 16組成的16 bytes dummy padding。