Advanced Search
Volume 44 Issue 8
Aug.  2022
Turn off MathJax
Article Contents
LIU Zhiwei, ZHANG Qi, HUANG Hai, YANG Xiaoqiu, CHEN Guanbai, ZHAO Shilei, YU Bin. Design of High Area Efficiency Elliptic Curve Scalar Multiplier Based on Fast Modulo Reduction of Bit Reorganization[J]. Journal of Electronics & Information Technology, 2024, 46(1): 344-352. doi: 10.11999/JEIT221446
Citation: ZHAO Li, HE Huanjie, MENG Xiangyan, WANG Ning. Research on OFDM-IM Visible Light Communication System Based on Combination Index and Euclidean Distance[J]. Journal of Electronics & Information Technology, 2022, 44(8): 2710-2716. doi: 10.11999/JEIT220112

Research on OFDM-IM Visible Light Communication System Based on Combination Index and Euclidean Distance

doi: 10.11999/JEIT220112
Funds:  The National Natural Science Foundation of China (12004292), The General Project of Science and Technology Department of Shaanxi Province – Industry (2022GY-072), Xi’an Science and Technology Planning Project (2020KJRC0040)
  • Received Date: 2022-01-27
  • Accepted Date: 2022-06-08
  • Rev Recd Date: 2022-05-12
  • Available Online: 2022-06-10
  • Publish Date: 2022-08-17
  • DC-bias Optical-Orthogonal Frequency Division Multiplexing (DCO-OFDM) has a high Peak-to-Average Power Ratio (PAPR) and is susceptible to multipath interference and noise frequency bias. To address this challenge, carrier Index Modulation (IM) is introduced into DCO-OFDM and a DCO-OFDM-IM modulation scheme suitable for visible light communication is proposed. In this scheme, the signal mapping constraint model bases on the combination of composite index and Euclidian distance is used to perform block composite index of subcarriers, which can not only transfer information using traditional constellation modulation in the signal domain, but also carry additional information through the carrier index in the frequency domain, which improves effectively the system peak to average ratio and bit error rate performance. The theoretical bit error rate of DCO-OFDM-IM system is derived and verified by monte Carlo method. The results show that compared with traditional DCO-OFDM system, when the number of subcarriers is 256, the modulation order is 4, and the system bit error rate is 10–3, the required Signal-to-Noise Ratio (SNR) of DCO-OFDM-IM system is improved by about 2 dB on average. When the BER is 10–3, the required SNR of the combined index and Euclidian distance algorithm improved by 2 dB on average compared with the random carrier combination system. When the system Complementary Cumulative Distribution Function (CCDF) is 10–1, the average ratio of the original signal peaks of DCO-OFDM-IM is decreased by about 2.4 dB compared with that of DCO-OFDM.
  • 椭圆曲线密码(Elliptic Curve Cryptography, ECC)已经被美国国家标准学会(American National Standards Institute, ANSI)[1]、美国国家标准与技术研究所(National Institute of Standards and Technology, NIST)[2]、电气电子工程师协会(Institute of Electrical and Electronics Engineers, IEEE)[3]等国际标准组织广泛接受和部署[4],应用在各种各样的场景。在比特币的基础技术区块链中,广泛应用ECC中的secp256k1作为区块链的认证机制[5];我国自主研发的密码算法SM2密码标准,是国密体系中重要环节之一。ECC的应用日益增加,不同应用性能需求各异。例如在服务器和大型计算平台等,需要密码芯片具有较高的运算性能。在微控制器等设备中,一般要求密码芯片具有更小的面积。此外不同的标准通常使用不同的椭圆曲线,所以对多种曲线的兼容也一直是椭圆曲线的重点研究目标。

    标量乘架构的研究成为热点,Hu等人[6]提出SCA-256曲线的二阶段快速模约简方法,利用半字乘法器5个周期计算大数乘法实现高速标量乘的设计;文献[7]和文献[8]都对wNAF算法进行了优化,降低了标量乘的计算复杂度,提高了标量乘计算速度;Liu等人[9]利用软硬结合的方式以较低的面积实现了支持任意曲线的双域ECC处理器;Hossain等人[10]设计了同时适用于专用集成电路(Application Specific Integrated Circuit, ASIC)和现场可编程逻辑门阵列(Field Programmable Gate Array, FPGA)的标量乘操作步骤,适用于两条曲线;Liu等人[11]优化了非相邻形式算法,以高资源消耗实现了支持P256的高速ECC标量乘设计;Hu等人[12]和Choi等人[13]都提出高度资源复用的设计,以极低的硬件资源实现标量乘法器;Zhang等人[14]改进了蒙哥马利阶梯算法,提出了支持SCA-256的抗功耗攻击的高性能处理器。文献[15]改进了基2交叉模乘算法,提出了一种高面积时间效率的新型标量乘法器架构。这些设计的时间面积(Area·Time, AT)普遍较差,部分仅适用于特定曲线,ECC处理器需要兼顾速度和面积两者之间的关系,为解决此问题本文提出了全新的设计。

    本文提出了一种基于比特重组快速模约简的高面积效率ECC标量乘法器,支持secp256k1,secp256r1和SCA-256 3条曲线。本文的主要工作为:

    (1)设计了一种兼顾乘法和模逆两种功能的硬件复用运算单元,提高硬件资源使用率。同时采用Karatsuba-Ofman算法提高运算单元计算性能;

    (2)设计了基于比特重组快速模约简算法,实现了支持secp256k1, secp256r1和SCA-256快速模约简计算的硬件架构;

    (3)优化了点加和倍点的模运算操作调度,使乘法和快速模约简排布尽量紧密,减少标量乘计算需要的周期数量。

    椭圆曲线有很多种,使用较多的是Weierstrass曲线[16]。这一类曲线满足式(1):

    y2=x3+ax+b
    (1)

    NIST提出的曲线secp256r1和secp256k1以及国密sm2密码算法提出的曲线SCA-256都属于Weierstrass曲线。

    标量乘是ECC的核心运算,定义为$kP = P + \cdots + P$。其中$ k $是整数,$ P $是椭圆曲线上一点。标量乘算法较多,主要有二进制标量乘算法、非相邻形式(Non-Adjacent Form, NAF)标量乘算法等[17]。NAF标量乘算法[18]算法1所示,通过对$ k $进行重新编码,减少$ k $中非0元素出现的次数以达到提高标量乘性能的目的。

    算法1 NAF标量乘算法
     输入:$ k,P $
     输出:$ Q = kP $
     步骤1:计算${\text{NAF} }\left( k \right) = \left\{ { {k_{m - 1} }, \cdots ,{k_0} } \right\}$
     步骤2:$ Q \leftarrow \infty $
     步骤3:$ {\text{for }}i \leftarrow m - 1{\text{ down to }}0{\text{ do}} $
         $ Q \leftarrow 2Q $
          $ {\text{if }}{k_i} = 1{\text{ then}} $ $ Q \leftarrow Q + P $
          $ {\text{if }}{k_i} = - 1{\text{ then}} $ $ Q \leftarrow Q - P $
     步骤4:返回$ Q $
    下载: 导出CSV 
    | 显示表格

    标量乘运算是由一系列的点加(Point Addition, PA)和倍点(Point Doubling, PD)操作实现的。假设$ {P_1} = \left( {{X_1},{Y_1},{Z_1}} \right) $, $ {P_2} = \left( {{X_2},{Y_2},{Z_2}} \right) $, ${P_3} = \left( {{X_3},{Y_3},{Z_3}} \right)$是椭圆曲线上的3个点,那么点加操作可以定义为$ {P_3} = {P_1} + {P_2} $,倍点操作可以定义为$ {P_3} = 2{P_1} $。为了避免模逆这一复杂的操作,通常使用转换坐标系的方式减少模逆的计算次数。仿射-雅可比混合坐标系可以产生更快的点加操作,雅可比坐标系可以产生更快的倍点操作[19]

    仿射-雅可比混合坐标系下的点加公式如式(2)所示:

    X3=(Y2Z31Y1)2(X2Z21X1)2(X1+X2Z21)Y3=(Y2Z31Y1)(X1(X2Z21X1)2X3)Y1(X2Z21X1)3Z3=(X2Z21X1)Z1
    (2)

    雅可比坐标系下的倍点公式如式(3)所示:

    X3=(3X21+aZ41)8X1Y21Y3=(3X21+aZ41)(4X1Y21X3)8Y41Z3=2Y1Z1}
    (3)

    ECC应至少包含3个算术层:有限域运算层、点运算层和标量乘运算层,本节将按照标量乘法器的结构层次,自底向上介绍本文提出的标量乘法器设计。

    本文使用计算速度较快的快速模约简模乘,该模乘分为整数乘法运算和快速模约简运算两部分,整数乘法运算性能对模乘影响较大。使用大位宽乘法器计算乘法只需要一个周期,但是需要消耗大量硬件资源,使用小位宽乘法器计算乘法虽然面积较小,但是需要较多周期计算乘法,速度较慢,因此选择大小合适的乘法器是设计该部分的关键。Karatsuba–Ofman算法[20]可以将两个256 bit的大数乘法转化为3个128 bit的乘法和一些加减及移位操作,如式(4)所示。

    A×B=(a12128+a0)×(b12128+b0)=a1b12256+(a0+a1)(b0+b1)2128a1b12128a0b02128+a0b0=(a1b12256+a0b0)+[(a0+a1)(b0+b1)(a1b1+a0b0)]2128
    (4)

    该算法虽然可以减少乘法大小,但是同样带来了额外一些额外的计算。为了减少这些额外的计算带来的影响,优化了Karatsuba算法的操作调度方式,如算法2所示。

    算法2 改进的Karatsuba算法操作调度
     输入:$ A={a}_{1}{2}^{128}+{a}_{0},\;B={b}_{1}{2}^{128}+{b}_{0} $
     输出:$ C = A \cdot B $
     1:$ s = {a_1}\cdot{b_1} $;$ v\left[ {128:0} \right] = {\text{ }}{a_0} + {a_1} $;
       $ v\left[ {257:129} \right] = {b_0} + {b_1} $;
     2:$ r = {a_0}\cdot{b_0} $;$ {c_1} = r + s $;$u = {\text{~}}{c_1} + 1$;
     3:$ v = v\left[ {128:0} \right] \cdot v\left[ {257:129} \right] $;$ {c_1} = v + u $;
       $ {c_2} = \left\{ {s,r\left[ {255:128} \right]} \right\} + {c_1} $;
     4:返回$ C = \{ {c_2},r\left[ {127:0} \right]\} $
    下载: 导出CSV 
    | 显示表格

    本文提出的调度方式将式(4)分为3个周期进行计算,前两个周期使用乘法器和加法器可以得到$ {a_1}{b_1} $, $ {a_0}{b_0} $, $ {a_0} + {\text{ }}{a_1} $, $ {b_0} + {b_1} $以及$ - ({a_1}{b_1} + {a_0}{b_0}) $的结果,分别存入寄存器$ s $, $ v $, $ r $和$ u $中。第3个周期利用乘法器和加法器$ {c_1} $得到$({a_0} + {a_1})({b_0} + {b_1}) - ({a_1}{b_1} + {a_0}{b_0})$的结果。式(3)中可以看出$({a_1}{b_1}{2^{256}} + {a_0}{b_0})$可以通过位拼接直接实现,$[({a_0} + {a_1}) ({b_0} + {b_1}) - ({a_1}{b_1} + {a_0}{b_0})]{2^{128}}$可以通过$ {c_1} $左移128 bit实现。$ {c_1} $左移128 bit后低位都为0,$ ({a_1}{b_1}{2^{256}} + {a_0}{b_0}) $的低128 bit即$ {a_0}{b_0} $的低128 bit,所以两者相加可以先舍去低128 bit,只相加剩余部分,通过加法器$ {c_2} $得到这一结果,然后将$ {c_2} $与$ {a_0}{b_0} $的低128 bit进行拼接,可以得到最终的乘法结果C

    优化后的调度方式需要使用1个乘法器和2个加法器,以及4个存储中间结果的寄存器,经过3个时钟周期可以得到512 bit的乘法结果C

    为进一步提高设计的面积效率,本文提出了一种乘法与模逆可以实现资源共享的运算单元设计,此设计尽可能地复用加法器和寄存器实现乘法和模逆两种运算。模逆使用RS-A模逆算法[21],结合算法2及RS-A模逆算法设计出的新的运算单元如图1所示。此运算单元通过控制信号切换功能,当使用乘法功能时,进位保存加法器(Carry Save Adder, CSA)相当于算法2中的加法器$ {c_1} $,只需将第3个输入置0即可,加法器1相当于算法2中的加法器$ {c_2} $。然后根据算法2中的调度方式控制乘法器和加法器选择不同的输入实现乘法计算的功能,最后512 bit乘法结果分为高256 bit和低256 bit分别存入4个寄存器中,方便后续快速模约简模块进行比特重组。

    图  1  资源共享的运算单元

    使用模逆功能时,CSA加法器负责RS-A模逆算法中加减模数$ p $的相关计算,除2操作通过移位实现。加法器1负责RS-A模逆算法中的其他加减计算,除2也通过移位实现。然后根据RS-A模逆算法中的不同条件控制寄存器的输入输出选择和加法器的输入选择,最终实现模逆功能。

    此运算单元在不同功能的各个工作阶段,通过数据选择器选择不同的数据来源,即可实现乘法功能或模逆功能。因为乘法和模逆运算过程中都需要使用加法器,所以两种运算不能同时进行。通过转换坐标系的方式,标量乘运算过程中模乘和模逆不会同时进行,所以不会影响整体性能。与文献[6]相比,我们提出的结构乘法速度更快,也不需要额外的资源实现单独的模逆;与文献[22]相比乘法运算消耗周期数相同,但本文资源共享的结构使得面积更有优势。

    模约简需要根据曲线特点进行单独设计,不能直接套用其他曲线模约简公式。对于secp256k1,$p = {2^{256}} - {2^{32}} - {2^9} - {2^8} - {2^7} - {2^6} - {2^4} - 1 $ = ${2^{256}} - {2^{32}} - {2^{10}} + {2^6} - {2^4} - 1$,$ p $的位宽为256 bit。乘法结果最高为512 bit,将乘法结果表示为$C = {c_{127}}{2^{508}} + {c_{126}}{2^{504}} + \cdots + {c_1}{2^4} + {c_0}$,其中$ {c_i} $位宽为4 bit。根据$ p $的特点,secp256k1有如式(5)同余关系式:

    2256232+21026+24+1 (mod p)2260236+214210+28+24 (mod p)25082252+260+22382234+2232+228+2162212+2210+2826+2422+1 (mod p)
    (5)

    模约简过程中,首先需要处理$ C $的高256 bit,即${c_{127}}{2^{508}} + \cdots + {c_{64}}{2^{256}}$。结合式(5),可以得到式(6):

    c642256c64232+c64210c6426+c6424+c64 (mod p)c652260c65236+c65214c65210+c6528+c6524 (mod p)c1272508c1272252+c127260+2c1272382c127234++c12724c12722+c127 (mod p)
    (6)

    乘法结果的高256 bit可以通过式(6)右半部分的式子相加得到约简后的结果,然后再与乘法结果的低256 bit$ {c_{63}}{2^{252}} + \cdots + {c_0} $相加。将其按幂次由高到低排列,整理为和项和差项后,得到算法3。本文使用两个步骤完成secp256k1快速模约简的计算。首先第1步将乘法结果$ C $分解为128个4位数据段,然后重组为${s_1}{\text{~}}{s_{16}}$,此过程为比特重组。然后将重组后的16个数据段进行计算得到$ {z}_{1}\in (-3p, 8p) $。第1步的结果可能产生进位或借位,所以第二阶段需要对其再进行处理。当$ {z_1} $大于0时,我们将$ {z_1} $高位补0然后重复一次第1步操作,约简结果$ {z}_{2}\in [0,2p) $,最多还需要一次减法就能得到最终约简结果。当$ {z_1} $小于0时,通过最多3次累加可以得到最终约简结果。

    算法3 secp256k1快速模约简算法
     输入:$ C = {c_{127}}{2^{508}} + {c_{126}}{2^{504}} + \cdots + {c_1}{2^4} + {c_0} $, $0 \le C < {p^2}$
     输出:$ C\text{mod} p $
     (1) $ {s_1} = ({c_{63}}, \cdots ,{c_0}) $;
       $ {s_2} = ({c_{127}}, \cdots ,{c_{64}}) $;
       $ {s_3} = ({c_{126}}, \cdots ,{c_{64}},{c_{127}}) $;
       $ {s_4} = (2'h0,{c_{124}}, \cdots ,{c_{64}},2'h0,{c_{127}},4'h0) $;
       $ {s_5} = ({c_{119}}, \cdots ,{c_{64}},{c_{127}}, \cdots ,{c_{120}}) $;
       $ {s_6} = (214'h0,{c_{127}},2'h0,{c_{127}}, \cdots ,{c_{120}},4'h0) $;
       $ {s_7} = (214'h0,{c_{127}}, \cdots ,{c_{120}},{c_{126}},{c_{126}},2'h0) $;
       $ {s_8} = (192'h0,{c_{127}}, \cdots ,{c_{120}},12'h0,{c_{127}},2'h0,$
          ${c_{127}},10'h0) $;
       $ {s_9} = (218'h0,{c_{126}},18'h0,{c_{126}},{c_{127}},8'h0) $;
       $ {s_{10}} = (220'h0,{c_{127}},18'h0,{c_{127}},10'h0) $;
       $ {s_{11}} = ({c_{125}},254'h0) $;
       $ {s_{12}} = (2'h0,{c_{125}}, \cdots ,{c_{64}},{c_{127}},2'h0) $;
       $ {s_{13}} = (218'h0,{c_{127}}, \cdots ,{c_{120}},6'h0) $;
       $ {s_{14}} = (218'h0,{c_{127}},18'h0,{c_{127}},2'h0,{c_{127}},6'h0) $;
       $ {s_{15}} = (240'h0,{c_{127}},{c_{126}},8'h0) $;
       $ {s_{16}} = ({c_{126}},254'h0) $;
       $ {{\text{z}}_1} = {s_1} + {s_2} + {s_3} + {s_4} + {s_5} + {s_6} + {s_7} + {s_8} + {s_9} + {s_{10}} + $
       ${s_{11}} - {s_{12}} - {s_{13}} - {s_{14}} - {s_{15}} - {s_{16}} $;
       $ = ({r_{65}}, \cdots ,{r_0}) $
     (2) $ {t_1} = ({r_{63}}, \ldots ,{r_0}) $;
       $ {t_2} = \left( {216'h0,{\text{ }}{r_{65}},{r_{64}},20'h0,{\text{ }}{r_{65}},{r_{65}},{r_{64}}} \right) $;
       $ {t_3} = \left( {235'h0,{\text{ }}{r_{65}},{r_{64}},2'h0,{\text{ }}{r_{64}},4'h0} \right) $;
       $ {t_4} = \left( {242'h0,{\text{ }}{r_{65}},{r_{64}},6'h0} \right) $;
       $ {z_2} = {\text{ }}{t_1} + {t_2} + {t_3} - {t_4} $
     (3)若$({z_1} \ge 0)$,返回$ \left( {{z_2}\text{mod} p} \right) $;
       若$ ( - p < {z_1} < 0) $,返回$ \left( {{z_1} + p} \right) $;
       若$( - 2p < {z_1} \le - p)$,返回$ \left( {{z_1} + 2p} \right) $;
       若$( - 3p < {z_1} \le- 2p)$,返回$ \left( {{z_1} + 3p} \right) $;
    下载: 导出CSV 
    | 显示表格

    文献[14]和文献[23]提供了SCA-256和secp256r1的快速模约简公式,是将512 bit数据拆分为16个32 bit数据段,32 bit数据段可以进一步拆分为8个4 bit数据段,因此同样可以使用比特重组方法进行快速模约简算法的设计。

    本文利用比特重组方法提出兼容3条曲线的快速模约简结构,如图2所示。比特重组模块根据不同曲线的快速模约简公式将乘法结果进行拆分与重组,华莱士树模块负责快速模约简算法中第1步和第2步中$ {z_1} \ge 0 $时的计算,加法器阵列负责第2步$ {z_1} < 0 $时的计算。为减少资源消耗和路径延迟,将两个步骤的快速模约简分为3个时钟周期计算。首先第1个时钟周期利用比特重组模块将输入进行重组,重组为${s_1}{\text{~}}{s_{16}}$,其中secp256r1只有${s_1}{\text{~}}{s_{11}}$为有效值,${s_{12}}{\text{~}}{s_{16}}$为全0。然后使用CSA加法器组计算快速模约简公式的第1步中的${s_1} + {s_2} + {s_3} + {s_4} + {s_5} + {s_6} + {s_7} - {s_{12}} - {s_{13}}$,减法通过补码加法实现,结果存入$ w $中。第2个周期计算$w + {s_8} + {s_9} + {s_{10}} + {s_{11}} - {s_{14}} - {s_{15}} - {s_{16}}$,结果存入$ w $中,此时已经计算完毕$ {z_1} $。第3个时钟周期先判断$ w $的符号位,若$w \ge 0$则使用比特重组模块将$ w $重组为${t_1}{\text{~}}{t_4}$,然后使用华莱士树计算得到$ {z_2} $。若$ {z_2} $超过$ p - 1 $则通过加法器完成减$ p $操作。若$ w < 0 $,则使用加法器阵列进行累加,通过判断每一级加法器中间结果的符号位选择正确的约简结果。

    图  2  兼容3条曲线快速模约简结构

    虽然快速模约简相比常规方式需要周期数更多,但是本文通过对点加和倍点的模运算操作调度进行优化降低了其负面影响,将在下一节详细介绍。

    标量乘运算通过点加和倍点运算实现,因此对于点加和倍点的优化也十分重要。仿射-雅可比混合坐标系下的点加和雅可比坐标系下的倍点公式模乘计算次数较少[22],结合上文中提出的设计对点加和倍点的模运算操作调度进行了优化。为使乘法与模约简的排布尽量紧密,减少标量乘运算所需周期数量,本文提出了倍点和点加两种操作合一的模运算操作调度方案。

    倍点和倍点点加合一的模运算操作调度如图3所示,图3(a)为倍点的模运算操作调度,图3(b)为倍点点加合一的模运算操作调度。其中雅可比坐标系输入点$ ({X_1},{Y_1},{Z_1}) $用$ ({t_5},{t_6},{t_7}) $表示,仿射坐标系输入点用$ ({x_2},{y_2}) $表示,得到的雅可比坐标系下点$ ({X_2},{Y_2},{Z_2}) $也用$ ({t_5},{t_6},{t_7}) $,${t_1}{\text{~}}{t_7}$为寄存器。

    图  3  高速点加和倍点的模运算操作调度

    通过优化后的调度方法,1次模乘平均只需要3个周期,消除了因快速模约简计算需要3个周期带来的影响。标量乘运算过程中点加和倍点操作是连续进行的,我们提出的两种调度方式在最后3个周期可以开始下一次运算的第1次乘法,此时需要额外的周期计算第1次模加。故1次倍点平均需要27个周期,1次倍点点加需要60个周期。

    本文将secp256k1, secp256r1, SCA-2563条曲线的标量乘集成为1个单元进行设计,图4给出了标量乘法器的硬件架构。标量乘法器由标量乘控制模块、倍点和倍点点加控制模块、NAF编码器、模运算单元和寄存器组5部分组成。

    图  4  标量乘法器

    标量乘控制模块对标量乘法器整体进行控制,控制NAF编码器、点运算和有限域运算的开始和结束,使标量乘法器可以准确地完成标量乘运算。切换曲线也通过该模块实现,当切换不同曲线时,标量乘控制模块控制点运算和有限域运算选取不同的曲线参数。倍点控制和倍点点加控制模块负责点运算的顺利完成,控制底层模运算单元的开始和结束、模运算单元和寄存器组的输入与输出选择。模运算单元包括模加减模块、资源共享的运算单元和快速模约简模块,负责有限域运算。寄存器组存储模运算单元产生的所有中间结果。

    表1是使用55 nm CMOS工艺综合得到标量乘法器中主要模块面积,可以看到资源共享的运算单元为151k等效二输入与非门,占整个标量乘法器面积的54%,是占比最大的模块。表2给出了每个椭圆曲线操作需要的周期数量。1次标量乘共需要10366个周期,在500 MHz的频率下计算1次标量乘需要0.02 ms,每秒可以计算48309次标量乘。

    表  1  主要模块面积
    模块NAF编码器资源共享
    运算单元
    模约简标量乘法器
    面积(K·Gates/LUTs)1615145275
    下载: 导出CSV 
    | 显示表格
    表  2  椭圆曲线操作周期
    乘法模约简模加/减模逆NAF编码倍点倍点点加标量乘
    周期331360256276010366
    下载: 导出CSV 
    | 显示表格

    本文标量乘法器最终性能如表3所示,为了得到合理的对比,在ASIC平台使用55 nm和130 nm的工艺进行了前端逻辑综合,在FPGA平台使用Virtex-7进行了实现,并与类似工作进行了比较。

    表  3  256位素数域下椭圆曲线标量乘法器的性能比较
    方案工艺(nm)曲线主频(MHz)周期面积(K·Gates/LUTs)单次时间(μs)吞吐量(次/s)AT
    本文55secp256k1/r1, SCA-2565001036627520.7483095.7
    文献[22]55secp256r1300795530627377128.1
    文献[9]552561364582001891450690274
    文献[10]65256546.53973004477301370326.3
    文献[11]65secp256r11882300350012.58000043.7
    本文130secp256k1/r1, SCA-2562431036631442.52352913.3
    文献[6]130SCA-25625014240280571754415.9
    文献[12]13025615061000057.14070246232
    文献[14]130SCA-25621445500208211474044.2
    文献[13]180secp256r118536800144.8711408428.9
    本文Virtex-7secp256k1/r1, SCA-256371036647.4279358413.2
    文献[24]Virtex-7256177.7262.732.7147167948.5
    文献[25]Virtex-725672.9215.996.92957338286.8
    下载: 导出CSV 
    | 显示表格

    文献[22]使用快速模约简方式模乘,支持单曲线secp256r1,使用滑动窗口NAF标量乘算法,标量乘消耗周期数少,但是主频较低而且面积更大,所以本文AT值更有优势。文献[9]使用基4交错模乘,标量乘法器面积较小,但一次模乘需要大量周期,导致吞吐量和AT较差。文献[10]提出新的倍点和点加并行技术减少操作步骤,主频是所有设计中最高的,但是面积大,而且标量乘计算速度慢,与之相比本文的设计在AT值和吞吐量都很有优势。文献[11]采用128 bit的分段模乘,一次标量乘仅需0.0125 ms,每秒可实现80000次标量乘,是所有设计中吞吐量最高的,但是标量乘法器面积是本文的12倍,AT值远大于本文提出的设计。文献[6]设计面积比本文小,但一次乘法需要5个周期计算,计算标量乘需要的周期比本文多,所以标量乘计算速度比本文慢,AT值比本文高。文献[12]和文献[13]都以硬件资源消耗最少为目标,所以速度都较慢,AT值都远远大于本文。文献[14]通过改进蒙哥马利阶梯算法,使得点加和倍点同时进行,虽然面积较小,但标量乘速度慢,吞吐量和AT值都差于本文。文献[24]采用蒙哥马利阶梯算法实现标量乘,虽然采用了转换坐标系方式提高标量乘计算速度,但是基2交错模乘速度慢,吞吐量和AT都不高。文献[25]提出了一种基于RNS的ECC处理器,可同时处理多个标量乘操作,但AT差于本文设计。

    本文提出了一种基于比特重组快速模约简的高面积效率ECC标量乘法器设计。利用Karatsuba-Ofman算法设计出仅需3个时钟周期的乘法器,提升了乘法的计算速度。基于此乘法器,又提出乘法与模逆资源共享的运算单元设计,在原乘法器结构基础上只增加一个CSA加法器可实现乘法或模逆的计算,在不影响两者速度的情况下进一步降低硬件资源消耗。推导了secp256k1曲线的快速模约简公式,基于比特重组方法与secp256r1和SCA-256两条曲线融合,设计了兼容3条曲线的快速模约简结构。最后根据所设计的运算单元和快速模约简结构提出了新的点加和倍点的操作调度方法,提高了乘法与快速模约简的并行性,从而获得了更高的吞吐量。实验结果表明,该标量乘法器的AT值比现有的大部分设计更低,此外在吞吐量方面也具有优越性。

  • [1]
    CHUN H, RAJBHANDARI S, FAULKNER G, et al. Optimum device and modulation scheme selection for optical wireless communications[J]. Journal of Lightwave Technology, 2021, 39(8): 2281–2287. doi: 10.1109/JLT.2021.3051379
    [2]
    叶新荣, 朱卫平, 张爱清, 等. OFDM系统双选择性慢衰落信道的压缩感知估计[J]. 电子与信息学报, 2015, 37(1): 169–174. doi: 10.11999/JEIT140247

    YE Xinrong, ZHU Weiping, ZHANG Aiqing, et al. Compressed sensing based on doubly-selective slow-fading channel estimation in OFDM systems[J]. Journal of Electronics &Information Technology, 2015, 37(1): 169–174. doi: 10.11999/JEIT140247
    [3]
    邵凯, 金庚, 王光宇, 等. 排列模式索引调制正交频分复用系统[J]. 电子与信息学报, 2021, 43(9): 2640–2646. doi: 10.11999/JEIT200248

    SHAO Kai, JIN Geng, WANG Guangyu, et al. Permutation-mode orthogonal frequency division multiplexing system with index modulation[J]. Journal of Electronics &Information Technology, 2021, 43(9): 2640–2646. doi: 10.11999/JEIT200248
    [4]
    彭聪, 许鹏, 陈翔, 等. MIMO-OFDM系统中各天线独立相位噪声的影响[J]. 电子与信息学报, 2017, 39(12): 2999–3003. doi: 10.11999/JEIT170260

    PENG Cong, XU Peng, CHEN Xiang, et al. Influence of independent phase noises on MIMO-OFDM systems[J]. Journal of Electronics &Information Technology, 2017, 39(12): 2999–3003. doi: 10.11999/JEIT170260
    [5]
    JIANG Tao, TANG Ming, LIN Rui, et al. Investigation of DC-biased optical OFDM with precoding matrix for visible light communications: Theory, simulations, and experiments[J]. IEEE Photonics Journal, 2018, 10(5): 1–16. doi: 10.1109/JPHOT.2018.2866952
    [6]
    HUSSEIN H S and HAGAG M. Optical MIMO-OFDM with fully generalized index-spatial LED modulation[J]. IEEE Communications Letters, 2019, 23(9): 1556–1559. doi: 10.1109/LCOMM.2019.2926457
    [7]
    左家骏, 杨瑞娟, 李晓柏, 等. 基于索引调制OFDM雷达通信共享信号压缩感知方法研究[J]. 电子与信息学报, 2020, 42(12): 2976–2983. doi: 10.11999/JEIT190740

    ZUO Jiajun, YANG Ruijuan, LI Xiaobai, et al. A compressed sensing method for joint radar and communication system based on OFDM-IM signal[J]. Journal of Electronics &Information Technology, 2020, 42(12): 2976–2983. doi: 10.11999/JEIT190740
    [8]
    葛利嘉, 江治林, 冯胜, 等. 非正交-码索引调制方法[J]. 电子与信息学报, 2018, 40(10): 2331–2336. doi: 10.11999/JEIT180023

    GE Lijia, JIANG Zhilin, FENG Sheng, et al. Non-orthogonal-code index modulation[J]. Journal of Electronics &Information Technology, 2018, 40(10): 2331–2336. doi: 10.11999/JEIT180023
    [9]
    VAN LUONG T and KO Y. Spread OFDM-IM with precoding matrix and low-complexity detection designs[J]. IEEE Transactions on Vehicular Technology, 2018, 67(12): 11619–11626. doi: 10.1109/TVT.2018.2872873
    [10]
    NTOUN G D, KAPINAS V M, and KARAGIANNIDIS G K. On the optimal tone spacing for interference mitigation in OFDM-IM systems[J]. IEEE Communications Letters, 2017, 21(5): 1019–1022. doi: 10.1109/LCOMM.2017.2660479
    [11]
    KIM K H. PAPR reduction in OFDM-IM using multilevel dither signals[J]. IEEE Communications Letters, 2019, 23(2): 258–261. doi: 10.1109/LCOMM.2019.2892103
    [12]
    TUSHA A, DOĞAN S, and ARSLAN H. IQI mitigation for narrowband IoT systems with OFDM-IM[J]. IEEE Access, 2018, 6: 44626–44634. doi: 10.1109/ACCESS.2018.2864892J
    [13]
    LI Jun, DANG Shuping, WEN Miaowen, et al. Layered orthogonal frequency division multiplexing with index modulation[J]. IEEE Systems Journal, 2019, 13(4): 3793–3802. doi: 10.1109/JSYST.2019.2918068
    [14]
    QING Hua, YU Hua, LIU Yun, et al. Distributed cooperative OFDM-IM system[J]. China Communications, 2020, 17(9): 167–176. doi: 10.23919/JCC.2020.09.013
    [15]
    赵辉, 莫谨荣, 王薇, 等. OFDM系统中基于压缩感知的非线性失真恢复研究[J]. 电子与信息学报, 2021, 43(7): 1907–1912. doi: 10.11999/JEIT20037

    ZHAO Hui, MO Jinrong, WANG Wei, et al. Research on nonlinear distortion recovery based on compressed sensing in OFDM system[J]. Journal of Electronics &Information Technology, 2021, 43(7): 1907–1912. doi: 10.11999/JEIT20037
  • 加载中

Catalog

    通讯作者: 陈斌, bchen63@163.com
    • 1. 

      沈阳化工大学材料科学与工程学院 沈阳 110142

    1. 本站搜索
    2. 百度学术搜索
    3. 万方数据库搜索
    4. CNKI搜索

    Figures(4)  / Tables(2)

    Article Metrics

    Article views (591) PDF downloads(80) Cited by()
    Proportional views
    Related

    /

    DownLoad:  Full-Size Img  PowerPoint
    Return
    Return