第一章:密钥提取预备知识

各位同学好,我是老张。在智能卡安全这行摸爬滚打了十几年,今天咱们来聊聊JCOP卡片密钥提取的前置知识。

说实话,密钥提取这事儿,技术门槛不低。但只要你把基础打牢了,后面就顺了。这一章,我带你过一遍必须掌握的核心概念。

1.1 对称加密与非对称加密

先搞清楚这两个东西的区别。对称加密,说白了就是加密和解密用同一把钥匙。你想想看,就像你家大门,用一把钥匙锁上,也用同一把钥匙打开。简单、快,但问题也明显——钥匙怎么安全地交给对方?

非对称加密就不一样了。它有两把钥匙:公钥和私钥。公钥可以公开,私钥自己藏着。别人用你的公钥加密数据,只有你能用私钥解开。嗯,这里要注意:非对称加密慢,非常慢。所以实际应用中,我们通常用它来传输对称密钥。

核心区别:

  • 对称加密:速度快,适合大数据量加密
  • 非对称加密:安全性高,适合密钥交换和数字签名

我在项目中遇到过一件事:有个同事图省事,直接用RSA加密整张卡片的数据,结果性能惨不忍睹。后来改成用RSA加密AES密钥,再用AES加密数据,问题就解决了。

1.2 DES/3DES/AES算法原理

这三个算法,是智能卡领域的常客。我一个个说。

DES

DES是老祖宗了,56位密钥。现在基本没人用它,因为暴力破解太容易。我记得十年前做的一个项目,客户还要求用DES,我劝了半天才改成3DES。

3DES

3DES就是DES的三次叠加。密钥长度变成112位或168位。安全性比DES高不少,但速度慢。嗯,这里要注意:3DES现在也被认为不够安全了,NIST已经把它标记为逐步淘汰。

AES

AES是现在的标准。密钥长度支持128、192、256位。速度快,安全性高。我个人习惯,新项目一律用AES-128或AES-256。

算法 密钥长度 分组大小 安全性
DES 56位 64位 已淘汰
3DES 112/168位 64位 逐步淘汰
AES 128/192/256位 128位 安全

避坑指南:我曾经在JCOP卡片上遇到过3DES的时序攻击问题。因为3DES计算量大,功耗分析时很容易被抓住特征。后来改用AES,配合掩码技术,才解决了这个问题。

1.3 RSA/ECC算法原理

非对称加密里,RSA和ECC是两大主流。

RSA

RSA基于大整数分解难题。密钥越长越安全,但计算也越慢。2048位的RSA是目前推荐的最低标准。我建议你记住:RSA适合做签名,不太适合做加密,因为太慢了。

ECC

ECC基于椭圆曲线离散对数问题。同样的安全级别,ECC的密钥长度比RSA短得多。比如256位的ECC,安全性相当于3072位的RSA。这对智能卡这种资源受限的设备来说,太重要了。

关键对比:

  • RSA 2048位 vs ECC 256位:安全性相当,但ECC速度快10倍以上
  • RSA适合签名,ECC适合密钥交换

你想想看,智能卡就那么点存储空间和计算能力。用ECC能省下不少资源。我在做JCOP卡片项目时,基本都选ECC。

1.4 密钥派生函数(KDF)

KDF这东西,很多人容易忽略。但它其实特别重要。

KDF的作用是什么?从一个主密钥,派生出多个子密钥。比如你有一个根密钥,需要生成加密密钥、MAC密钥、会话密钥等。这时候KDF就派上用场了。

常见的KDF有:

  • HKDF:基于HMAC,安全性高
  • PBKDF2:带盐值,抗暴力破解
  • NIST SP 800-108:专门为智能卡设计的

警告:千万不要直接用主密钥加密数据!我曾经见过一个项目,工程师图省事,直接用主密钥当会话密钥用。结果密钥被提取后,整个系统都废了。正确的做法是用KDF派生会话密钥,用完就丢。

在JCOP卡片中,KDF通常用于:

  1. 卡片个人化时的密钥派生
  2. 会话密钥的生成
  3. 安全通道的建立

嗯,这里要注意:KDF的输入参数一定要包含足够的熵。比如卡片序列号、计数器、应用ID等。否则派生出来的密钥可能不够随机。

知识体系结构图

下面这张图,我帮你梳理了本章的知识脉络。你可以把它当作一个思维导图来看。

密钥提取预备知识体系 对称加密 非对称加密 算法 DES(已淘汰) 3DES(逐步淘汰) AES(推荐) 密钥长度:128/192/256位 算法 RSA(2048位起) ECC(256位起) 用途:签名、密钥交换 ECC比RSA快10倍以上 密钥派生函数(KDF) 常见KDF标准 HKDF(基于HMAC) PBKDF2(带盐值) NIST SP 800-108(智能卡专用)

这张图把本章的知识点串起来了。你仔细看看,对称加密和非对称加密是两大支柱,KDF则是连接它们的桥梁。在实际的JCOP卡片中,这三者缺一不可。

我的建议:学完这一章,你最好能自己画一遍这个图。画着画着,你就发现哪些地方还没搞懂。我当年就是这么学的。

好了,这一章的内容就到这儿。记住:基础不牢,地动山摇。把这些概念吃透了,后面讲密钥提取的时候,你才能跟得上。

专注资料整理