20241114 几个概念:
SSP、CSP、PSP、非核准的工作模式、7816-4 APDU、熵、随机数掩码、动态时钟、随机延时
1、 敏感安全参数(SSP)包括关键安全参数(CSP)和公开安全参数(PSP)
2、128位的二进制数据等于16字节(因为1字节=8位)。在ASCII编码中,半角字符(即标准的英文字符和其他控制字符)占用1字节。因此,128位的明文可以存储16个半角字符。如果考虑到扩展的ASCII字符集或者其他单字节编码的字符,这个结论依然成立。但是,对于多字节编码的字符,比如UTF-8中的非拉丁语系字符,128位的明文可能无法完整存储某些字符,因为这些字符可能需要2、3或4个字节来表示。在只讨论半角字符的情况下,128位可以存储16个这样的字符。
3、在密码学中,“非核准的工作模式”通常指的是那些没有经过官方认证机构(如美国国家标准与技术研究院NIST)正式批准或推荐的加密算法工作模式。例如,在处理块密码时,NIST已经核准并推荐了几种常见的操作模式,如ECB(电子密码本模式)、CBC(密码分组链接模式)、CFB(密码反馈模式)、OFB(输出反馈模式)以及CTR(计数器模式)等。
然而,除了这些标准模式之外,还有一些其他的工作模式,它们可能由研究人员、开发者或组织自行设计和使用,但并未获得官方的认可。这些非核准模式可能具有特定的应用场景或优势,但在安全性和性能方面未经广泛验证,因此在实际应用中可能存在风险。
例如,有人可能会尝试设计一种新的模式,旨在结合不同标准模式的优点,或者为了适应某种特殊环境下的需求。然而,由于缺乏标准化和广泛的同行评审,这些模式的安全性、效率和互操作性可能无法得到保证。
在实际应用中,除非有充分的理由和证据表明非核准模式在特定场景下优于标准模式,否则通常建议优先使用已被广泛接受和验证的标准工作模式,以确保系统的安全性和可靠性。
3、7816-4 APDU(Application Protocol Data Unit)规范是ISO/IEC 7816标准的一部分,主要用于智能卡通信中。APDU是一种在智能卡和外部设备之间交换数据的协议,它定义了智能卡应用层的命令和响应格式。
一个典型的APDU命令包含以下字段:
1. **CLA** (Class) - 指定命令类别,例如文件管理、安全、应用选择等。
2. **INS** (Instruction) - 指示具体的操作,如读取、写入、验证等。
3. **P1** (Parameter 1) - 提供指令的额外参数,可能用于指定操作模式或位置。
4. **P2** (Parameter 2) - 同样用于提供额外的指令参数。
5. **Lc** - 表示命令数据域的长度。
6. **Data** - 包含实际的数据,其长度由Lc字段决定。
7. **Le** - 指定期望的响应数据长度。
APDU响应通常包含状态字节,用于指示命令执行的结果。
例如,一个简单的APDU命令可能如下所示(十六进制表示):
00 A4 04 00 02 3F 00
其中:
- `00` 是CLA,表示基本ISO/IEC文件系统。
- `A4` 是INS,表示选择应用。
- `04` 是P1,表示选择文件的模式。
- `00` 是P2,保留为0。
- `02` 是Lc,表示接下来有2个字节的数据。
- `3F 00` 是Data,表示选择主文件。
4.在信息论中,熵是衡量随机变量不确定性的一种度量。最小熵值通常出现在确定性最强的情况下,即当一个事件的发生概率为1(或0)时,此时熵值为0。这是因为在这种情况下,我们不需要任何信息就可以确定事件的结果,因此不确定性(熵)为零。
熵的定义公式如下:
\[ H(X) = -\sum_{i=1}^{n} P(x_i) \log_b P(x_i) \]
其中,\(H(X)\)是随机变量\(X\)的熵,\(P(x_i)\)是\(X\)取值为\(x_i\)的概率,\(\log_b\)是对数函数,底数\(b\)通常取2或\(e\)(自然对数)。
当随机变量\(X\)只有一种可能的结果,即存在某个\(i\)使得\(P(x_i) = 1\),而其他所有\(P(x_j) = 0\)(\(j \neq i\))时,熵\(H(X)\)将等于0,这是熵的最小值。
例如,考虑一个只有两种结果的随机变量\(X\),如果\(P(X=0) = 1\)且\(P(X=1) = 0\),那么其熵计算如下:
\[ H(X) = -[1 \cdot \log_2 1 + 0 \cdot \log_2 0] = 0 \]
因为\(\log_2 1 = 0\),而\(\log_2 0\)在数学上是未定义的,但在计算熵时,按照约定,\(0 \cdot \log_2 0 = 0\)。
因此,最小熵值为0,表示完全确定性的情况。
5、随机数掩码方法通常用于数据脱敏或加密场景中,以保护敏感信息不被直接暴露。这种方法通过在原始数据上叠加一层随机生成的数据来达到保护原始数据的目的。
6、动态时钟、随机延时
动态时钟和随机延时在数字电路设计和信号处理中是一种常见的技术,用于提高系统的稳定性和安全性,尤其是在易受电磁干扰影响的环境中。动态时钟指的是时钟信号的频率或相位根据系统需求动态调整,而随机延时则是在信号路径中引入随机变化的延迟时间,以破坏潜在的定时攻击或降低信号间的相关性。
在软件或嵌入式系统中,随机延时可以用来增加攻击者预测系统行为的难度,例如在密码学中的安全协议中防止定时攻击。
在硬件设计中,动态时钟和随机延时可以通过可编程逻辑器件(如FPGA)实现,具体方法包括使用锁相环(PLL)产生可变频率的时钟信号,或者在信号路径中插入可配置的延迟单元。这些技术有助于提高系统的鲁棒性和抗干扰能力,特别是在高速通信和高精度测量领域。