CN112511170B - 一种格密码中多项式压缩的并行实现方法 - Google Patents
一种格密码中多项式压缩的并行实现方法 Download PDFInfo
- Publication number
- CN112511170B CN112511170B CN202011246920.3A CN202011246920A CN112511170B CN 112511170 B CN112511170 B CN 112511170B CN 202011246920 A CN202011246920 A CN 202011246920A CN 112511170 B CN112511170 B CN 112511170B
- Authority
- CN
- China
- Prior art keywords
- compression
- processor
- polynomial
- coefficients
- parallel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000007906 compression Methods 0.000 title claims abstract description 47
- 230000006835 compression Effects 0.000 title claims abstract description 45
- 238000000034 method Methods 0.000 title claims abstract description 12
- 230000006837 decompression Effects 0.000 claims abstract description 20
- 238000004364 calculation method Methods 0.000 claims description 35
- 238000005457 optimization Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/70—Type of the data to be coded, other than image and sound
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Complex Calculations (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明涉及一种格密码中多项式压缩的并行实现方法,属于密码学领域,该方案包括以下步骤:首先通过格密码相关参数设置来预计算k、m等参数;基于设置的参数对待压缩或解压缩的多项式系数进行并行压缩或解压缩。本发明利用处理器提供的并行计算指令集在不修改参数的前提下实现更高效的格密码中多项式压缩的目的。
Description
技术领域
本发明属于密码学领域。
背景技术
随着量子计算的快速发展,可以抵御量子计算攻击的后量子密码逐渐显示出优势。格密码是后量子密码中的一种类型,其中又包括了基于不同困难问题的类型,如基于环上容错学习等。当前以及未来越来越多的通信、数据加密需求使得密码算法的性能愈发重要,处理器架构差异、计算能力差距等都是密码算法实现中需要考虑的关键因素。格密码的性能仍有一定提升空间,原因在于格密码中的部分算子依旧可以针对特定平台进行优化。
基于上述问题,学术界和工业界已针对格密码进行很多相关的实现优化工作,例如在ARM平台、Intel平台、FPGA等对核心算子进行针对性优化。优化实现中的关键技术之一即提升并行度,对于格密码中的多项式乘法、多项式加法等算法使用特定平台的指令集进行处理。然而,在现有的并行优化实现中,均未对多项式压缩进行优化,多项式压缩耗时较长影响密码算法的整体性能,成为性能提升的瓶颈。
发明内容
发明目的:为了解决上述背景技术中存在的问题,本发明提供了一种格密码中多项式压缩的并行实现方法。
技术方案:本发明提供了一种格密码中多项式压缩的并行实现方法,该方法包括压缩计算和解压缩计算;
所述压缩计算具体包括如下步骤:
步骤1:根据格密码的模数q,计算用于进行多项式压缩计算的乘法参数m和移位参数k,所述q为小于等于216的正整数;
步骤2:基于乘法参数m和移位参数k,对格密码中多项式的系数进行并行压缩计算。
进一步的,所述步骤1中基于如下公式计算k和m:
其中d为正整数,《为左移,为向上取整,/>为向下取整;
且k和m满足如下条件:
&表示与,>>为右移,x为单个多项式中的单个系数,为四舍五入。
进一步的,所述步骤2中采用第一处理器进行压缩计算,该处理器中所有寄存器的位数均为l,进行压缩前将的值广播到第一处理器中的第一寄存器中,将m的值广播到第一处理器中的第二寄存器中;将单个多项式的所有系数分成若干组,每组的个数均为l/t,t为8的倍数,t的值根据模数q确定;将任意一组中的l/t个系数对齐输入至第一处理器中的第三寄存器中,处理器调用第一~三寄存器中的数据,从而对该组中的l/t个系数进行并行压缩。
进一步的,所述第一处理器根据如下公式对l/t个系数进行并行压缩计算:
其中,xi为第i个系数,x'i为xi压缩后的值,k1=2w-k-d,k2=k-w+d,其中w为xi<<d的位宽,《表示左移,>>表示右移,d为正整数。
进一步的,在进行解压缩计算时采用第二处理器进行解压缩计算,该处理器中所有寄存器的位数均为l,解压缩计算前将q的值广播到第二处理器中的第一寄存器中,将压缩后任意一组中l/t个系数对齐输入到第二处理器中的第二寄存器中,第二处理器调用第一,二寄存器中的数据,对该组的l/t个系数进行并行解压缩计算。
进一步的,所述第二处理器根据如下公式对l/t个系数进行并行解压缩计算:
x″i=((x′i·q)+2d-1)<<d
其中,x'i为l/t个系数中第i个系数压缩后的值,x″i为对x'i解压后的值,<<表示左移,d为正整数。
有益效果:本发明计算了用于压缩计算的乘法参数m和移位参数k,并利用乘法和位移计算代替压缩计算中的除法计算,实现了压缩效率最大化;本发明大幅度提升了格密码压缩性能,本发明与现有方案相比,算法性能提升8倍到53倍左右。
附图说明
图1是本发明的流程图;
图2是采用本发明的方法在AKCN-MLWE中实现对3比特压缩与解压缩计算的AVX2算法图;
图3是采用本发明的方法在AKCN-MLWE中实现对10比特压缩与解压缩计算的AVX2算法图。
具体实施方式
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
如图1所示,本实施例提供了一种格密码中多项式压缩的并行实现方法,该方法包括压缩计算和解压缩计算,
所述压缩计算具体包括如下步骤:
步骤1:根据格密码的模数q,计算用于进行多项式压缩计算的乘法参数m和移位参数k,所述q为小于等于216的正整数;
步骤2:基于乘法参数m和移位参数k,对格密码中多项式的系数进行并行压缩计算。
优选的,步骤1具体为:首先,表示整数域,记格密码中模数为q,满足/>设p为任意正整数,设a为/>内的任意数,设移位参数k满足k>log2aq,计算k的最小取值为/>和对应的乘法参数/> 为向上取整,由此可以得到/> 为向下取整,》表示右移,通过上述方法可以预计算k和m从而使用乘法和移位来代替整除。
记格密码中单个多项式为Rq,记多项式中单个系数为x,且使用16位表示,定义对单个系数的标准形式压缩公式为/>其中,/>为四舍五入,d为正整数,记处理器的最大寄存器的位宽为l,本实施例中l为32的整数倍且一般为64或256。
m与k满足/>因此预计算/>从而使用乘法和移位来代替整除运算,《表示左移。
优选的,预计算与m的值(m的值不是已经得到了么)并分别广播到两个寄存器,输入l/t个多项式系数x0到x(l/t)-1依次存入l位寄存器依次存入l位寄存器,t为8的倍数,t的值根据模数q确定,本实施例取16,记存储x<<d所需的位宽为w,w一般为16或32,预计算k1=2w-k-d与k2=k-w+d。
优选的,使用处理器所支持的并行计算指令集,如Intel处理器中的AVX2指令集,进行并行压缩计算其中xi表示压缩前第i个系数,x'i表示压缩后的第i个系数,因此对于n维多项式共需要16·n/l组即可完成所有系数的压缩。
优选的,解压所前预计算2d-1,将q广播到一个l位寄存器,输入l/16个多项式系数x'0到x'l/16-1,对齐存入一个l位寄存器。处理器根据如下公式对l/t个系数进行并行解压缩计算:
x″i=((x′i·q)+2d-1)<<d
其中,x″i为对x'i解压后的值。
为进一步说明本实施列的技术方案及技术效果,在格密码AKCN-MLWE中,模数q=7681,多项式维度n=256,压缩系数d=3或d=10,具体压缩与解压缩的AVX2实现算法分别见图2和图3,图2中的a[i]表示作为算法输入的a中的第i个系数,图3中的vpmul{l|h}w表示vpmullw和vpmulhw两条指令,vpunpck{l|}wd表示vpunpcklwd和vpunpckwd两条指令,0xf5和mask表示算法中使用的运算掩码,a1、b和c表示算法中使用的临时寄存器,b[i]和c[i]分别表示b和c中的第i个系数。
本实施例在8核Intel Core i9-9880H处理器和16G内存的硬件环境下进行基准测试,将本实施例的性能结果与现有技术的性能结果进行比对,比对的结果如表1所示,从表1中可以看出,本实施例在同样参数设置下,性能提升是现有技术的8倍到53倍。
表1
本发明性能(单位:CPU周期数) | 现有技术性能(单位:CPU周期数) | |
3比特压缩+序列化 | 24 | 1272 |
3比特解压缩+序列化 | 20 | 246 |
10比特压缩+序列化 | 132 | 1261 |
10比特解压缩+序列化 | 46 | 387 |
上面对本发明作了详细的说明,但是本发明并不限于上述的实施方式,在本领域的技术人员可以根据自己所具备的知识,对本发明做各种变化以达到更优的效果。
Claims (4)
1.一种格密码中多项式压缩的并行实现方法,其特征在于,该方法包括如下步骤:
步骤1:根据格密码的模数q,计算用于进行多项式压缩计算的乘法参数m和移位参数k,所述q为小于等于216的正整数;
步骤2:基于乘法参数m和移位参数k,对格密码中多项式的系数进行并行压缩计算;
所述步骤1中基于如下公式计算k和m:
其中d为正整数,<<为左移,为向上取整,/>为向下取整;
且k和m满足如下条件:
&表示与,>>为右移,x为单个多项式中的单个系数,为四舍五入;
所述步骤2中采用第一处理器进行压缩计算,该处理器中所有寄存器的位数均为l,进行压缩前将的值广播到第一处理器中的第一寄存器中,将m的值广播到第一处理器中的第二寄存器中;将单个多项式的所有系数分成若干组,每组的个数均为l/t,t为8的倍数,t的值根据模数q确定;将任意一组中的l/t个系数对齐输入至第一处理器中的第三寄存器中,处理器调用第一~三寄存器中的数据,从而对该组中的l/t个系数进行并行压缩。
2.根据权利要求1所述的一种格密码中多项式压缩的并行实现方法,其特征在于,所述第一处理器根据如下公式对l/t个系数进行并行压缩计算:
其中,xi为第i个系数,x′i为xi压缩后的值,k1=2w-k-d,k2=k-w+d,其中w为xi<<d的位宽,<<表示左移,>>表示右移,d为正整数。
3.根据权利要求1所述的一种格密码中多项式压缩的并行实现方法,其特征在于,该方法还包括解压缩计算,在进行解压缩计算时采用第二处理器进行并行解压缩计算,该处理器中所有寄存器的位数均为l,解压缩计算前将q的值广播到第二处理器中的第一寄存器中,将压缩后任意一组中l/t个系数对齐输入到第二处理器中的第二寄存器中,第二处理器调用第一,二寄存器中的数据,从而对该组中l/t个压缩后的系数进行并行解压缩计算。
4.根据权利要求3所述的一种格密码中多项式压缩的并行实现方法,其特征在于,所述第二处理器根据如下公式对l/t个系数进行并行解压缩计算:
x″i=((x′i·q)+2d-1)<<d
其中,x′i为l/t个系数中第i个系数压缩后的值,x″i为对x′i解压后的值,<<表示左移,d为正整数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011246920.3A CN112511170B (zh) | 2020-11-10 | 2020-11-10 | 一种格密码中多项式压缩的并行实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011246920.3A CN112511170B (zh) | 2020-11-10 | 2020-11-10 | 一种格密码中多项式压缩的并行实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112511170A CN112511170A (zh) | 2021-03-16 |
CN112511170B true CN112511170B (zh) | 2024-04-16 |
Family
ID=74957091
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011246920.3A Active CN112511170B (zh) | 2020-11-10 | 2020-11-10 | 一种格密码中多项式压缩的并行实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112511170B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113472525B (zh) * | 2021-06-24 | 2022-07-26 | 南京航空航天大学 | 基于后量子密码Saber算法的低内存占用密钥生成方法和加解密方法及其系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109388954A (zh) * | 2017-08-07 | 2019-02-26 | 英飞凌科技股份有限公司 | 用于检查结果的方法和设备及存储介质 |
CN110138752A (zh) * | 2019-04-19 | 2019-08-16 | 北京信息科学技术研究院 | 一种基于格的公钥加密方法 |
CN110460442A (zh) * | 2019-07-01 | 2019-11-15 | 中国科学院数学与系统科学研究院 | 一种基于格的密钥封装方法 |
CN110474772A (zh) * | 2019-07-01 | 2019-11-19 | 中国科学院数学与系统科学研究院 | 一种基于格的加密方法 |
CN111492616A (zh) * | 2017-10-17 | 2020-08-04 | 皇家飞利浦有限公司 | 用于基于晶格的密码学的可配置设备 |
CN111698081A (zh) * | 2020-06-08 | 2020-09-22 | 中国科学院重庆绿色智能技术研究院 | 一种基于格的压缩分块ibe加密装置及方法 |
-
2020
- 2020-11-10 CN CN202011246920.3A patent/CN112511170B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109388954A (zh) * | 2017-08-07 | 2019-02-26 | 英飞凌科技股份有限公司 | 用于检查结果的方法和设备及存储介质 |
CN111492616A (zh) * | 2017-10-17 | 2020-08-04 | 皇家飞利浦有限公司 | 用于基于晶格的密码学的可配置设备 |
CN110138752A (zh) * | 2019-04-19 | 2019-08-16 | 北京信息科学技术研究院 | 一种基于格的公钥加密方法 |
CN110460442A (zh) * | 2019-07-01 | 2019-11-15 | 中国科学院数学与系统科学研究院 | 一种基于格的密钥封装方法 |
CN110474772A (zh) * | 2019-07-01 | 2019-11-19 | 中国科学院数学与系统科学研究院 | 一种基于格的加密方法 |
CN111698081A (zh) * | 2020-06-08 | 2020-09-22 | 中国科学院重庆绿色智能技术研究院 | 一种基于格的压缩分块ibe加密装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112511170A (zh) | 2021-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101270815B1 (ko) | 다양한 클래스의 코드들을 인코딩 및 디코딩하는 애플리케이션을 갖는 인-플레이스 변환 | |
US7219293B2 (en) | High performance CRC calculation method and system with a matrix transformation strategy | |
CN113300830B (zh) | 基于加权概率模型的数据传输方法、设备及存储介质 | |
US12010352B2 (en) | Coding method and related device | |
US11323205B2 (en) | Polar code encoding method and apparatus | |
CN107124251B (zh) | 一种基于任意内核的极化码编码方法 | |
Zhang et al. | A simplified belief propagation decoder for polar codes | |
CN106877885B (zh) | 一种利用巴哈塔切亚参数构造极化码的方法及系统 | |
CN112511170B (zh) | 一种格密码中多项式压缩的并行实现方法 | |
CN105322973A (zh) | 一种rs码编码器及编码方法 | |
CN104617959A (zh) | 一种基于通用处理器的ldpc编译码方法 | |
CN113486369A (zh) | 具有对称加密和无损压缩的编码方法、装置、设备及介质 | |
Jamali et al. | Coded distributed computing: Performance limits and code designs | |
CN108449171A (zh) | 一种轻量级杂凑密码摘要生成方法 | |
Hong et al. | Simple algorithms for BCH decoding | |
Long | Binary quadratic forms | |
Chen et al. | Performance of Reed–Solomon codes using the Guruswami–Sudan algorithm with improved interpolation efficiency | |
US20050066257A1 (en) | Parallelized CRC calculation method and system | |
US10171109B2 (en) | Fast encoding method and device for Reed-Solomon codes with a small number of redundancies | |
CN113741972A (zh) | 一种sm3算法的并行处理方法及电子设备 | |
Yakimenka et al. | Failure analysis of the interval-passing algorithm for compressed sensing | |
Cheng et al. | Systematic polar codes based on 3x3 kernel matrix | |
WO2020139234A1 (en) | Performance enhancement of polar codes for short frame lengths considering error propagation effects | |
CN117632085B (zh) | 用于掩码张量转换的方法、计算设备和存储介质 | |
CN116545621B (zh) | 密钥交换过程中椭圆曲线多标量乘快速实现方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |