技術問答
技術文章
iT 徵才
Tag
聊天室
2024 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
第 12 屆 iThome 鐵人賽
DAY
21
0
Security
資訊安全的美味雜炊
系列 第
21
篇
[Day21] - Crypto 0x1 介紹
12th鐵人賽
halloworld
2020-10-04 15:59:04
944 瀏覽
分享至
Day21 - Crypto 0x1 介紹
前言
今天開始連續五天會以Crypto為主題,從古典密碼學一直寫到現代的密碼學
甚麼是密碼學(Crypto)
根據維基百科的解釋,密碼學幾乎是指加密的演算法,會將普通資訊(明文)轉為難以理解及分析(密文)的資料
又可以以古典與現代密碼學做分類,之後的五天會細節及內容
現代的密碼學幾乎都是基於現在的數學難題,讓想偷密文的駭客難以破密內容
加密/解密 & 編碼 & 雜湊
今天就先觀念釐清一下
這個是初學者最容易搞混的東西,很常會將這三樣東西搞混
加密/解密
首先會產生一組密鑰,就是一把鑰匙(key)
通常就是一組字串,而不同演算法生出key的方式也不一樣
接著可以對一組原文透過key來加密,通常我們會叫他「明文」,加密完的結果就是密文
若要解密時,就需透過那把key作解密,才能看到原本的明文
也就是說,沒有key,你就無法得知原本的訊息
對稱式加密(Symmetric Encryption)
加解密接使用同一把密鑰,雙方是用同一把密鑰
當傳送方傳資料時,使用該把密鑰加密,接收方收到訊息後,用同把密鑰解密
缺點
一旦被中間人攔截密鑰,密文就有機會被駭客破解
常見對稱式加密演算法
AES、ChaCha20、3DES、Salsa20、DES
非對稱式加密(Asymmetric Encryption)
不同於對稱式加密,每個使用者都擁有一組金鑰,包含公鑰(public key)和私鑰(private key),公鑰能夠散布各地,但私鑰必須妥善保存
詳細的原理我們留RSA後面再來提
編碼(encode)
只是將資料透過人們討論的規則,對應到另外一項符號或者數字
編碼的運用範圍也很廣
有包含字串的、音訊的、視訊的...
並不需要密鑰,你只需要知道編碼的規則,人人都可以解碼
常見的字元編碼
base64, ASCII, Unicode, urlencode
ASCII
ASCII編碼只有0~127,因為要留一個位元給檢查碼
example
0
= 48
A
= 65
a
= 97
base64
一個單元8-bits
Base64一單元只有6bits
如果原文不整除3,會出現相對應的
=
詳情原理可以參考:
Base64
雜湊(hash)
將長度不固定的資料,映射到固定長度的字串,一旦資料被座雜湊之後,是
不可逆
的
在帳戶系統當中,通常會將密碼hash後存入資料庫中,
通常
並不會用明文方式直接將密碼存在資料庫
這樣好處是萬一駭客偷走了帳戶系統的資料庫,並不能直接拿到密碼,因為hash是不可逆的
另外,帳戶系統對密碼還會加上salt(亂數),再拿去hash,會相對更安全一些
常見的雜湊方式如
MD5, SHA1, SHA256...
風險
MD5, SHA1已被破解,在網路上甚至有網站能將hash過後的值找出原本明文
ex:
https://www.cmd5.com/
現在建議使用
bcrypt, SHA256, SHA512...等方法
ref
https://medium.com/@RiverChan/%E5%9F%BA%E7%A4%8E%E5%AF%86%E7%A2%BC%E5%AD%B8-%E5%B0%8D%E7%A8%B1%E5%BC%8F%E8%88%87%E9%9D%9E%E5%B0%8D%E7%A8%B1%E5%BC%8F%E5%8A%A0%E5%AF%86%E6%8A%80%E8%A1%93-de25fd5fa537
https://medium.com/d-d-mag/%E7%82%BA%E4%BB%80%E9%BA%BC%E4%BD%A0%E9%9C%80%E8%A6%81%E6%87%82%E4%B8%80%E9%BB%9E%E5%AF%86%E7%A2%BC%E5%AD%B8-709c090452aa
https://zh.wikipedia.org/zh-tw/%E5%AF%86%E7%A2%BC%E5%AD%B8%E4%B8%BB%E9%A1%8C%E5%88%97%E8%A1%A8
https://blog.m157q.tw/posts/2017/12/25/differences-between-encryption-and-hashing/
留言
追蹤
檢舉
上一篇
[Day20] - Rev 0x5 linux逆逆實戰
下一篇
[Day22] - Crypto 0x2 古典
系列文
資訊安全的美味雜炊
共
30
篇
目錄
RSS系列文
訂閱系列文
32
人訂閱
26
[Day26] - kali 0x1 介紹
27
[Day27] - kali 0x2 滲透工具
28
[Day28] - kali 0x3 破密工具
29
[Day29] - kali 0x4 Metasploit
30
[Day30] - 完賽、感想、心得
完整目錄
直播研討會
{{ item.subject }}
{{ item.channelVendor }}
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
1064
組
團體組數
40
組
累計文章數
22081
篇
完賽人數
594
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
windows server
linux
css
react
vue.js
熱門問題
WIN11 一直跳出中毒的訊息
資料庫系統
網域切換的技術詢問
PYTHON 工具
如何讓內網的FortiGate防火牆可以收到韌體更新與下載
請問華碩分享器的系統紀錄這是在說明什麼
Mail server 資料不見
掃qr code圖示後是同時進入兩個網址
UPS相關供電問題
有關於Plesk 記憶體使用 的疑惑
熱門回答
WIN11 一直跳出中毒的訊息
如何讓內網的FortiGate防火牆可以收到韌體更新與下載
有關於Plesk 記憶體使用 的疑惑
資料庫系統
PYTHON 工具
熱門文章
PrintNightmare: 沒想到會被 Windows 11 終結
Day 39 - 使用 Angular 19 中的 Resource API 進行資料檢索
後 Grafana 時代的第三十一天 - AlertSnitch 告警歷史可視化的利器
Day 38 - 在 Angular 19 中重置或設定 LinkedSignal 中的值
當了兩個月的轉職工程師是怎樣的感覺?
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}