安全性演算法

其實只是一般的密碼學

什麼都不會 演算法大燒雞

Repkironca

a.k.a. 阿蘇

Before we start...

圖解演算法 - 石田寶輝、工崎修一

Contents

  • 針對訊息傳遞的攻擊
  • 編碼
  • 雜湊函數
  • 對稱性密碼系統
  • 非對稱密碼系統

針對訊息傳遞的攻擊們

  • 竊聽 - Eavesdrop
  • 竄改 - Falsification
  • 電子欺騙 - Spoofing
  • 抵賴 - Repudiation

針對訊息傳遞的攻擊們

  • 竊聽 - Eavesdrop
  • 竄改 - Falsification
  • 電子欺騙 - Spoofing
  • 抵賴 - Repudiation

A

B

Hacker

針對訊息傳遞的攻擊們

  • 竊聽 - Eavesdrop
  • 竄改 - Falsification
  • 電子欺騙 - Spoofing
  • 抵賴 - Repudiation

liang rich orz...

lemonilemon rich orz...

Hacker

lemonilemon rich orz...

A

B

針對訊息傳遞的攻擊們

  • 竊聽 - Eavesdrop
  • 竄改 - Falsification
  • 電子欺騙 - Spoofing
  • 抵賴 - Repudiation

Hacker

B

A

針對訊息傳遞的攻擊們

  • 竊聽 - Eavesdrop
  • 竄改 - Falsification
  • 電子欺騙 - Spoofing
  • 抵賴 - Repudiation

A

B

B

編碼

Encode

ASCII

Morse Code

 

  • 為了方便傳遞資料
  • 不具任何加密效果
  • 不會修改資料
  • 可從結果回推出原文

重點在於

它不是加密 它不是加密

它不是加密!!!

Unicode 萬國碼

把世界上各種語言的字符編碼

 

UCS-2 : U+0000 ~ U+FFFF (16進位)

2^16 = 65536個字元

UCS-4 : U+00000000 ~  U+7FFFFFFF

2^31 = 2147483648個字元

UTF-8

碼點位數 碼點起值 碼點終值 位元組序列 Byte1 Byte2 Byte3 Byte4 Byte5 Byte6
7 U+0000 U+007F 1 0xxxxxxx
11 U+0080 U+07FF 2 110xxxxx 10xxxxxx
16 U+0080 U+FFFF 3 1110xxxx 10xxxxxx 10xxxxxx
21 U+10000 U+1FFFFF 4 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
26 U+200000 U+3FFFFFF 5 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
31 U+4000000 U+7FFFFFFF 6 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

ASCII : 1byte

拉丁文、阿拉伯文...etc. : 2bytes

中文及大部分語言: 3bytes

α、β 、馬雅文字... : >= 4bytes

雜湊函數

Hash Function

What is hash function ?

雜湊函數是一種現代密碼學的演算法,可將輸入之資料轉成固定長度且不規則的雜湊碼。雜湊轉換是不可逆的: 可由X算出hash(X),但無法從hash(X)回推出X。

著名的雜湊函數有md5、SHA-1、SHA-2...etc.,然而前兩者已經被破解,目前普遍使用SHA-2、SHA-256等。

  • 稍微變更input,出來的hash差異極大

e.g.

md5(1234) = 81dc9bdb52d04dc20036dbd8313ed055 md5(1235) = 9996535e07258a7bbfd8b132435c5962 

  • 已知X,幾乎無法找到X'使得hash(X) = hash(X')

* 雜湊碰撞 - Hash Collision

 

   MD5 --> 1.47 * 10^(-29)

   SHA-1 --> 1 * 10^(-45)

   SHA-256 --> 4.3 * 10^(-60)

Usage

  • 密碼儲存
  • 驗證資料完整性
  • 保護資料
  • 錯誤校正
  • 語音辨識

對稱式密碼系統

(共用金鑰密碼系統)

Shared-key Cryptosystem

Turing(X)

Repkironca is

really weak QAQ

Fjehfoaicf je

fheaeu gvoe DJT

X'

Turing(X')

雙方共用一把金鑰

加密與解密的邏輯相同

金鑰傳遞?????

金鑰還是可能被偷窺啊orz

加密訊息需要金鑰 --->

金鑰會被偷 --->

所以金鑰需要加密 --->

加密金鑰需要金鑰

金鑰會被偷

 

無。限。循。環。

隨便舉幾個栗子

  • 凱薩密碼 Caesar Cipher
  • 進階加密標準 Advanced Encryption Standard (AES)
  • 資料加密標準 Data Encryption Standard (DES)
  • 一次性密碼本 One-time Pad
  • 訊息鑑別碼 Message authentication code (MAC)

非對稱式密碼系統

(公開金鑰密碼系統)

Public-key Cryptosystem

公開金鑰?

阿蘇上到大腦燒壞了ㄇ

0

你才大腦燒壞

:angrymention:

這邊有兩個金鑰

一個稱為公開金鑰

一個稱為私密金鑰

蛤.jpg

PubKey

PriKey

cj84gji

y vmp4gk42k7u,3gl xk7

PubKey

vul4n3

8 nj dl3e04ul4x042ul4xk7

vul4n3

8 nj dl3e04ul4x042ul4xk7

萬無一失?????

"中間人攻擊"

駭客先接收來自A方的公開金鑰P --->

偽造另一把金鑰,稱P' --->

傳送P' 給B --->

B傻傻地用P'加密訊息,再被駭客攔截 --->

駭客解密密文 --->

把解密的密文用P加密傳給A

所以...真的沒有更安全的做法嗎

不過說真的la 剛剛那兩種加密方式

本身就一堆變體了

拿英文去Google一下 絕對能滿足你求知慾

何況 駭客永遠走得比資安快

本來就很難找到一種

永恆且絕對安全的加密法

其實有。但我不會講(好水好水)

 

非對稱式加密的栗子(差點忘記)

  • RSA加密 RSA Padding
  • 橢圓曲線密碼學 Elliptic-curve Cryptography
  • 最優非對稱加密填充 Optimal Asymmetric Encryption Padding (OAEP)
  • 數位憑證 digital certificate
  • 數位簽章 Digital Signature

安全性演算法(這是我拿來考幹ㄉ)

By repkironca

安全性演算法(這是我拿來考幹ㄉ)

  • 139