松山高中 密碼學入門

大家午安 ~ 我是 HrJ 

現任 TDOHacker

 總召兼北區召集人

現任 Leukocyte-Lab
營運長

本日主題 : 

讓人好想睡覺的密碼學

不讓你睡的 密碼學 <3

先讓我們來看看生活中的密碼學

為什麼上網連線一定要加密 ?

不走 HTTPS 可能密碼遭側錄

沒加密的HTTP可是綿羊牆常客呢

沒加密隨時可能被側錄

Secure Sockets Layer (SSL)

  • 1995 年出 2.0 的公開版
  • 1996 年出 3.0 版 (因為 2.0 安全性問題)
  • 1999 年被 TLS 1.0 取代

Transport Layer Security (TLS)

  • 將 SSL 3.0 標準化與修改後成為 TLS 1.0 
  • 2006 年 TLS 1.1
  • 2008 年 TLS 1.2

為什麼 WIFI 一定要加密 ?

為什麼密碼&敏感資訊一定要加密?

 當 DB 被竊時一覽無遺

密碼沒加密可能在郵件傳輸時洩露

常用加密法可簡分成兩種

  • 對稱式加密法 
     
  • 非對稱式加密法

何謂 對稱式加密 

知名對稱式加密演算法:

進階加密標準
(Advanced EncryptionStandard,AES)

  • 由來:NIST為了取代DES於1997年4月正式公告徵求下一代的區塊加密碼器AES,以保護敏感(sensitive)但非機密(unclassified)的聯邦資料。

  • 演算法:Rijndael演算法

  • 演算法特色:強度高、適合用於高速網路並且容易 在硬體上實作。

何謂 非對稱式加密 

知名非對稱演算法

RSA 加密演算法

  • 基礎:以質數同餘有限體( Galois )的指數運算為基礎 – 指數運算需要 O((log n)3) 個運算 (簡單問題)

  • 安全性:建立在分解大質數的困難度上 -> 因數分解需要 O(e log n log log n) 個運算 (困難問題)

  • 強度:若使用很大的整數(≧1024位元),就會難以找出最大公因 數。

P=61、Q=53

N=61 x 53=3233

φ(3233)=(61-1)(53-1)3120

E需符合1<E<3120且與3120互質

選擇E=17

計算模反元素得D=2753

這時候就可以開始進行加、解密動作,假設明文M=65

加密C=MEmodN=6517mod3233=2790

解密M=CDmodN=27902753mod3233=65

講完這兩項

不會有人跟我說也可以用 MD5 加密吧?

何謂雜湊函數(Hash)

 

說明:

雜湊函數將任何長度的訊息輸入後加以壓縮,轉換而成為一個長度較短且固定的輸出

應用:

  • 確保資料傳送的完整性 

  • 數位簽署

  • 密碼儲存

  • 訊息確認

Message Digest 5 (MD5)

  • 原理:MD5 會將 512 位元區塊分成 16 個 32 位元的區塊,來處理輸入文字。

  • 特性:輸入為一個 512 位元的區塊,輸出為一個 128 位元的訊息摘要。

  • 應用:UNIX/Linux 的 shadow 密碼就是此種技術、驗證檔案完整性。

MD5("The quick brown fox jumps over the lazy dog")
= 9e107d9d372bb6826bd81d3542a419d6
MD5("The quick brown fox jumps over the lazy cog")
= 1055d3e698d289f2af8663725127bd4b

安全雜湊演算法
(Secure Hash Algorithm )

  • 特性:輸入的訊息不能超過 2的64次方個位元,SHA 產生160位元的雜湊值

  • 原理:輸入的訊息會被分成多個 512位元的區段來處理

  • 優點:比MD5能夠預防暴力攻擊 (因為多了32位元)

  • 應用:知名的電子郵件安全性協定PGP就是使用此種演算法。

密碼、連線、資料加密的好處

  • 帳密、信用卡卡號等敏感資料不易因封包側錄而遭竊取。
  • 資料庫洩露時,讓駭客需要花時間破解。
  • 上傳雲端的資料加密,可以保護個人隱私與檔案私密性。

基礎密碼學

何為密碼學?

利用數學方法進行加解密的科學

密碼系統由以下幾項組成:

  • 明文 (Plaintext)

  • 密文 (Ciphertext)

  • 加密演演算法 (Encryption Algorithm)

  • 解密演算法 (Decryption Algorithm)

何謂金鑰 (Key)?

就是一把鑰匙

  • 金鑰是用來和加密演算法產生特定密文的字串

  • 金鑰是一組有一定長度的數字或符號字串,其大小通常以位元(bit)為單位。

  • 金鑰常是演算法則內的一個變數,所以不同的金鑰會產生不一樣的密文

  • 就密碼學而言,金鑰長度越長,密文就越保密

何謂加密技術的強度?

影響加密技術強度的因素

  • 演算法強度

  • 金鑰保護機制

  • 金鑰的長度
       

密碼學上所謂的安全是指?

因為世界上沒有不能被破解的密碼

  • 破解所需要的成本高於該訊息的價值

  • 破解所需要的時間超過該金鑰的壽命

加密的安全性建立於:

Heartbleed

POODLE 

Freak

密碼系統分類?

 

通常可以按照 :

  • 將明文轉換為密文所使用運算方法上的差異
  • 使用金鑰個數的差異
  • 處理明文方法上的差異

將明文轉換為密文
所使用運算方法上的差異:

  • 取代 (substitution)  
  • 置換 (transposition) 
  • 相乘 (product) 

沒規律的單純字母替換

加入關鍵字的混合表

位移加密法

使用金鑰個數的差異:

  • 私密鑰匙(secret-key),或傳統加密系統 
  • 非對稱性或公開鑰匙加密系統 
  • 雜湊 (HASH)

處理明文方法上的差異:

  • 資料區段加密法 (block cipher)  
  • 資料流加密法 (stream cipher) 

大概講完了基本的密碼學常識

手把手來玩簡單加解密

斯巴達加密棍

明文:Legbone is black hat hacker

轉換成:

  • legbo
  • neisb
  • lackh
  • athac
  • ker
     

密文:lnlakeeategichrbskaobhc


 

凱薩加密法

豬圈密碼(共濟會密碼)

數學公式變化 - 模乘法

假設加密公式為 :


C=(M*5) mod 26

其密碼表為 :

那怎麼求解密公式呢 ?

剛剛乘五所以現在就除五?

那我們來套套看 

M=(C÷5) mod 26

好像不通ㄟ

其實我們該取的應該是

5 mod 26的乘法反元素

所以我們應該是取 21

C=(M*21) mod 26

好像都對了?

要注意這類題目有其限制

  • KEY質必須與mod質互餘
  • 不然會出現兩字母以上的對應

Q & A

xzzbmq vlro cxfirob xka jlsb lk

松山高中密碼學

By hrjk

松山高中密碼學

  • 2,711