国际电路理论与应用杂志Int. J. Circ. Theor. Appl.(2016) 威利在线图书馆在线发布 (wileyonlinelibrary.com)。DOI: 10.1002/cta.2293
特刊论文
密码算法中用于GCD计算的可逆电路设计
H. V. 贾亚什里*,†,斯坎达·科泰托塔和V. K. 阿格拉瓦尔
PES理工学院,班加罗尔,印度
摘要
密码算法的实现正不断面临多种技术对安全系统构成的威胁。目前破解密码安全系统的趋势是采用功耗分析技术。为了破解安全密钥,黑客会测量数字电路在计算过程中消耗的能量。这种技术通常被称为差分功耗分析,被广泛用于攻击安全系统。为避免此类攻击,有必要探索不同且能耗更低的设计方案。理想情况下,可逆电路不消耗能量。我们提出了一种基于改进的二进制GCD算法的可逆最大公约数(GCD)计算架构。我们给出了可逆GCD计算单元的通用设计方法,并将所提出的GCD计算设计与现有设计进行了比较。与文献中现有的GCD架构相比,所提出的可逆GCD架构所需的迭代次数更少。在量子代价、门数量和辅助输入方面,所提出的设计优于现有的GCD设计。版权所有 © 2016 John Wiley & Sons, Ltd。
收到日期:5月15日y2016;2016年10月20日修订;2016年10月23日接受er 2016
关键词:最大公约数;可逆;密码学;托佛利;弗雷德金
引言
密码系统(例如,基于椭圆曲线的密码系统、RSA密码系统)因其在移动设备、智能卡等便携式设备中的广泛应用而广受欢迎。在这些密码系统中,通过观察密码算法执行过程中不同阶段的功耗轨迹,可以确定密码设备的特性以及密码学算法中使用的安全密钥。这种技术通常被称为差分功耗分析技术,用于破解密码系统。最大公约数(GCD)与标准ALU操作一样,在许多领域都有应用。在密码学[1],中,它被广泛应用于各种对称密钥算法;在模运算[1],中,它用于计算机代数或计算机科学中的位运算、编程语言中的取模运算、错误控制编码中的校验和计算等。在秀尔算法[2],中,它有助于整数分解的计算。因此,最大公约数计算因其在众多领域的广泛应用,成为现代数学中最重要的工具之一。密码算法中最重要且基本的需求是因式分解,而因式分解又依赖于最大公约数的计算。已有若干方法提出采用可逆逻辑门进行密码算法的电路设计,以缓解功耗分析攻击[3, 4]。这些论文中提出的工作明确指出了使用可逆逻辑设计密码算法的优势。在现有文献中,使用可逆逻辑设计密码算法已取得显著进展,但可逆GCD电路设计的研究却极为少见。在本研究中,我们提出了可逆GCD计算单元的设计,该设计将有助于缓解差分功耗分析攻击。从朗道尔的
通讯作者:H. V. 贾亚什里,电子与通信工程系,PES理工学院,班加罗尔,卡纳塔克邦,印度
†电子邮件: j a y ashreehv@ p es.edu
版权所有 © 2016 John Wiley & Sons, Ltd.
H. V. 贾亚什里, S. 科特索塔 和 V. 阿格拉瓦尔
根据原理,据指出[5]假设一台计算机(不可逆)擦除单个比特的信息,则每次逻辑操作至少会向环境中耗散KBTln2的能量(KB为玻尔兹曼常数,T为计算机所处环境的温度)。另一方面,摩尔定律指出芯片中的晶体管数量每18个月翻一番;因此,如果在采用不可逆门的芯片设计中继续遵循摩尔定律,则热量耗散将不断增加。为解决这一问题,IBM的研究人员 Bennett [6]提出了可逆计算的概念,以规避不可逆计算中的功耗问题。在可逆逻辑中,由于输入与输出之间存在唯一的单射映射关系,因此可以从输出恢复输入。文献[7]中的研究显示,构建密钥相关的可逆逻辑电路不仅适用于数据扰乱函数,还可用于构建一种新型通用的面向硬件的分组密码以及相应的密钥扩展算法。此外,通过在逻辑门级应用掩码技术,这些最终的硬件设计能够有效抵御功耗分析攻击。基于可逆逻辑门实现的最大公约数计算单元电路在密码算法实现中具有应用价值。最大公约数计算模块的应用在[8],中讨论的混合模式数字视频转码方法以及[9]中的配对密文加密算法用于有效密钥分发方面得到了充分展示。文献[10]中的工作旨在获得抗功耗攻击的电路。为实现这一目标,该设计基于Montgomery幂阶梯、进位保存公共被乘数Montgomery模乘法以及GCD计算单元。文献中存在多种高效GCD算法,例如Schönhage算法、亚二次整数GCD计算[11],以及整数GCD计算的并行算法[12]。我们的设计聚焦于二进制GCD算法[13]并进行了小幅修改,讨论了GCD计算所需的基本构建模块。这些相同的构建模块可用于实现不同的GCD计算算法。
本文中,我们提出了使用可逆逻辑门设计用于计算两个无符号数最大公约数(GCD)的各个组件的设计方法。本文的结构分为若干节。第2节介绍可逆逻辑门和优化参数的基础知识。
第3节讨论GCD设计的现有实现。第4节详细阐述所采用的算法以及提出的设计的结构顶层视图。第5节说明各组件的设计步骤和性能参数。第6节列出结果与比较,而第7节总结了本文所呈现的工作。
2. 可逆逻辑门
可逆门是一种能够根据唯一的输入向量生成唯一输出向量的门。可逆逻辑要求输出数量等于输入数量。因此,可逆门表示为n × n门。可逆门的扇出不能大于一[14]。可逆门中不允许存在环路或反馈。本文在第2.2节中对一些可逆门进行了介绍。
2.1.优化参数
可逆逻辑电路设计与综合中的重要电路指标或优化参数[15]如下所列:
•辅助输入:电路中保持恒定(即始终为0或1)的输入称为辅助输入。这些输入有助于重新配置可逆门的输出函数。
•门数量:电路中使用的可逆门的数量即为该电路的门数量。
量子代价:一个设计的量子代价是其设计中所使用的 1 × 1和 2 × 2可逆门的数量。
•垃圾输出:电路中不希望出现且对电路无用的输出称为垃圾输出。在输出端再生的输入不被视为垃圾输出 [16]。这些输出仅用于维持一一映射。
版权所有 © 2016 John Wiley & Sons, Ltd. 国际电路理论与应用杂志 ( 2016 ) DOI: 10.1002/cta
密码学中GCD计算单元的设计
| 可逆门 | 符号 | 量子代价 |
|---|---|---|
| 费曼门 | F | 1 |
| 托佛利门 | T | 5 |
| BJN门 | BJN | 5 |
| TR门 | TR | 5 |
| 弗雷德金门 | FG | 3 |
| UPG门 | UPG | 5 |
| 改进型TR门 | MTR | 6 |
2.2.最大公约数电路设计用可逆门
在提出的设计中使用的一些最常见可逆门如表I所示。这些包括费曼门[17],托佛利门[18],
BJN门[19], TR门[20],弗雷德金门[21], UPG门[22],和改进型TR门。改进型TR门是本研究中引入的。在TR门的第二输出线上放置一个非门以得到A ⊕B。因此,改进型TR门的量子代价将为1+ TR门的量子代价。
3. 现有工作
已有少数作者提出了用于实现最大公约数算法的可逆设计,但其适用性有限,因为这些设计不可扩展。作为比较,我们参考了[23]中提出的结果。我们发现,作者为最大公约数计算所需的每个组件提供了通用设计方法。[23]中的设计在每次计算后会清除辅助位,而[24]则不会。
此外,在现有工作中,执行计算所需的迭代次数大于本文提出的设计(参见表II和表III 以比较迭代次数,以及图1查看电路结构)。我们还发现,当其中一个输入为零时,作者提出的架构将无法成功计算最大公约数。作者在部分设计组件中采用了[25]中提出的现有设计。
我们验证了作者提出的方法[23],并发现其所需迭代次数多于作者所声称的n次迭代才能得到结果(表II中所示示例对于4位输入需要超过四次迭代)。
4. 行为最大公约数计算的可逆电路设计与行为模型
在本节中,介绍了较高抽象层次上改进的二进制GCD算法的行为与结构模型。在后续各节中,将对每个组件的设计进行详细讨论。
版权所有 © 2016 John Wiley & Sons, Ltd. 国际电路理论与应用杂志 ( 2016 ) DOI: 10.1002/cta
H. V. 贾亚什里, S. 科特索塔 和 V. 阿格拉瓦尔
| 迭代编号 | B线 (迭代前) | A 行 (迭代前) | B线 (迭代后) | A 行 (迭代后) |
|---|---|---|---|---|
| 1 | 12 | 11 | 6 | 11 |
| 2 | 6 | 11 | 3 | 11 |
| 3 | 3 | 11 | 3 | 4 |
| 4 | 3 | 4 | 2 | 3 |
| 5 | 2 | 3 | 1 | 3 |
| 6 | 1 | 3 | 1 | 1 |
| 7 | 1 | 1 | 1 | 0 |
| 迭代编号 | B线 (迭代前) | A 行 (迭代前) | B线 (迭代后) | A 行 (迭代后) | k[i] |
|---|---|---|---|---|---|
| 1 | 12 | 11 | 11 | 6 | 0 |
| 2 | 11 | 6 | 11 | 3 | 0 |
| 3 | 11 | 3 | 3 | 4 | 0 |
| 4 | 3 | 4 | 3 | 2 | 0 |
4.1.改进的二进制GCD算法
算法1通过修改[13]中给出的步骤,将求(A,B)的最大公约数问题进行简化。本文提出的改进的二进制最大公约数算法用于计算两个非负编号A和B的最大公约数,其中n ≥3;其中n是表示输入编号所用的位数。
表III通过一个示例说明了该算法。在第四次迭代后,A= 2和B= 3。然后检查(A ≠ 0)⋅(A ≠ B)的逻辑电平。由于该逻辑电平为真,因此取 B的最终值为1。因为在所有迭代过程中,A和B从未同时为偶数,所以k[i]在所有迭代中保持为零。因此,不执行左移操作,最终得到的结果为1。从这个示例可以明显看出,本研究所采用的方法相比现有工作[23]所需的迭代次数更少。我们对算法进行了建模,并针对n位数据进行了验证;结果表明,该方法需要 2n− 4次迭代才能得到输出。
4.2.二进制GCD计算的顶层结构设计
在本节中,我们对二进制GCD计算单元的结构模块进行功能描述。我们将最大公约数计算单元的功能框图分为三个图,如图2所示。使用第4.1节中提到的改进的二进制最大公约数算法进行最大公约数计算,该计算通过两个迭代阶段和一个非迭代阶段建模。
版权所有 © 2016 John Wiley & Sons, Ltd. 国际电路理论与应用杂志 ( 2016 ) DOI: 10.1002/cta
密码学中GCD计算单元的设计
算法1 提出的改进的二进制最大公约数算法。
1:输入:A,B
2: 对于 i= 1到 2n− 4执行
3: k[i]= 0;
4:如果 (A%2== 0&&B%2== 0)那么
5: A= A∕2;B= B∕2;k[i]= 1;
6:如果 (A ≥ B)那么
7:交换(A, B);
8:结束如果
9:否则 如果 (A%2== 0&& B%2≠ 0)那么
10: A=A∕2;
11:如果 (A ≥ B)那么
12:交换(A, B);
13:结束如果
14:否则如果 (A%2 ≠ 0&& B%2== 0) 那么
15: B=B∕2;
16:如果 (A ≥ B) 那么
17:交换(A, B);
18:结束如果
19:否则如果 (A%2 ≠ 0&&B%2 ≠ 0)那么
20:如果 (A ≥ B)那么
21: A=(A −B)∕2;
22: else
23: B=A;A=(B −A)∕2;{statements run 并行地}
24:结束如果
25:结束如果
26:结束循环
27: 如果 (A ≠ 0&& A ≠ B) 那么
28: B= 1;
29:结束如果
30: 对于 i= 1到 2n− 4执行
31:如果 (k[i]== 1)那么
32: B=B ≪ 1;
33:结束如果
34:结束循环
35:输出:GCD(A,B) = B {B line将保持最大公约数(A, B)}
迭代阶段:
以下描述中给出了每个模块的功能说明。简要解释了迭代阶段中每个结构模块的功能。此阶段中的模块将执行2n− 4次迭代。
(1) %2 和 /2模块:A%2(B%2)模块用于检查A(B)是否为偶数。如果结果为真,则使用 ∕2模块将A(B)除以2,否则数据不作修改直接通过。计算完成后,输出将指示A为偶数(B为偶数)以及根据偶数或奇数情况修正后的A(B)数据。由于不存在数据依赖关系,数据A和数据 B的计算是并行进行的。
(2) A< B模块:此处使用串行比较技术计算A< B。该模块的输入在计算后会被再生。该模块的第三(最后)条线在A线上的数据小于B线上的数据时输出高电平;否则输出低电平。
(3) CSWAP模块:该模块(表示为带负控制的弗雷德金门)根据前一模块得到的输出A< B来交换A和B线上的数据。该电路保持较大的
版权所有 © 2016 John Wiley & Sons, Ltd. 国际电路理论与应用杂志 ( 2016 ) DOI: 10.1002/cta
H. V. 贾亚什里, S. 科特索塔 和 V. 阿格拉瓦尔
R线上的值较大,A线上的值较小。如果A< B成立,则数据将不作任何修改地传递到CSWAP模块的输出线上。
(4) CSUB:条件减法(仅当两个输入均为奇数时执行减法)。此处,设fL为两个数中较大的数,f S为较小的数。来自前一个模块的fL作为第一条输入线,f S作为第二条输入线。计算减法后,fL线将输出f S,而f S线将输出差值;否则,fL,f S上的数据将保持不变,直接传递至该CSUB模块输出端对应的fL和f S线上。
(5) /2:当 A 和 B 线上的 输入 均为 奇数 时,CSUB 模块得到的 差值 被除以 2;否则,该模块 输入线 上的数据不作修改地传递到 输出线。
非迭代阶段:
此结构的前两个输入(从上往下)来自迭代阶段的前两条输出线(从上往下)。该阶段中的模块仅执行一次。该模块的输入将在上一阶段所有迭代完成后提供。
(1) A ≠ 0:检查 A 行上的数据是否非零。该模块生成两个输出。其中一条输出线将保持 A 行上的数据不变;另一条输出线通过将信号驱动至高电平来表示 A 非零,否则为低电平。
(2) A ≠ B:最后一个辅助输入线将保持 A 不等于 B 的输出结果,即当 A 不等于 B 时为高电平,否则为低电平。该模块的其他输出将再生 A 行和 B 行上的数据。
(3) 条件选择:如果A ≠ 0 且 A ≠ B,那么 CSEL‐out 将在 B 线上输出 1(00..0001);否则,B 线上保留之前的数据。
最终迭代阶段:
该阶段的模块从非迭代阶段和迭代阶段获取输入。来自非迭代阶段的输出线 CSEL‐out 以及来自迭代阶段的输出线 B‐even 和 A‐even 被作为输入提供给此模块。
(1) X2模块:如果对应于同一次迭代的B‐偶数和A‐偶数线均为高电平,则CSEL‐out线上的数据将被条件左移2n‐4次。
5. 可逆GCD组件的设计与性能参数计算
在本节中,我们介绍了针对n位输入数据宽度的设计方法和性能参数。对于偶数和奇数数据宽度的性能参数估算均已制表。符号⌊⌋和 ⌈⌉分别表示向下取整和向上取整。
5.1.可逆电路设计:A%2(B%2)和 /2
二进制数A(B)为偶数,如果其最低有效位为零。这需要一个费曼门和一个辅助输入位来指示输出是偶数还是奇数。该计算之后是一个条件/2模块,通过循环右移操作实现。该设计基于公式1和2。为了说明目的,图3中展示了对奇数和偶数数据位的移位操作。
$$ f_i = B’
0 \cdot B
{i+1} + B_i \cdot B_0 \quad 0 \leq i \leq n-2 $$ (1)
$$ f_i = B_0 \cdot B_{n-1} \quad i = n-1 $$ (2)
图4展示了该设计。CNOT门的目标线被用作弗雷德金门的控制线。通过并行弗雷德金门的重复结构,根据公式1和2执行交换操作。在计算完成后,第一个辅助线将指示高电平(如果B线上的数据为偶数),否则为低电平。输出线表示在fi线(0 ≤i ≤n−1)上。这些fi线将保持B线的原始值不变(如果B0为1)或保持B∕2的值(如果B0为0)。在再生阶段,可逆门(仅CNOT门)被重新运行,以释放所消耗的辅助位;这反过来减少了垃圾。
版权所有 © 2016 John Wiley & Sons, Ltd. 国际电路理论与应用杂志 ( 2016 ) DOI: 10.1002/cta
密码学中GCD计算单元的设计
输出。再生阶段增加了门数量和量子代价。由于这些组件被迭代重用,因此有必要再生辅助位。此处以输入数据位B为例进行说明,对于输入数据位A,其电路和说明同样适用。
5.1.1./2可逆电路性能参数计算。
本节包含对%2、/2电路性能参数的详细计算。
stage a:在此阶段,使用CNOT门生成偶数或奇数校验输出位。这些位在 stage b 中用于交换数据位。此阶段使用的CNOT门数量为n/2(当n为奇数时为(n−1)∕2)。CNOT门的连接方式部分为串行,部分为并行。通过实验评估,延迟计算为 ⌈log2n⌉,对于n=偶数情况。
stageb:阶段 b 的逻辑深度为 ⌈log2n⌉。在阶段 b 的每一步中,并行运行的弗雷德金门利用阶段 a 中 CNOT门 的目标位来控制交换操作。此阶段所需的最大弗雷德金门数量为 n − 1。
stagec:该系列CNOT门以stage a的镜像方式运行,以再生辅助位。此处,仅第一个CNOT门未重新执行,因为在设计的后续阶段我们需要 ∼ B0。CNOT门的数量比stage a的CNOT门数量少一个。
所有性能参数的摘要列于表IV中。参数“消耗的辅助输入”表示未被再生的辅助位的数量。
| 参数 | n‐偶数 | n‐奇数 |
|---|---|---|
| 辅助输入 | n∕2 | (n − 1)∕2 |
| 量子代价 | 6n− 6 | 6n − 7 |
| 门数量 | 2n− 2 | 2n − 3 |
| 消耗的辅助输入 (不包括再生的) | 1 | 1 |
| 延迟;深度 | 7 ⌈log2n⌉−1; 3 ⌈log2n⌉−1 | 2 ⌈log2(n−1)⌉+5 ⌈log2n⌉−1; 2 ⌈log2(n−1)⌉+ ⌈log2n⌉−1 |
| ### 5.2.可逆电路设计:A小于 B | ||
| 文献中存在多种用于比较两个数的设计。现有文献中的比较器设计会给出所有比较输出(A > B、A< B 和 A= B),并再生任一输入。本文所设计的电路根据最大公约数架构的需求,需要再生两个输入,并仅生成单个输出 A< B。本文提出的用于 A< B 的电路设计仅生成 A< B 输出信号,并再生两个输入数据(A 和 B 线上的数据)。该模块的设计被划分为多个阶段。为了更清晰地说明,各阶段如图5所示。A 和 B 线上数据的相等性检查在阶段 a 中进行。随后在阶段 b 进行小于计算步骤。在阶段 c,我们获得所需的输出 A< B。之后是再生阶段,用于将辅助位重置为其初始值,即再生辅助位以及输入 A 和 B。 |
$$ E_i = A_i \oplus B_i \quad \text{for } 0 \leq i \leq n-1 $$ (3)
$$ A < B = (A_{n-1} \cdot B_{n-1}) \oplus (E_{n-1} \cdot A_{n-2} \cdot B_{n-2}) \oplus (E_{n-1} \cdot E_{n-2} \cdot A_{n-3} \cdot B_{n-3}) \oplus \cdots $$ (4)
5.2.1. A小于B电路的性能参数。
本节涵盖A< B电路的性能参数估计。用于评估A< B信号的可逆门包括改进型TR门、UPG门、托佛利门、费曼门和非门。各阶段的性能参数计算如下。
阶段a
:该阶段包含并行运行的改进型TR门,用于检查 A< B和 A= B,针对 A和 B R线上每一位数据。该计算过程涉及 n个改进型TR门。所使用的辅助输入位数量为 n。由于本阶段中的所有门均并行执行,因此逻辑深度为1,延迟等于5(改进型TR门的量子延迟)。
阶段b
:该阶段通过串行运行的UPG门对连续的比特对评估小于条件。图5中的表达式阐明了计算步骤。该计算共使用了n− 2个UPG门。从图5可以看出,UPG门未放置在 0th和(n − 1)th条比特线上。该阶段的逻辑深度包含n − 2个UPG门。
stage c
:这是 A< B计算过程的最后一步。此阶段仅需一个托佛利门,因此门数量和逻辑深度均等于1。
stage d和e
:阶段 d 是阶段 b 的镜像。其逻辑深度和门数量与阶段 b 所获得的值相同。阶段 e 除 (n − 1)th 线外,是阶段 a 的镜像。该模块中使用非门和CNOT门在 (n − 1)th 线上再生输入。逻辑深度等于 2,但延迟为该阶段的最大延迟,即等效于改进型TR门的量子延迟(5)。
性能参数估算的摘要见表V。
| 参数 | n-偶数/奇数 |
|---|---|
| 辅助输入 | n |
| 量子代价 | 18n− 14 |
| 门数量 | 4n− 2 |
| 消耗的辅助输入 | 1 |
| 延迟;深度 | 8n− 1; 2n− 1 |
5.3.可逆电路设计:条件交换
该电路需要保持较大的值在B线,较小的值在A线上。为了表示这一点,输出线在图6中标记为fL和f S。线C是控制线,它来自前一个设计模块扩展的A< B线。如果C为0,即如果A> B或A= B,则线A和B上的数据将进行交换。该电路基于公式5和6进行设计。
$$ f_{Li} = C \cdot A_i + \overline{C} \cdot B_i \quad \text{for } 0 \leq i \leq n-1 $$ (5)
$$ f_{Si} = \overline{C} \cdot B_i + C \cdot A_i \quad \text{for } 0 \leq i \leq n-1 $$ (6)
5.3.1.条件交换电路的性能参数。
图6所示的设计被划分为三个阶段,即阶段a、阶段b和阶段 c。性能参数的摘要列于表VI中。
阶段a
:此阶段由费曼(CNOT)门组成,用于复制控制线C。需要复制控制线以实现交换操作的并行化。此步骤需要n − 1 CNOT门和一个非门。所需的常量或辅助输入为n − 1。此步骤操作的计算需要 1+ ⌈log2n⌉逻辑深度。
阶段b
:此阶段需要并行运行的弗雷德金门,根据控制输入C控制,对A和B线上的数据进行交换。本阶段包含n个弗雷德金门。由于所有弗雷德金门并行计算,该阶段的逻辑深度为1。
阶段c
:此阶段是阶段 a 的镜像。它利用 CNOT门 和 非门 来再生辅助输入位。这是为了减少垃圾位并重用辅助位所必需的。门数量和逻辑深度与阶段 a 的值相同。
| 参数 | n‐偶/奇 |
|---|---|
| 辅助输入 | n − 1 |
| 量子代价 | 7n |
| 门数量 | 3n |
| 消耗的辅助输入 | 0 |
| 延迟;深度 | 7+ 2 ⌈log2n⌉; 3+ 2 ⌈log2n⌉ |
5.4.可逆电路设计:控制线生成
该模块需要一个UPG门和一个非门来生成输出线,以指示A和B线上的数据是否均为奇数。如图 7所示。该门的输入是A%2= 0(设为C1)和B%2= 0(设为C2)模块的输出线,用于指示A(B)是偶数还是奇数。此阶段的输出由out1和out2表示。当A和B线上的数据均为奇数时,out1线变为高电平。当A和B线上的数据均为偶数时,out2线变为高电平。输出线out1和out2通过UPG门和非门的功能表达式得出,如公式7和8所示。第一条输出线是一个由g表示的垃圾位。
$$ \text{out1} = \overline{C1} + \overline{C2} $$ (7)
$$ \text{out2} = \overline{C1} \cdot \overline{C2} $$ (8)
5.4.1.控制线生成电路的性能参数。
控制线生成的计算仅需要两个门电路,即UPG和非门。性能参数的摘要列于表VII。
| 参数 | n‐偶/奇 |
|---|---|
| 辅助输入 | 1 |
| 量子代价 | 5 |
| 门数量 | 2 |
| 消耗的辅助输入 | 1 |
| 延迟;深度 | 5; 2 |
5.5.可逆电路设计:条件减法电路
该模块的数据输入来自CSWAP模块(fL和f S)以及控制生成模块的out1线,该out1线为控制线,用于指示A线和B线上的数据均为奇数。如果控制线(out1)为高电平,则该模块将对前一级模块中B线和A线上的数据(即分别为fL和f S)执行减法操作。计算完成后,fL线将保留较小数,而f S线将保留差值。条件减法采用串行进位技术实现,其串行减法计算基于公式 9和10。为了更清晰地说明,该设计被划分为若干阶段,如图8所示。阶段a包含CNOT门,用于生成控制位out1的副本。阶段b的计算由托佛利门、非门和费曼门组成,用于生成半减结果,即该阶段仅考虑被减数和减数。差值(Di)的完整计算以及较小数的再生将在阶段c中完成。减法结果将出现在fL线上,而较小数将在f S线上被再生。在阶段d中,将使用弗雷德金门执行条件交换操作。该交换操作是为了将差值结果获取到f S线(即A线)上。最后阶段e是阶段a的镜像,用于再生辅助位。此处我们采用二的补码方法来计算A和B之间的减法。该操作之后将跟随一次条件交换操作。差值的计算使用通用的公式10,并根据本电路的输入修改为如公式11所示的形式。
$$ C_{-1} = 1 $$ (9)
$$ D_i = (A_i \oplus C_{i-1}) \cdot \text{Control} \oplus B_i \quad \text{for } 0 \leq i \leq n-1 $$ (10)
$$ D_i = (f_{Si} \oplus C_{i-1}) \cdot \text{out1} \oplus f_{Li} \quad \text{for } 0 \leq i \leq n-1 $$ (11)
5.5.1.条件减法电路的性能参数。
此处针对条件减法电路的每个阶段解释了性能参数,相关内容总结于表VIII。
阶段 a
:在此阶段,生成控制位out1的副本。该阶段包含 n − 1个CNOT门。
阶段b
:该阶段包含CNOT门、非门和托佛利门,用于计算半减法。它需要 2n −1 托佛利门,1 个 CNOT门,和n非门。
阶段c
:该阶段包含6n−10个托佛利门、2n−1个CNOT门和n个非门,用于生成Di(差值)并再生较小数 (fSi)。
阶段d
:该阶段由弗雷德金门组成。如果控制位(out1)为高电平,则需要n个弗雷德金门来交换f S和fL线路上存在的数据。
阶段e
:该阶段是阶段a的镜像,其中重新执行一系列CNOT门。此阶段需要n − 1 CNOT门。
| 参数 | n‐偶/奇 |
|---|---|
| 辅助输入 | 2n − 2 |
| 量子代价 | 51n − 57 |
| 门数量 | 15n − 13 |
| 消耗的辅助输入 | 0 |
| 延迟;深度 | 2 ⌈log2n⌉+ 10n+ 19; 2 ⌈log2n⌉+ 2n+ 7 |
5.6.可逆电路设计:条件/2模块
来自前一模块的fS线(参考图8)或(图2中的A行)的数据是/2模块的数据输入,控制输入为图7中的out1。此处仅当out1为高电平时才执行除法操作(回忆:out1表示输入为奇数)。该模块的结构与图4所示设计类似,但排除了第一个CNOT门,并且将辅助位1替换为out1位。
5.7.可逆电路设计:非零块
非零块的设计(图2中的A非零块)包含UPG门和BJN门。该模块通过对此模块的输入位执行或运算来实现。此处给出了该设计所依据的简单方程。
$$ f_{A≠0} = A_0 + A_1 + A_2 + … + A_{n-1} $$ (12)
图9所示的设计步骤清晰地展示了电路如何逐阶段演化。阶段a由UPG门组成,这些门将对输入数据的连续两个数据位执行或运算。所需输出位于UPG门的第二个输出端。此步骤中的门并行执行。在阶段b中,对阶段a中两个连续UPG门的结果执行或运算。为了完成对所有位的或运算,阶段b需对每对连续位进行多次迭代或运算,直到完成n −2(n −1对于奇数n)位为止。在每一次迭代步骤中,UPG门串行计算。在阶段c中,使用BJN门产生最终输出f A≠0;该信号由BJN门的第三输出线计算得到。阶段d和阶段e分别是阶段b和阶段a的镜像,用于再生本模块的数据输入和辅助位。当该模块的数据输入为非零时,则f A≠ 0线变高,否则变低。该模块的数据输入和辅助输入位在输出端被再生,但最后一个辅助位(用于保持f A≠ 0)除外。
5.7.1.可逆非零电路的性能参数。
本节涵盖图9所示每个阶段的性能参数计算。性能参数汇总列于表IX中。
stage d和 stage e:这些阶段的计算涉及 stage b和 stage a中计算的镜像。
我们探索了使用BJN门的串联来计算f A≠0的另一种方案。我们发现,提出的设计所获得的性能参数优于前者。
5.8.可逆电路设计:A不等于B电路
图10所示的设计在阶段a包含CNOT门,在阶段b包含UPG门,在阶段c包含BJN门。阶段d是阶段b的镜像,阶段e是阶段a的镜像。相等性检查的计算在阶段a通过每个比特对的并行运行的CNOT门完成。在此,A线A上的数据的每一位都与B线B上对应位的数据进行相等性检查。阶段b将包含或运算的迭代;该步骤的输入由前一阶段的输出组成。
第 c 阶段将计算最终的或运算,以在最后一个辅助线中得到 f A≠B。本阶段所示的设计基于公式16和17。
$$ E_i = A_i \oplus B_i \quad \text{for } 0 \leq i \leq n-1 $$ (16)
$$ f_{A≠B} = E_0 + E_1 + … + E_{n-1} $$ (17)
5.8.1.可逆A不等于B电路的性能参数。
本节详细阐述了A不等于B电路的性能参数计算。a和 e阶段分别作为第一级和最后一级添加到A非零电路中。因此,A非零电路与A不等于B电路的计算仅在第一级和最后一级不同,其余计算相同。
stagea
:在此阶段,存在于 A 和 B 线路上的每一位数据均被输入至 CNOT门。该阶段包含 n 个 CNOT门。此阶段的量子代价为 n,辅助输入的总数与 A 非零电路相同,即 n − 1。
阶段 e 是阶段 a 的镜像。
性能参数列于表X中。
| 参数 | n‐偶数 | n‐奇数 |
|---|---|---|
| 辅助输入 | n− 1 | n − 1 |
| 量子代价 | 10n− 11 | 10n − 11 |
| 门数量 | 4n− 3 | 4n − 3 |
| 消耗的辅助输入 | 1 | 1 |
| 延迟;深度 | 4n − 1; n+ 1 | 4n+ 3; n+ 2 |
5.9.可逆电路设计:条件选择
该电路类似于CSWAP电路,只是CSWAP电路的输入为B线上的数据和0000…1(仅最低有效位为1,其余位为0)。设控制位为Y,其中Y=(A ≠ 0)⋅(A ≠ B)。如果Y为真,则执行交换操作;否则,数据将直接传递到输出线。对于性能参数,我们参考表VI。
5.10.最终迭代阶段
在此阶段,如果在特定迭代中(在迭代阶段生成)A‐偶数和B‐偶数输出为真,则B线上的数据左移2^n−4次。该可逆电路设计与/2模块相同,但位索引方向相反。为了生成用于指示A 和B均为偶数的控制线,使用了UPG门。UPG门的第三输出线作为控制线提供给移位模块 (参见图7)。该模块的性能参数参考表IV。
顶层模块的仿真结果如图11所示。
6. 与现有工作的比较
在本节中,我们给出了用于构建最大公约数架构的各个组件的性能参数估算,并与现有工作 [23]进行了比较。表XI、XII、XIII和XIV给出了针对n位操作数的门数量、量子代价、辅助输入和逻辑深度的估算结果。表XV、XVI和XVII给出了输入尺寸宽度从8到1K位范围内的可变输入尺寸宽度的比较结果。这些表格列出了所提出的方案与现有工作的估算值,以便进行对比分析。表格中包含的数据在奇数和偶数位长度情况下均取最坏情况值。在现有设计中,有几个参数需要注意:w(n)表示n的二进制展开中 1 ′ s的数量。现有工作的表格中所列出的参数仅考虑了CNOT门和Toffoli门。
| 设计 | A ≠ 0 | A ≠B | A< B | /2 | CSUB | CSWAP |
|---|---|---|---|---|---|---|
| 提出的设计 | 2n− 3 | 4n − 3 | 4n− 2 | 2n − 2 | 15n − 13 | 3n |
| 现有设计 [23] | 2n−2+* | − | 2n− 2+* | 5n − 3 | 16n − 11 | 5n− 3 |
| * | 6n−w(n− 1) − 2 ⌊log(n− 1)⌋− 7 | − | − | − | − | − |
| 设计 | A ≠ 0 | A ≠B | A< B | /2 | CSUB | CSWAP |
|---|---|---|---|---|---|---|
| 提出的设计 | 8n− 11 | 10n − 11 | 18n− 14 | 6n − 6 | 51n − 57 | 7n |
| 现有设计 [23] | 2n−2+* | − | 2n− 2+* | 9n − 7 | 72n − 55 | 9n− 7 |
| * | 5 ∗(6n −w(n− 1) − 2 ⌊log2(n− 1)⌋− 7) | − | − | − | − | − |
| 设计 | A ≠ 0 | A ≠ B | A<B | /2 | CSUB | CSWAP |
|---|---|---|---|---|---|---|
| 提出的设计 | n− 1 | n − 1 | n | n∕2 | 2n − 2 | n − 1 |
| 现有设计 [23] | 3n− 3‐* | − | 2n −3‐* | n | 2n − 2 | n |
| * | ⌊log2(n − 1)⌋ | − | − | − | − | − |
| 设计 | A ≠ 0 | A ≠ B | A<B | /2 | CSUB | CSWAP |
|---|---|---|---|---|---|---|
| 提出的设计 | n | n+ 2 | 2n − 1 | 3 ⌈log2n⌉− 1 | 2 ⌈log2n⌉+ 2n+ 7 | 2 ⌈log2n⌉+3 |
| 现有设计 [23] | 2 ⌊log2n⌋+7 | − | 2 ⌊log2n⌋+7 | 2 ⌈log2n⌉+6 | 3 ⌊log2(n− 1)⌋+ ⌊log2 n−1 3 ⌋+18 | 2 ⌈log2n⌉+6 |
| n | A ≠ 0 | A ≠ B | A<B | /2 | CSUB | CSWAP | A ≠ 0 | A< B/2 | CSUB | CSWAP |
|---|---|---|---|---|---|---|---|---|---|---|
| 8 | 13 | 29 | 30 | 14 | 107 | 24 | 48 | 48 | 117 | 37 |
| 16 | 29 | 61 | 62 | 30 | 227 | 48 | 109 | 109 | 245 | 77 |
| 32 | 61 | 125 | 126 | 62 | 467 | 96 | 234 | 234 | 501 | 157 |
| 64 | 125 | 253 | 254 | 126 | 947 | 192 | 487 | 487 | 1013 | 317 |
| 128 | 253 | 509 | 510 | 254 | 1907 | 384 | 996 | 996 | 2037 | 637 |
| 256 | 509 | 1021 | 1022 | 510 | 3827 | 768 | 2017 | 2017 | 4085 | 1277 |
| 512 | 1021 | 2045 | 2046 | 1022 | 7667 | 1536 | 4062 | 4062 | 8181 | 2557 |
| 1024 | 2045 | 4093 | 4094 | 2046 | 15347 | 3072 | 8155 | 8155 | 16373 | 5117 |
| n | A ≠ 0 | A ≠ B | A < B | /2 | CSUB | CSWAP | A ≠ 0 | A< B /2 | CSUB | CSWAP |
|---|---|---|---|---|---|---|---|---|---|---|
| 8 | 53 | 69 | 130 | 42 | 351 | 56 | 184 | 184 | 521 | 65 |
| 16 | 117 | 149 | 274 | 90 | 759 | 112 | 425 | 425 | 1097 | 137 |
| 32 | 245 | 309 | 562 | 186 | 1575 | 224 | 922 | 922 | 2249 | 281 |
| 64 | 501 | 629 | 1138 | 378 | 3207 | 448 | 1931 | 1931 | 4553 | 569 |
| 128 | 1013 | 1269 | 2290 | 762 | 6471 | 896 | 3964 | 3964 | 9161 | 1145 |
| 256 | 2037 | 2549 | 4594 | 1530 | 12,999 | 1792 | 8045 | 8045 | 18,377 | 2297 |
| 512 | 4085 | 510 | 9202 | 3066 | 26,055 | 3584 | 16,222 | 16,222 | 36,809 | 4601 |
| 1024 | 8181 | 10,229 | 18,418 | 6138 | 52,167 | 7168 | 32,591 | 32,591 | 73,673 | 9209 |
| n | A ≠ 0 | A ≠B | A< B | /2 | CSUB | CSWAP | A ≠ 0 | A<B/2 | CSUB | CSWAP |
|---|---|---|---|---|---|---|---|---|---|---|
| 8 | 7 | 7 | 8 | 4 | 14 | 7 | 19 | 11 | 14 | 8 |
| 16 | 15 | 15 | 16 | 8 | 30 | 15 | 42 | 26 | 30 | 16 |
| 32 | 31 | 31 | 32 | 16 | 62 | 31 | 89 | 57 | 62 | 32 |
| 64 | 63 | 63 | 64 | 32 | 126 | 63 | 184 | 120 | 126 | 64 |
| 128 | 127 | 127 | 128 | 64 | 254 | 127 | 375 | 247 | 254 | 128 |
| 256 | 255 | 255 | 256 | 128 | 510 | 255 | 758 | 502 | 510 | 256 |
| 512 | 511 | 511 | 512 | 256 | 1022 | 511 | 1525 | 1013 | 1022 | 512 |
| 1024 | 1023 | 1023 | 1024 | 512 | 2046 | 1023 | 3060 | 2036 | 2046 | 1024 |
7. 结论
我们提出了一种基于改进的二进制GCD算法并使用可逆逻辑门实现的最大公约数计算电路。该设计在构建电路组件以实现最大公约数算法时,采用了非门、托佛利门、费曼门(C NOT)、BJN门、UPG门、改进型TR门和弗雷德金门作为基本的可逆逻辑单元。所有性能指标均已列表统计,结果表明,在门数量、量子代价和辅助输入方面,性能参数均有提升。现有设计与提出的设计在条件减法电路中使用的辅助输入数量相同,但我们的设计在门数量和量子代价方面表现更优。由于整个电路使用了较少的可逆门,因此极大降低了功耗,有助于缓解功耗分析攻击。该算法及所有电路组件均通过Verilog硬件描述语言和Xilinx ISE仿真器进行了验证。
3335

被折叠的 条评论
为什么被折叠?



