CN104486074B - 用于嵌入式设备的椭圆曲线加密方法和解密方法 - Google Patents
用于嵌入式设备的椭圆曲线加密方法和解密方法 Download PDFInfo
- Publication number
- CN104486074B CN104486074B CN201410771243.5A CN201410771243A CN104486074B CN 104486074 B CN104486074 B CN 104486074B CN 201410771243 A CN201410771243 A CN 201410771243A CN 104486074 B CN104486074 B CN 104486074B
- Authority
- CN
- China
- Prior art keywords
- chain
- radix
- elliptic curve
- window
- following
- 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
Landscapes
- Mobile Radio Communication Systems (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请涉及一种用于嵌入式设备的椭圆曲线加密方法和解密方法,加密方法包括以下步骤:1)嵌入式设备获取明文m;2)获取椭圆曲线参数EP(a,b)、选取的椭圆曲线上的点G和公开密钥K,通过BCH编码算法将m编码到EP(a,b)上的点M;3)产生随机大整数r;4)设置密文C1、C2,其中C1=M+rK、C2=rG。本申请的实施例提供的技术方案可以包括以下有益效果:可以实现在无线传感器、射频卡系统等设备内存和CPU资源极其受限的低端嵌入式设备上高效稳定地运行,为这些设备提供一个具有较高性能的加密解密方案。
Description
技术领域
本申请涉及嵌入式设备,尤其涉及用于嵌入式设备的椭圆曲线加密方法和解密方法。
背景技术
椭圆曲线加密方法作为目前公认的最安全的加密方法之一,由于其低内存占用、高效率、高安全的特性,使其成为解决嵌入式设备数据加密问题的理想方法。目前已经出现了一些应用在高端嵌入式设备上解决其信息安全问题的椭圆曲线加密方法方案,但是在无线传感器、射频卡系统等内存和CPU等计算资源极其受限的低端嵌入式设备上还是没有一种合适的方法来解决其设备安全问题。这些低端嵌入式设备系统经常只能使用简单的置乱、异或操作对数据进行加密,这都不足以保证这些低端嵌入式设备的安全。而限制椭圆曲线加密方法在这些低端嵌入式设备上的应用,主要是因为这些设备没法满足椭圆曲线加密方法运行所需的内存和CPU资源,而这些低端嵌入式设备其低功耗的需求又限制了其在硬件上的提升,所以只能通过改进目前椭圆曲线加密方法的性能,降低方法对内存和CPU资源的占用,才能有效地解决这些低端嵌入式设备的安全问题。
发明内容
为克服相关技术中存在的问题,本申请提供用于嵌入式设备的椭圆曲线加密方法和解密方法。
根据本申请实施例的第一方面,提供一种用于嵌入式设备的椭圆曲线加密方法,包括以下步骤:1)嵌入式设备获取明文m;2)获取椭圆曲线参数EP(a,b)、选取的椭圆曲线上的点G和公开密钥K,通过BCH编码算法将m编码到EP(a,b)上的点M;3)产生随机大整数r;4)设置密文C1、C2,其中C1=M+rK、C2=rG。
根据本申请实施例的第二方面,提供一种用于嵌入式设备的椭圆曲线解密方法,包括以下步骤:1)嵌入式设备获取密文C1、C2;2)设置M=C1-kC2,其中M为经过编码的明文,k为私钥;3)通过BCH解码算法对M进行解码得到明文m。
本申请的实施例提供的技术方案可以包括以下有益效果:可以实现在无线传感器、射频卡系统等设备内存和CPU资源极其受限的低端嵌入式设备上高效稳定地运行,为这些设备提供一个具有较高性能的加密解密方案。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据本发明一个实施例的一种椭圆曲线加密方法的流程图;
图2是根据本发明一个优选实施例的一种椭圆曲线加密方法原理框图;
图3是根据本发明一个实施例的一种椭圆曲线解密方法的流程图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是根据本发明一个实施例的一种椭圆曲线加密方法的流程图,包括以下步骤:
1)嵌入式设备获取明文m;
2)获取椭圆曲线参数EP(a,b)、选取的椭圆曲线上的点G和公开密钥K,通过BCH编码算法将m编码到EP(a,b)上的点M;
3)产生随机大整数r;
4)设置密文C1、C2,其中C1=M+rK、C2=rG。
该椭圆曲线加密方法,有效地降低了加密方法对设备内存和CPU资源的占用率,提高了加密效率,为无线传感器、射频卡系统等设备内存和CPU资源极其受限的低端嵌入式设备提供了一个稳定可靠的数据加密解决方案。
优选地,步骤4)包括以下步骤:
A)对r进行NAF编码,包括:
设置
其中:rj表示经过NAF编码后的r,j表示编码后的r的比特长度,si为前导系数,i∈[0,j];
B)设置预计算窗口大小
其中
C)将rj划分为窗口R1的组合,包括:
设置R1=(rj/2ω×1)%2ω (4);
其中,R1表示rj的第1个窗口,1∈[0,j/ω];
D)以{2,3,5,7}为基底计算大整数r的窗口R1的最优多基数链Q1;
E)通过Q1计算rK和rG,包括:
设置
设置
其中d=j/ω。
优选地,步骤D)包括以下步骤:
D-A)预计算转换后的基数链的最大链长
D-B)计算窗口R1的最优多基数链Q1。
优选地,步骤D-B)包括以下步骤:
搜索满足的所有基数链得到基数链集合{L1,L2...Lm-1,Lm},其中,m>0,m为搜索得到的基数链个数,
n为基数链Lt的链长,n∈[1,s],t∈[1,m],bi、ci、di、ei为非负整数;
设置Lt的最优指标
其中Nb、Nc、Nd、Ne分别为bi、ci、di、ei中0的个数;
设置Q1=Li,其中Li满足g(Li)=MAX{g(L1),g(L2)...g(Lm-1),g(Lm)},i∈[1,m]。
图2是根据本发明一个优选实施例的一种椭圆曲线加密方法原理框图。无线传感器、射频卡系统等设备在进行数据加密的时候,通过普通信道(密钥分发节点或者射频卡终端)获取相关的椭圆曲线参数和椭圆曲线上一点G以及公钥K,并通过编码方法将待加密的数据信息编码到该椭圆曲线上,然后系统随机产生一个大整数r,利用大整数r、公钥K和点G计算得到密文进行传输。在利用公钥K和点G计算密文的过程中,要进行一系列的标量乘法运算来得到密文。
如图2所示,首先系统通过普通信道获取椭圆曲线参数、点G和公钥K;然后取出128位待加密的明文数据m并将其通过BCH编码编码到椭圆曲线上的一点M上,同时系统生成随机的128位大整数r,通过计算r与G和K的标量乘rG和rK,最后通过rG和rK计算得到密文C1和C2。在计算r与G和K的标量乘rG和rK的时候,首先将r进行NAF编码得到rj,预计算窗口大小ω,接着将rj表示成窗口的组合,然后以{2,3,5,7}为基底计算的最优多基数链,最后根据最优多基数链计算得到rK和rG。
图3是根据本发明一个实施例的一种椭圆曲线解密方法的流程图,包括以下步骤:
1)嵌入式设备获取密文C1、C2;
2)设置M=C1-kC2,其中M为经过编码的明文,k为私钥;
3)通过BCH解码算法对M进行解码得到明文m。
该椭圆曲线解密方法,有效地降低了解密方法对设备内存和CPU资源的占用率,提高了解密效率,为无线传感器、射频卡系统等设备内存和CPU资源极其受限的低端嵌入式设备提供了一个稳定可靠的数据解密解决方案。
优选地,设置kC2包括以下步骤:
A)对k进行NAF编码得到kj;
B)设置预计算窗口大小
其中
C)将kj划分为窗口k1的组合;
D)以{2,3,5,7}为基底计算大整数r的窗口k1的最优多基数链Q1;
E)通过Q1计算kC2;
F)设置M=C1-kC2 (12)。
优选地,步骤A)包括:设置
其中,kj表示经过NAF编码后的k,j表示编码后的k的比特长度,si为前导系数,i∈[0,j];
步骤C)包括:设置K1=(kj/2ω×1)%2ω (14),
其中,K1表示kj的第1个窗口,1∈[0,j/ω];
步骤E)包括:设置
其中d=j/ω。
优选地,步骤D)包括以下步骤:
D-A)预计算转换后的基数链的最大链长
D-B)计算窗口K1的最优多基数链Q1。
优选地,步骤D-B)包括以下步骤:
搜索满足的所有基数链得到基数链集合{L1,L2...Lm-1,Lm},其中,m>0,m为搜索得到的基数链个数,
n为基数链Lt的链长,n∈[1,s],t∈[1,m],bi、ci、di、ei为非负整数;
设置Lt的最优指标
其中Nb、Nc、Nd、Ne分别为bi、ci、di、ei中0的个数;
设置Q1=Li,其中Li满足g(Li)=MAX{g(L1),g(L2)...g(Lm-1),g(Lm)},i∈[1,m]。
与现有技术相比,本发明的优点在于:
1.提出了椭圆曲线加密标量乘窗口大小计算方法,通过该方法计算得到合理的窗口大小,与传统方法相比,能够有效降低标量乘计算复杂性,提高加密计算速度;
2.改进了椭圆曲线加密标量乘窗口划分方法,能够有效降低后续重复计算次数和倍点计算次数,降低了方法对设备内存和CPU资源的占用率;
3.提出了一种基数链长预计算方法,将该方法融合进椭圆曲线标量乘法中,在基数转换前,对基数链的链长进行预计算,计算机通过预计算的链长长度能够更加合理的分配内存资源,能够有效的降低设备对内存资源的使用率;
4.提出了一种在椭圆曲线加密标量乘计算过程中计算最优多基数链的方法,通过该方法能够选择出用于标量乘计算的最优多基数链,能够有效的改进传统的椭圆曲线加密过程标量乘性能,提高加密计算效率。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (7)
1.一种用于嵌入式设备的椭圆曲线加密方法,其特征在于,包括以下步骤:
1)所述嵌入式设备获取明文m;
2)获取椭圆曲线参数EP(a,b)、选取的椭圆曲线上的点G和公开密钥K,通过BCH编码算法将m编码到EP(a,b)上的点M;
3)产生随机大整数r;
4)设置密文C1、D2,其中C1=M+rK、C2=rG;
其中,所述步骤4)包括以下步骤:
A)对r进行NAF编码,包括:
设置
其中:rj表示经过NAF编码后的r,j表示编码后的r的比特长度,si为前导系数,i∈[0,j];
B)设置预计算窗口大小其中
C)将rj划分为窗口R1的组合,包括:
设置R1=(rj/2ω×1)%2ω;
其中,R1表示rj的第1个窗口,1∈[0,j/ω];
D)以{2,3,5,7}为基底计算大整数r的窗口R1的最优多基数链Q1;
E)通过Q1计算rK和rG,包括:
设置设置其中d=j/ω。
2.如权利要求1所述的椭圆曲线加密方法,其特征在于,所述步骤D)包括以下步骤:
D-A)预计算转换后的基数链的最大链长
D-B)计算窗口R1的最优多基数链Q1。
3.如权利要求2所述的椭圆曲线加密方法,其特征在于,所述步骤D-B)包括以下步骤:
搜索满足的所有基数链得到基数链集合
{L1,L2...Lm-1,Lm},
其中,m>0,m为搜索得到的基数链个数,
n为基数链Lt的链长,
n∈[1,s],t∈[1,m],bi、ci、di、ei为非负整数;
设置Lt的最优指标其中Nb、Nc、Nd、Ne分别为bi、ci、di、ei中0的个数;
设置Q1=Li,其中Li满足g(Li)=MAX{g(L1),g(L2)...g(Lm-1),g(Lm)},i∈[1,m]。
4.一种用于嵌入式设备的椭圆曲线解密方法,其特征在于,包括以下步骤:
1)所述嵌入式设备获取密文C1、C2;
2)设置M=C1-kC2,其中M为经过编码的明文,k为私钥;
3)通过BCH解码算法对M进行解码得到明文m;
其中,设置kC2包括以下步骤:
A)对k进行NAF编码得到kj;
B)设置预计算窗口大小其中
C)将kj划分为窗口K1的组合;
D)以{2,3,5,7}为基底计算大整数r的窗口K1的最优多基数链Q1;
E)通过Q1计算kC2。
5.如权利要求4所述的椭圆曲线解密方法,其特征在于,
所述步骤A)包括:设置其中,kj表示经过NAF编码后的k,j表示编码后的k的比特长度,si为前导系数,i∈[0,j];
所述步骤C)包括:设置K1=(kj/2ω×1)%2ω,其中,K1表示kj的第1个窗口,1∈[0,j/ω];
所述步骤E)包括:设置其中d=j/ω。
6.如权利要求4所述的椭圆曲线解密方法,其特征在于,所述步骤D)包括以下步骤:
D-A)预计算转换后的基数链的最大链长
D-B)计算窗口K1的最优多基数链Q1。
7.如权利要求6所述的椭圆曲线解密方法,其特征在于,所述步骤D-B)包括以下步骤:
搜索满足的所有基数链得到基数链集合
{L1,L2...Lm-1,Lm},
其中,m>0,m为搜索得到的基数链个数,
n为基数链Lt的链长,
n∈[1,s],t∈[1,m],bi、ci、di、ei为非负整数;
设置Lt的最优指标其中Nb、Nc、Nd、Ne分别为bi、ci、di、ei中0的个数;
设置Q1=Li,其中Li满足g(Li)=MAX{g(L1),g(L2)...g(Lm-1),g(Lm)},i∈[1,m]。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410771243.5A CN104486074B (zh) | 2014-12-12 | 2014-12-12 | 用于嵌入式设备的椭圆曲线加密方法和解密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410771243.5A CN104486074B (zh) | 2014-12-12 | 2014-12-12 | 用于嵌入式设备的椭圆曲线加密方法和解密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104486074A CN104486074A (zh) | 2015-04-01 |
CN104486074B true CN104486074B (zh) | 2017-06-23 |
Family
ID=52760582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410771243.5A Active CN104486074B (zh) | 2014-12-12 | 2014-12-12 | 用于嵌入式设备的椭圆曲线加密方法和解密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104486074B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110708160B (zh) * | 2019-10-10 | 2020-11-13 | 山东省计算中心(国家超级计算济南中心) | 基于sm2算法标量乘法编码的抗侧信道攻击方法及系统 |
CN113777983A (zh) * | 2021-08-30 | 2021-12-10 | 武汉海昌信息技术有限公司 | 一种物联网设备与数据中心高速数据同步的方法与装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1505306A (zh) * | 2002-11-29 | 2004-06-16 | 海南信安数据系统有限公司 | 椭圆曲线加密解密方法和装置 |
CN101005350A (zh) * | 2006-01-16 | 2007-07-25 | 索尼株式会社 | 加密处理设备、加密处理方法和计算机程序 |
CN101567783A (zh) * | 2008-04-24 | 2009-10-28 | 深圳市同洲电子股份有限公司 | 一种基于ⅱ型高斯基域的椭圆曲线加解密方法和装置 |
CN101772807A (zh) * | 2007-08-08 | 2010-07-07 | 英特尔公司 | 在多通道大容量存储装置中的ecc功能块布局 |
-
2014
- 2014-12-12 CN CN201410771243.5A patent/CN104486074B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1505306A (zh) * | 2002-11-29 | 2004-06-16 | 海南信安数据系统有限公司 | 椭圆曲线加密解密方法和装置 |
CN101005350A (zh) * | 2006-01-16 | 2007-07-25 | 索尼株式会社 | 加密处理设备、加密处理方法和计算机程序 |
CN101772807A (zh) * | 2007-08-08 | 2010-07-07 | 英特尔公司 | 在多通道大容量存储装置中的ecc功能块布局 |
CN101567783A (zh) * | 2008-04-24 | 2009-10-28 | 深圳市同洲电子股份有限公司 | 一种基于ⅱ型高斯基域的椭圆曲线加解密方法和装置 |
Non-Patent Citations (1)
Title |
---|
嵌入式 ECC 算法性能改进及系统容错技术的研究与实现;杨峰;《中国优秀硕士学位论文全文数据库》;20101015(第10期);参见正文第3章,第4章,第6章 * |
Also Published As
Publication number | Publication date |
---|---|
CN104486074A (zh) | 2015-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102546181B (zh) | 基于密钥池的云存储加解密方法 | |
JP6244728B2 (ja) | 情報処理方法及びプログラム | |
WO2021017420A1 (zh) | 数据处理方法、装置和电子设备 | |
CN107276744B (zh) | 一种文件存储加密方法及系统 | |
CN104219046B (zh) | 一种基于轻量级不对称加密算法的有源rfid加密方法 | |
CN106850221A (zh) | 信息加密、解密方法及装置 | |
EP2582085A1 (en) | Generating implicit certificates | |
JP6974461B2 (ja) | 幾何代数を用いた高度データ中心型暗号化システムのための方法およびシステム | |
CN103903047B (zh) | 一种适用于rfid安全通信的椭圆曲线加密协处理器 | |
CN101478392B (zh) | 利用vlsi实现128位密钥长度aes算法的装置 | |
US10721056B2 (en) | Key processing method and device | |
US20130091362A1 (en) | Generating implicit certificates | |
JP2015184594A (ja) | 暗号文処理装置、暗号文処理方法、暗号文処理プログラムおよび情報処理装置 | |
Tsai et al. | A secure ECC-based electronic medical record system. | |
CN105099653A (zh) | 分布式数据处理方法、装置及系统 | |
CN110247752A (zh) | 基于椭圆曲线加密的LoRa混沌通信系统及其实现方法 | |
CN104486074B (zh) | 用于嵌入式设备的椭圆曲线加密方法和解密方法 | |
CN105306212B (zh) | 一种身份隐藏且强安全的签密方法 | |
CN108259505B (zh) | 一种用于终端小型设备的ecc轻量级加密方法 | |
JunLi et al. | Email encryption system based on hybrid AES and ECC | |
CN108520189A (zh) | 基于资源受限标签的椭圆曲线射频识别认证方法 | |
CN107317669B (zh) | 基于二元截断多项式环的无噪音全同态公钥加密方法 | |
CN109344627A (zh) | 一种新型香农完美保密方法 | |
US20100150343A1 (en) | System and method for encrypting data based on cyclic groups | |
KR20220079522A (ko) | 기하 대수 및 헨젤 코드들을 이용한 암호화를 위한 방법들 및 시스템들과 동형 암호화 시스템들 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |