作者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/cn.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