作者tonytonyjan (南洋大兜蟲)
看板CSSE
標題[演算] 密碼學與自然人憑證請教
時間Tue Sep 5 17:01:03 2017
其實也不太確定這個分類對不對,因為內容偏觀念請教而非演算法。
最近剛申請自然人憑證,目前已知:
1. 密鑰在卡片裡面
2. 公鑰可以在自然人憑證上面找到
3. 密鑰公鑰是兩兩一組存在的
取得公鑰的方法是在網站下載憑證(X.509),裡頭有公鑰,
而網站提供兩個憑證下載:
- 一個加密專用(KeyUsage 是 Key Encipherment, Data Encipherment)
- 一個是數位簽章專用(KeyUsage 是 Digital Signature)
我疑惑的幾個點:
1. 兩憑證表示有兩個公鑰,這是否意味著卡片裡面有兩個密鑰?
2. 數位簽章是用密鑰簽,用公鑰驗證,但憑證只有公鑰,
我想知道使用憑證去簽章文件是怎麼辦到的?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.219.118.91
※ 文章網址: https://webptt.com/m.aspx?n=bbs/CSSE/M.1504602068.A.B78.html
1F:→ fayhong: 用 HiSecure 查卡片時,卡片內好像只有一把私鑰,但我也 09/12 09:02
2F:→ fayhong: 覺得你的第一點判斷是有可能的,卡片內應該有兩把私鑰 09/12 09:02
3F:→ fayhong: 簽章時,私鑰的加密運算是在 IC 卡內部進行 09/12 09:02
4F:→ fayhong: 那個私鑰是用硬體保護的機制寫死在卡片內,因此無法取出 09/12 09:03
5F:→ fayhong: IC 卡本身有簡單的運算能力,透過讀卡機傳送指令執行 09/12 09:03
6F:→ fayhong: 因此,在系統層面,需要透過 HiCOS 做加密機制包裝的 API 09/12 09:04
7F:→ fayhong: 才能操作卡片的加解密運算 (以中華電信發行的卡片是如此) 09/12 09:05
這樣說的話,我覺得很有可能卡片中存放的只是一個 secret key base,
而透過 Key derivation function 產生另外兩組私鑰:
https://www.wikiwand.com/en/Key_derivation_function
這個作法在一些框架像是 Ruby on Rails 可以看到相同的設計。
這樣就比較合乎常理了。
※ 編輯: tonytonyjan (126.29.237.10), 09/23/2017 21:59:16
http://moica.nat.gov.tw/wisdom.html
有看到 PKCS #11
※ 編輯: tonytonyjan (126.29.237.10), 09/23/2017 22:34:49
8F:推 ibmibmibm: KDF只能用在對稱金鑰系統上吧 10/27 11:24
9F:→ dallashuang: 晶片是一顆微型處理機,裡面是沒有儲存資料 04/14 12:06