15、密码学与安全技术综述

密码学与安全技术综述

1. 篡改检测、抵抗与响应

1.1 篡改检测

篡改检测是设备感知自身遭受物理攻击,并通过篡改响应启动防御行动的能力。检测设计可针对不同类型、技术和复杂程度的篡改进行感知,例如使用开关检测门或盖板开启,用传感器检测设备内光线或压力变化,或用屏障、矩阵检测设备边界的钻孔或穿透。有效的检测机制需在模块的任何逻辑状态下都保持活跃。

1.2 篡改抵抗

篡改抵抗指设备抵御威胁的能力,常用于加密模块,对需保护设计知识产权或提供设备完整性证据的非加密设备也很重要。抗篡改能力强的设备,攻击者需更高技能、更多精力和更复杂设备才能实施篡改,这降低了在不损坏设备或不触发篡改事件(如擦除密钥或禁用设备)的情况下攻破设备的概率。其目标常是让攻击者在设备上留下明显痕迹,以便操作员和制造商察觉并采取措施。

1.3 篡改响应

篡改响应是加密模块为防止自身被滥用或关键安全参数(CSPs)泄露而采取的行动。响应机制通常由检测模块处于威胁状态的传感器信号或操作员的明确命令触发。其目的是清零所有包含加密密钥、密码、PIN 等关键安全参数的内存位置,同时防止模块在威胁状态下被滥用,如禁止认证、密钥管理和加密服务启动。响应行动需快速完成,以防止威胁在响应完成前破坏设备和 CSPs 的完整性与可信度。

2. TEMPEST

TEMPEST 最初是美国军方 20 世纪 50 年代末一项研究有害辐射的秘密项目代号,后来成为美国和北约针对信息处理设备有害电磁、声学等辐射制定的保护标准和测试程序的统称,有时也泛指有害辐射及相关防护措施。

3. 阈值密码学

3.1 简介

现代密码学多数方案针对单发送者和单接收者场景,但存在多发送者或多接收者需共享密码系统使用权限的情况。阈值密码学旨在解决此类多发送者/多接收者场景问题。例如在密钥托管中,使用阈值方案,执法机构在获得法院命令后可从密钥托管代理处获取用户密钥份额以恢复用户密钥,但这种方式存在安全隐患。阈值解密可在不泄露其他明文或密钥的情况下解密特定消息;阈值签名可让多方共同计算数字签名,避免签名权被滥用。

3.2 不同方法

通用方法

将底层加密方案表示为 (f_k(input)),定义参数化函数 (g) 使 (g_{input}(k) = f_k(input)),当 (g_{input}) 是同态函数(即 (g_{input}(k_1) * g_{input}(k_2) = g_{input}(k_1 + k_2)))时可工作。许多加密方案满足此条件,如一次性密码本加密/解密和 RSA 数字签名方案。以 2 出 2 阈值密码学变体为例,可通过随机分配密钥份额,参与者计算部分结果,最终组合得到原加密方案输出。对于更一般的 t 出 l 阈值密码学方案,使用乘法秘密共享方案。

特定方法

通用方法存在问题,并非所有加密方案都满足同态属性,且不一定是最有效方案。针对某些算法,如数字签名标准(DSS),有实用方法;Shoup 提出专门实现阈值 RSA 签名的方案。

通用方法的变体

King 证明,当联合执行 RSA 的股东集合已知时,[19] 中的方案比 Shoup 的方案更高效。因此,从通用方案出发并优化到特定加密方案是可行的。

3.3 增强措施

鲁棒性

若有股东发送错误部分结果,可能导致最终结果错误。使用公钥系统可验证结果错误,当错误结果数量较少时,可通过穷举搜索找出发送错误结果的股东子集,忽略错误结果重新计算。已有一些无需穷举搜索的方案。

无可信经销商

早期方案常使用单个可信经销商,但可通过同态秘密共享避免。第一个参与者选择随机密钥并生成份额发送给其他参与者,多个参与者独立操作后,其他参与者计算自己的份额。Pedersen 首次在阈值密码学中使用此思想,其方案还保证了分配可验证且秘密密钥与公钥对应。

主动安全及其推广

当份额被盗或丢失,或外部人员收集的份额超过阈值时,可采用主动秘密共享方法获取新的正确份额,同时保持原公钥不变。该方法基于同态秘密共享,通过参与者贡献随机份额实现。此外,还有更一般的问题,即如何在无可信经销商的情况下为新的访问结构分配份额。

4. 阈值签名

4.1 定义与特点

阈值签名是数字签名的一种,签名者可组成组,只有特定子集能代表组生成签名,这些子集的集合称为访问结构。(t, n) - 阈值签名方案中,n 个签名者中的 t 个或更多签名者可代表组签名,一般不透露实际合作的组成员身份。多重签名是阈值签名的一种,会透露签名成员身份。(1, 1) - 阈值签名方案即普通数字签名方案。阈值签名方案的目标是实现签名能力的双重控制或消除单点故障。

4.2 操作与安全要求

阈值签名方案的操作包括为个人生成签名密钥对、为可信组权威生成组密钥对、进行组管理(如成员加入和撤销、更新密钥对)、签名消息和验证签名。其安全要求包括不可伪造性、阈值性、鲁棒性、可追溯性(可选)和主动安全性。主动安全的阈值签名方案允许成员更新密钥而不影响公钥,类似于组签名方案中的前向安全性。

4.3 早期构造

早期构造使用可验证秘密共享方案在成员间共享私钥,成员用私钥份额生成部分签名,由可信组中心组合得到可验证的阈值签名。

5. 时间 - 内存权衡

5.1 基本概念

许多搜索问题存在时间 - 内存权衡,若有 K 个可能解,在时间 - 内存乘积 (T×M) 等于 K 时,可在 T 次操作(时间)和 M 个内存单元内找到解。密码分析中的穷举密钥搜索常应用此权衡。穷举密钥搜索通常需要不现实的计算能力,而时间 - 内存权衡旨在降低在线处理复杂度和内存复杂度。

5.2 原始方法

定义加密函数 (E_K(X)),以及映射密文到密钥的函数 (g),定义 (f(K) = g(E_K(P)))。方法包括预计算任务和在线攻击:
- 预计算任务:选择 m 个不同起点,计算加密链,只存储起点和终点并排序。
- 在线攻击:截获或获取 (C = E_K(P)),应用 (g) 得到 (Y = g(C) = f(K)),按算法查找密钥。

5.3 特殊点和彩虹表

使用特殊点(DPs)可减少在线攻击中的表查找次数,因为预计算链的起点和终点满足 DP 属性,链长度可变但端点可检测。彩虹表通过为链上每个点使用不同函数 (g) 减少表查找次数,两个彩虹链只有在相同位置碰撞才会合并,该方法易于分析且效率高。

6. 时间戳

6.1 简介

随着数据在线化,验证数字文档或记录的创建或修改时间很重要。时间戳系统包括认证程序(为数字记录生成时间戳证书)和验证程序(检查记录 - 证书对是否有效)。时间戳证书对文档完整性的证明比精确时间指示更重要,还可用于验证长寿命数字签名的有效性。

6.2 技术

哈希 - 签名

使用单向哈希函数对记录进行哈希,将哈希值发送给时间戳服务器,服务器用数字签名算法签名得到时间戳证书。验证证书主要是验证数字签名,包括检查签名计算正确性和密钥有效性。

链接

基于哈希链接的时间戳方案将记录的哈希值与其他哈希值组合,存储见证哈希值及存储时间。服务器返回的时间戳证书包含存储时间、见证位置指针和用于计算见证哈希值的哈希值列表。验证时需重新计算记录的哈希值和见证哈希值并比较。该方法有多种实现方式,如简单存储记录哈希值、计算哈希链接链或构建 Merkle 二叉树。

累加器

Benaloh 和 de Mare 提出使用单向累加器,可给出恒定大小的成员证明。他们构造的单向累加器基于 RSA 模数,但需信任选择模数的一方。Nyberg 描述了无陷门的单向累加器,但效率不高。目前设计安全、高效且实用的单向累加器仍是研究问题。

6.3 长寿命数字签名

验证长寿命数字签名时,需确定签名计算时公钥的有效性,这需要时间戳方案。有两种安全集成时间戳的方式:接收者组装密钥验证数据并请求时间戳证书;签名者计算时间戳证书。通过对 (d, s) 进行时间戳,可避免哈希函数被攻击导致签名用于其他文档。

6.4 可更新性

随着计算资源增加和密码分析算法进步,时间戳系统的安全性可能受质疑,因此提出时间戳证书更新问题。可通过对 (d, c1) 进行新系统时间戳,在原方法被攻破时,新证书仍能证明文档在原证书时间存在。

6.5 标准

有国际标准规范时间戳机制和格式,如 IETF 针对哈希 - 签名时间戳的标准和 ISO 针对哈希 - 签名和哈希链接的标准。

以下是时间 - 内存权衡方法的 mermaid 流程图:

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;

    A([开始]):::startend --> B(预计算任务):::process
    B --> C(选择 m 个起点):::process
    C --> D(计算加密链):::process
    D --> E(存储起点和终点并排序):::process
    E --> F(在线攻击):::process
    F --> G(截获或获取 C = E_K(P)):::process
    G --> H(应用 g 得到 Y = g(C) = f(K)):::process
    H --> I{Y = EPi?}:::decision
    I -->|是| J(计算 Xi,t - 1 并检查是否为密钥):::process
    I -->|否| K(计算 Y = f(Y)):::process
    K --> H
    J --> L([结束]):::startend

以下是阈值签名方案的操作步骤表格:
|操作|描述|
| ---- | ---- |
|生成个人密钥对|为签名成员生成私钥和公钥对|
|生成组密钥对|为可信组权威生成私钥和公钥对|
|组管理|包括成员加入、撤销和更新个人密钥对|
|签名消息|t 个或更多成员贡献部分签名,组合得到阈值签名|
|验证签名|使用组公钥验证阈值签名|

7. 定时攻击

7.1 简介

当加密设备的运行时间不恒定时,运行时间可能泄露秘密参数信息,攻击者通过仔细测量和分析运行时间,有可能恢复系统的秘密密钥。定时攻击属于侧信道攻击,最早于 1996 年在科学文献中出现。

7.2 时间测量

攻击者进行攻击时,需要收集一组消息及其在加密设备中的处理时间。运行时间可通过测量问答延迟、监控处理器活动等方式获得。智能卡是定时攻击的常见目标,由于其时钟由插入的终端提供,恶意终端可精确测量其运行时间。

7.3 定时分析

定时攻击采用分治法,通过预测和验证部分密钥值与预期运行时间之间的相关性,逐步恢复秘密密钥。具体步骤如下:
1. 对部分密钥值进行猜测,定义关于预期运行时间的标准。
2. 检查实际运行时间是否符合该标准。
3. 如果符合,认为部分密钥猜测正确;否则,更换猜测并重复上述步骤。

7.4 示例:针对使用 Montgomery 乘法的 RSA 攻击

以使用 Montgomery 乘法的私有 RSA 指数运算为例,该算法根据临时值 (u) 与 (n) 的大小关系,可能需要额外的减法操作,从而影响运行时间。以下是恢复秘密密钥第一位的简单方法:
1. 假设第一位为 1,对样本中的每个消息模拟第一次与 (g) 的乘法。
2. 根据乘法是否需要额外减法,将样本集分为两个子集。
3. 定义标准为“第一个子集的运行时间比第二个子集长”。
4. 通过比较两个子集的平均实际运行时间,验证或否定部分密钥猜测。
5. 已知第一位后,可重复上述过程恢复后续位,无需额外测量。

7.5 其他应用与对策

定时攻击还可应用于其他非对称和对称加密系统以及一些互联网协议,但对互联网协议的攻击效率会随中继机器数量增加而降低。针对定时攻击的对策主要有两类:
1. 消除定时变化:使计算时间恒定,但这会严重影响性能,尤其是非对称加密系统。
2. 使定时变化对攻击者无用:例如采用盲化策略,在进行模幂运算前选择随机对 ((v_i, v_f)),使 (v_f^{-1} = v_i^e),对消息进行预处理和后处理,防止攻击者模拟内部计算。

以下是定时攻击的 mermaid 流程图:

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;

    A([开始]):::startend --> B(收集消息及处理时间):::process
    B --> C(猜测部分密钥值):::process
    C --> D(定义运行时间标准):::process
    D --> E(检查实际运行时间是否符合标准):::process
    E --> F{符合标准?}:::decision
    F -->|是| G(认为部分密钥猜测正确):::process
    F -->|否| C
    G --> H{是否恢复所有密钥位?}:::decision
    H -->|否| C
    H -->|是| I([结束]):::startend

8. 令牌

令牌通常指用于双因素认证的手持设备,与中央服务器共享密钥,可提供用户认证和消息认证。令牌可能配有或不配有受限的 PIN 键盘和显示屏,可采用时间或计数器相关的协议,或基于挑战 - 响应方法。操作步骤如下:
1. 令牌通过自身或用户使用 PIN 键盘输入挑战。
2. 令牌计算与密钥相关的响应并显示。
3. 用户将响应输入连接到中央服务器的工作站或终端,服务器使用相同密钥验证响应。

需要注意的是,令牌与密钥令牌不同,密钥令牌通常指使用密钥加密密钥对密钥及相关信息进行加密。

9. 叛徒追踪

9.1 简介

叛徒追踪是为用户提供个人解密密钥的方法,确保只有一个加密密钥对应所有解密密钥,并且任何非法解密密钥都能追溯到生成它的个人密钥。该概念由 Chor 等人提出,旨在追踪非法解密密钥的来源,防止敏感数据被非法分发。

9.2 追踪方案

每个用户应获得不同的个人密钥,简单方法是为每个用户提供独立密钥,但这种方法的开销与用户数量成正比,不适合大规模用户。常见的追踪方案基于 Chor、Fiat 和 Naor 提出的基本方案,该方案可抵御最多 (k) 个叛徒的联盟:
1. 初始化 :系统使用一个 (l) 行 (2k^2) 列的表格,每个表格项包含一个独立密钥。每个用户在每行映射到一个随机位置,其个人密钥包含映射位置的密钥。
2. 加密 :使用随机密钥 (S) 加密数据,生成 (l) 个随机份额 (S_1, \cdots, S_l),满足 (S_1 \oplus \cdots \oplus S_l = S)。对每个份额 (S_i) 用每行的每个密钥独立加密。
3. 解密 :每个用户从每行获得一个密钥,可解密相应份额,计算出 (S) 并解密数据。
4. 追踪 :给定一个由最多 (k) 个叛徒联盟生成的盗版解码器,该解码器必须包含每行的一个密钥。追踪算法通过比较个人密钥集与解码器密钥集的交集,找出交集最大的用户,判定为叛徒。

9.3 公钥叛徒追踪

Boneh 和 Franklin 提出了一种基于代数(数论)构造的高效公钥叛徒追踪系统,其安全性基于决策 Diffie - Hellman 假设,开销与用户数量无关,可确定性地追踪所有贡献密钥的用户,但不完全支持黑盒追踪。

9.4 动态叛徒追踪

上述追踪方案仅适用于生成非法解密设备的盗版者,对于使用盗版广播系统重新广播内容的盗版者无效。动态叛徒追踪由 Fiat 和 Tassa 提出,通过检查盗版广播并动态改变内容加密方法,识别用于生成非法广播的密钥来源。该方法基于水印假设,可适应叛徒数量的变化,直至追踪到所有叛徒。

以下是叛徒追踪基本方案的操作步骤表格:
|步骤|操作|
| ---- | ---- |
|初始化|使用 (l) 行 (2k^2) 列表格,用户映射到随机位置,获取个人密钥|
|加密|用随机密钥 (S) 加密数据,生成份额并加密|
|解密|用户解密份额,计算 (S) 并解密数据|
|追踪|比较个人密钥集与解码器密钥集的交集,找出叛徒|

10. 传输层安全(TLS)

10.1 简介

传输层安全(TLS)标准是著名的互联网安全协议 SSL 的继任者,几乎所有加密保护的万维网通信都依赖于 TLS/SSL 套件协议,如电子商务、网上银行和电子邮件服务。主要浏览器产品都支持该协议。

10.2 功能与特点

TLS 通过强大的加密方法保护客户端 - 服务器会话,防止窃听、篡改和伪造。它支持匿名连接、服务器认证和相互认证,可确保应用数据的机密性和完整性。TLS 与 SSLv3 协议框架相似,但在消息认证码(HMAC)的构造和密钥扩展方法上有重要变化,新的伪随机函数(PRF)将客户端提供的秘密数据和双方的随机数转换为原始密钥块,再分割为会话密钥,导致 TLS 与 SSL 基本不兼容。

10.3 标准与扩展

TLS 定义了一些强制实现的加密方法,如 Diffie - Hellman 密钥交换和数字签名标准(DSS)认证。同时,也有许多针对 TLS 的扩展,包括为高级加密标准(AES)补充密码套件、分配额外的压缩方法、基于椭圆曲线密码学的密钥交换和数字签名机制等。此外,还探讨了将 TLS 适配到非 X.509 兼容的公钥基础设施的方法。

11. 陷门单向函数

陷门单向函数是一种特殊的单向函数,正向计算容易,反向计算困难,但在获得额外的陷门信息后,反向计算变得容易。Diffie 和 Hellman 引入了陷门单向函数的概念,探讨了其对公钥密码学发展的影响。Rivest、Shamir 和 Adleman 提出的 RSA 是最著名的陷门单向函数(实际上是陷门单向置换),其安全性依赖于整数分解的困难性,陷门信息为大整数的分解结果。

12. 三重 DES

12.1 背景

由于 DES 的 56 位密钥易受穷举密钥搜索攻击,其安全性逐渐不足,因此被三重 DES(Triple - DES,也称为 TDEA)取代。随着计算技术的发展,破解 DES 密钥的成本不断降低,EFF 甚至构建了能够在九天内遍历完整密钥空间的搜索机器。

12.2 算法与密钥选项

三重 DES 是一种多重加密方案,对数据进行三次 DES 加密。ANSI X9.52 标准定义的变体为 (C = E_{K_3}(D_{K_2}(E_{K_1}(P)))),其中 (P) 和 (C) 分别为 64 位的明文和密文块,(E_K(\cdot)) 和 (D_K(\cdot)) 分别表示 DES 加密和解密函数。标准规定了三种选择 56 位密钥 (K_1)、(K_2) 和 (K_3) 的方式:
1. 密钥选项 1 :(K_1)、(K_2) 和 (K_3) 相互独立,共 168 位秘密密钥。
2. 密钥选项 2 :(K_1) 和 (K_2) 相互独立,(K_3 = K_1),共 112 位秘密密钥。
3. 密钥选项 3 :(K_1 = K_2 = K_3),共 56 位秘密密钥,等同于单 DES 加密,可与旧系统兼容。

12.3 安全性与攻击

多重加密可增强算法对密码分析攻击和穷举密钥搜索的抵抗力,但由于中间相遇攻击的存在,安全增益不如预期。针对两密钥和三密钥三重 DES 都有中间相遇攻击,但目前这些攻击所需资源不切实际,不会构成直接威胁。此外,三重 DES 仍使用 64 位数据块,当加密数据块超过 (2^{32}) 时会泄露明文信息,且速度较慢,因此逐渐被高级加密标准(AES)取代。

以下是三重 DES 密钥选项的表格:
|密钥选项|密钥设置|秘密密钥位数|
| ---- | ---- | ---- |
|选项 1|(K_1)、(K_2) 和 (K_3) 相互独立|168|
|选项 2|(K_1) 和 (K_2) 相互独立,(K_3 = K_1)|112|
|选项 3|(K_1 = K_2 = K_3)|56|

13. 特洛伊木马、计算机病毒和蠕虫

13.1 特洛伊木马

与指定程序不同的程序可能包含特洛伊木马,特洛伊木马可能具有恶意,判断程序是否包含特洛伊木马较为困难。

13.2 计算机病毒

能够在执行时修改其他计算机程序(如复制自身或部分代码)的特洛伊木马称为计算机病毒。防范计算机病毒的方法有:
1. 使用数字签名程序 :如果数字签名程序在安全可信的环境中开发,可检测程序的修改;若环境不可信,可能需要使用病毒扫描器。
2. 使用病毒扫描器 :病毒扫描器在程序运行前检查已知计算机病毒的指纹,但无法检测与旧病毒差异较大的新病毒。

13.3 蠕虫

最初,计算机蠕虫用于分布式计算,现在主要指利用网络资源传播的特洛伊木马,可能兼具蠕虫和计算机病毒的特征。

14. 截断差分

截断差分是 Knudsen 定义的概念,是差分密码分析中差分概念的扩展。其主要思想是不指定部分差异,将多个差分聚类在一起。可通过对整个块指定 m 位约束(如 ((A, -A, B, 2B)))或固定部分数据块并允许其他部分任意变化(如 ((0, , 3, , 255, , )))来实现。截断差分是针对字结构密码的强大工具,在差分技术的扩展(如不可能差分和回旋镖攻击)中起重要作用,常与数据打包技术结合使用。

15. 信任模型

15.1 信任定义与关系

在公钥基础设施(PKI)中,信任是指一个实体假设另一个实体的行为符合其预期。PKI 中的信任关系基于公钥密码技术,旨在确保实体身份描述的真实性和承诺的可执行性。常见的信任关系包括银行与账户持有人、雇主与员工等,这些传统信任关系对建立基于公钥技术的新信任关系至关重要。

15.2 信任关系的建立

建立信任关系时,一方需从另一方导入公钥并保护其完整性。可通过交换可信的认证令牌,然后自动传输公钥及其相关信息来实现。认证令牌可采用可显示的字符串或预先存在的共享秘密信息,公钥的真实性和完整性可通过认证令牌保护。相关信息包括密钥持有人的标识描述符,可用于关联特权或直接表明持有人拥有所需特权。

15.3 风险与管理

在基于公钥的信任关系中,风险主要由依赖方承担,如标识描述符错误、私钥泄露等。可采用以下策略管理风险:
1. 最小化风险 :各方尽力按对方期望行事,降低损失事件发生的概率。
2. 避免或控制后果 :若一方的期望未实现,另一方尽量减少经济损失。
3. 承担剩余风险 :通常将风险分散到大量风险承担者中,使风险成为可预算的费用。

依赖方通常可找到合适的可信第三方(如雇主、银行等)协助承担风险。

15.4 可信第三方

当依赖权威时,密钥持有人通常称为订阅者。权威可能需要承担依赖方的重大风险,因此需与订阅者社区建立密切关系以减轻风险,并将部分风险重新分配给相关方。常见的可信第三方包括认证机构和证书颁发机构。

15.5 信任模型

基于认证机构和证书颁发机构的信任转换可形成复杂的复合信任模型,以下是五种常见的信任模型:
1. 用户注册机构模型 :适用于证书颁发机构远离用户社区的情况,认证机构通常称为用户注册机构,依赖方的信任锚为本地证书颁发机构的公钥。
2. 直接交叉认证模型 :适用于不同组织实体的权威之间建立直接信任关系,依赖方有两个证书和两个权威。
3. 两层层次模型 :当证书列表管理器和下属证书颁发机构由不同组织实体运营,且信任关系由根证书颁发机构促进时适用,有三个权威但只有两个证书。
4. 桥接证书颁发机构模型 :适用于多个证书颁发机构需要相互交叉认证的环境,可扩展信任域,每个机构只需与桥接证书颁发机构建立交叉认证关系。
5. 桥接认证机构模型 :适用于第三方无法运营自动化信息系统的情况,有三个权威但只有两个证书。

15.6 信任模型的业务控制

不同的信任模型适用于不同的业务场景,无论选择哪种模型,依赖方期望其信任需求得到直接依赖的权威满足。可通过 X.509 标准的工具在信任模型中反映和执行业务要求,包括证书扩展和依赖方配置。证书扩展包括证书策略扩展、政策映射扩展等,可标记为关键或非关键;依赖方配置可通过初始化路径验证变量进一步限制可接受的远程证书。

以下是信任模型的简单表格总结:
|信任模型|适用场景|权威数量|证书数量|
| ---- | ---- | ---- | ---- |
|用户注册机构模型|证书颁发机构远离用户社区|2|1|
|直接交叉认证模型|不同组织实体的权威建立直接信任关系|2|2|
|两层层次模型|证书列表管理器和下属证书颁发机构由不同实体运营|3|2|
|桥接证书颁发机构模型|多个证书颁发机构需要相互交叉认证|3|3|
|桥接认证机构模型|第三方无法运营自动化信息系统|3|2|

16. TWIRL

TWIRL(The Weizmann Institute Relation Locator)是为加速现代整数分解算法(如二次筛法和数域筛法)的筛选部分而设计的电子设备,改进了 Shamir 的光电子 TWINKLE 设备。筛选算法的目标是在候选整数区间内找到所有光滑数(即几乎所有质因数都是小质数的数)。TWIRL 基于以下三个基本思想:
1. 交换空间和时间角色 :为每个质数分配硅片上的电路元件,为每个候选整数分配时钟周期,电路元件在对应可整除的时钟周期发射 (\log(p)) 值,通过加法流水线求和并与阈值比较。
2. 压缩时间 :每个时钟周期处理数千个连续候选整数,需要对发射的 (\log(p)) 值进行调度、路由和拥塞控制。
3. 压缩空间 :将数千个质数分组,用共享电路处理,每个质数在 DRAM 型内存中紧凑表示,由简单专用处理器循环检查和更新。

理论分析表明,TWIRL 辅助分解 1024 位数字可在六周内完成,但需要大量的初始研发投资。

17. 双因素认证

双因素认证是指在认证过程中涉及两个因素:用户知道的信息(如静态密码)和用户拥有的物品(如令牌或用于一次性密码的手机)。

18. Twofish

Twofish 是 Bruce Schneier 等人提交给高级加密标准(AES)评选过程的 128 位块密码,是 AES 的五个决赛选手之一。它采用 Feistel 型设计,受 64 位块密码 Blowfish 启发,有 16 轮,接受 128 位、192 位和 256 位秘密密钥。其 F 函数由两个并行的 32 位分支(g 函数)组成,每个 g 函数包含四层密钥相关的 8×8 位 S 盒和基于最大距离可分(MDS)码的 4 字节线性变换。输出通过伪哈达玛变换(PHT)组合,并与两个 32 位子密钥混合。在第一轮之前和最后一轮之后,数据还与两个 128 位子密钥进行异或操作(输入和输出白化)。

Twofish 的密钥调度需提供 1280 位密钥材料和 4 个用于 g 函数的密钥相关 S 盒,主要组件是 32 位 h 函数,通过交替固定 S 盒层和密钥加法层并以 MDS 变换结束构建。目前,对减少轮数的 Twofish 的最佳攻击是 Lucks 的饱和攻击,可破解 16 轮中的 8 轮,需要 (2^{127}) 个选择明文。

19. (2^k) 元指数运算

(2^k) 元指数运算是对任意群(或半群)进行指数运算的方法,是二进制指数运算的推广,基于指数的 (2^k) 元表示。有左到右和右到左两种变体:

19.1 左到右 (2^k) 元指数运算

步骤如下:
1. 计算并存储指数从 1 到 (2^k - 1) 的小幂次:

G1 ← g
for d = 2 to 2^k - 1 do
    Gd ← Gd - 1 ◦ g
  1. 使用小幂次表计算 (g^e):
A ← Gel - 1
for i = l - 2 down to 0 do
    for j = 1 to k do
        A ← A ◦ A
    if ei ≠ 0 then
        A ← A ◦ Gei
return A

19.2 右到左 (2^k) 元指数运算

步骤如下:

for d = 1 to 2^k - 1 do
    Bd ← 单位元
A ← g
for i = 0 to l - 1 do
    if ei ≠ 0 then
        Bei ← Bei ◦ A
    if i < l - 1 then
        for j = 1 to k do
            A ← A ◦ A
{Now g^e = ∏(2^k - 1, d = 1) Bd^d; this can be computed as follows:}
for d = 2^k - 1 downto 2 do
    Bd - 1 ← Bd - 1 ◦ Bd
B1 ← B1 ◦ Bd
return B1

平均而言,左到右和右到左 (2^k) 元指数运算都执行 ((l - 1)k) 次平方操作和 (2^k - 2 + \frac{(l - 1)(2^k - 1)}{2^k}) 次一般群操作。在实践中,可通过修改算法使用 (2^{k - 2} - 1) 次平方操作代替部分一般乘法操作,以提高速度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值