CN103092688B - 一种在嵌入式系统中生成坐标点的方法 - Google Patents

一种在嵌入式系统中生成坐标点的方法 Download PDF

Info

Publication number
CN103092688B
CN103092688B CN201210587204.0A CN201210587204A CN103092688B CN 103092688 B CN103092688 B CN 103092688B CN 201210587204 A CN201210587204 A CN 201210587204A CN 103092688 B CN103092688 B CN 103092688B
Authority
CN
China
Prior art keywords
point value
initial point
data
chosen
numbering
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
Application number
CN201210587204.0A
Other languages
English (en)
Other versions
CN103092688A (zh
Inventor
陆舟
于华章
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Hongsi Electronic Technology Co ltd
Original Assignee
Feitian Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Feitian Technologies Co Ltd filed Critical Feitian Technologies Co Ltd
Priority to CN201210587204.0A priority Critical patent/CN103092688B/zh
Publication of CN103092688A publication Critical patent/CN103092688A/zh
Priority to US14/423,465 priority patent/US9613229B2/en
Priority to PCT/CN2013/087924 priority patent/WO2014101613A1/zh
Application granted granted Critical
Publication of CN103092688B publication Critical patent/CN103092688B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves

Abstract

本发明公开一种在嵌入式系统中生成坐标点的方法,包括以下步骤:获取随机数和第一固定值,并以第一固定值为模数,对随机数进行取模,得到第一数据;从所述第一数据中选取各个数据位,当选取的数据位中的数据不为零时,根据选取的数据位在所述第一数据中的位置,从预先存储的初始点值列表中获取与所述选取的数据位对应的初始点值,将获取的初始点值与中间点值进行点加运算,将得到的运算结果作为结果数据输出。本发明通过查询预先设置的初始点值列表,获取初始点值列表中的初始点值,并根据该初始点值进行计算,极大地提高了生成坐标点的运算速度。<!--1-->

Description

一种在嵌入式系统中生成坐标点的方法
技术领域
本发明涉及密码学领域,尤其涉及一种在嵌入式系统中生成坐标点的方法。
背景技术
随着科学技术的发展,数据安全性的要求也越来越高,现有保护数据安全性具有加密和签名等实现方式,但是加密过程和签名过程都需要有密钥的参与,现有生成密钥的过程中数据量大,运算速度慢,使得加密和签名过程的实现效率都很低。
发明内容
本发明提供了一种在嵌入式系统中生成坐标点的方法,以解决现有技术中生成坐标点的运算速度慢的缺陷。
本发明提供了一种在嵌入式系统中生成坐标点的方法,包括以下步骤:
S1、获取随机数和第一固定值,并以第一固定值为模数,对随机数进行取模,得到第一数据;
S2、从所述第一数据中选取一个未被处理过的数据位;
S3、根据选取的数据位在所述第一数据中的位置,从预先存储的初始点值列表中获取与所述选取的数据位对应的初始点值,所述初始点值列表中的各个初始点值分别为不同的幂值与预设的第一点值进行点乘得到的运算结果;
S4、以所述第二固定值为模数,将获取的初始点值与所述选取的数据位中的数据进行点乘,对得到的点乘结果与中间点值进行点加运算,得到点加结果,并将所述中间点值更新为所述点加结果,所述中间点值的初始值为(0,0);
S5、判断所述第一数据中是否存在未被处理过的数据位,如果存在,在返回步骤S2;否则,执行步骤S6;
S6、将所述中间点值作为结果数据输出。
本发明还提供了一种在嵌入式系统中生成坐标点的方法,包括以下步骤:
S1、获取随机数和第一固定值,并以第一固定值为模数,对随机数进行取模,得到第一数据;
S2、从所述第一数据中选取一个未被处理过的数据位;
S3、判断选取的数据位中的数据是否为零,如果是,则执行步骤S6;否则,执行步骤S4;
S4、根据所述选取的数据位在所述第一数据中的位置,从预先存储的初始点值列表中获取与所述选取的数据位对应的初始点值,所述初始点值列表中的各个初始点值分别为不同的幂值与预设的第一点值进行点乘得到的运算结果;
S5、将获取的初始点值与中间点值进行点加运算,得到点加结果,并将所述中间点值更新为所述点加结果,所述中间点值的初始值为(0,0);
S6、判断所述第一数据中是否存在未被处理过的数据位,如果存在,在返回步骤S2;否则,执行步骤S7;
S7、将所述中间点值作为结果数据输出。
本发明还提供了一种在嵌入式系统中生成坐标点的方法,包括以下步骤:
S1、获取随机数和第一固定值,并以所述第一固定值为模数,对所述随机数进行取模,得到第一数据;
S2、根据预设分组长度对所述第一数据的位长取余,得到第二数据;
S3、判断所述第二数据是否为零,如果是,则执行步骤S5;否则,执行步骤S4;
S4、在所述第一数据的高位补零,返回步骤S2;
S5、根据所述预设分组长度对所述第一数据进行划分,得到多个分组;
S6、从所述第一数据中选取一个未被处理过的分组;
S7、根据选取的分组在所述第一数据中的位置,从预先存储的初始点值列表中获取与所述选取的分组对应的初始点值,所述初始点值列表中的各个初始点值分别为不同的幂值与预设的第一点值进行点乘得到的运算结果;
S8、以所述第二固定值为模数,将获取的初始点值与所述选取的分组中的数据进行点乘,对得到的点乘结果与中间点值进行点加运算,得到点加结果,并将所述中间点值更新为所述点加结果,所述中间点值的初始值为(0,0);
S9、判断所述第一数据中是否存在未被处理过的分组,如果存在,在返回步骤S6;否则,执行步骤S10;
S10、将所述中间点值作为结果数据输出。
本发明还提供了一种在嵌入式系统中生成坐标点的方法,包括以下步骤:
S1、获取随机数和第一固定值,并以所述第一固定值为模数,对所述随机数进行取模,得到第一数据;
S2、根据预设分组长度对所述第一数据的位长取余,得到第二数据;
S3、判断所述第二数据是否为零,如果是,则执行步骤S5;否则,执行步骤S4;
S4、在所述第一数据的高位补零,返回步骤S2;
S5、根据所述预设分组长度对所述第一数据进行划分,得到多个分组;
S6、从所述第一数据中选取一个未被处理过的分组;
S7、判断选取的分组中的数据是否为零,如果是,则执行步骤S10;否则,执行步骤S8;
S8、根据选取的分组在所述第一数据中的位置和所述选取的分组中的数据,从预先存储的初始点值列表中获取与所述选取的分组对应的初始点值,所述初始点值列表中的各个初始点值分别为不同的幂值与预设的第一点值进行点乘得到的运算结果;
S9、以所述第二固定值为模数,将获取的初始点值与中间点值进行点加运算,得到运算结果,并将所述中间点值更新为所述运算结果,所述中间点值的初始值为(0,0);
S10、判断所述第一数据中是否存在未被处理过的分组,如果存在,在返回步骤S6;否则,执行步骤S11;
S11、将所述中间点值作为结果数据输出。
本发明达到的有益效果:通过查询预先设置的初始点值列表,获取初始点值列表中的初始点值,并根据该初始点值进行计算,极大地提高了生成坐标点的运算速度。
附图说明
图1为本发明实施例一中的一种在嵌入式系统中生成坐标点的方法流程图;
图2为本发明实施例一中将初始点值与中间点值进行点加运算的方法流程图;
图3为本发明实施例二中的一种在嵌入式系统中生成坐标点的方法流程图;
图4为本发明实施例三中的一种在嵌入式系统中生成坐标点的方法流程图;
图5为本发明实施例四中的一种在嵌入式系统中生成坐标点的方法流程图;
图6为本发明实施例五中的一种在嵌入式系统中生成坐标点的方法流程图;
图7为本发明实施例六中的一种在嵌入式系统中生成坐标点的方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例一提供了一种在嵌入式系统中生成坐标点的方法,通过查询预先存储的初始点值列表,获取初始点值列表中匹配的初始点值,并根据该初始点值进行计算,其流程如图1所示,包括以下步骤:
步骤101:以第一固定值为模数,对随机数进行取模,得到第一数据;
优选地,步骤101之前还包括:生成随机数k,获取第一固定值n;
步骤102:判断第一数据是否为0,如果是,则输出错误信息;否则,执行步骤103;
在本发明的其他实施例中,如果第一数据为0,还可生成随机数,并返回步骤101;
步骤103:将第一数据转换为二进制数;
在本实施例中,如第一数据为372,则转换为相应的9位二进制数101110100,即第一数据的数据位长度为9;
需要说明的是,本步骤为优选步骤,当第一数据为二进制数时,不需要将第一数据转换为二进制数,同样可以实现本发明的发明目的。
步骤104:对转换得到的二进制数的数据位进行编号,将该二进制数的最低位作为当前数据位,获取当前数据位中的数据;
本实施例中,按照从低位到高位的顺序,从0开始,对根据第一数据转换得到的二进制数的数据位进行编号;
例如,第一数据转化为9位二进制数101110100,数据位长度为9,从0开始编号,最大编号为8,最高位的编号为8,最低位的编号为0;当前数据位为最低位,当前数据位中的数据为0;
步骤105:判断当前数据位中的数据是否为0,如果是,则执行步骤106;否则,执行步骤107;
步骤106:从转换得到的二进制数中获取比当前数据位高一位的数据位,将当前数据位更新为该数据位,返回步骤105;
步骤107:根据当前数据位对应的编号,从预先存储的初始点值列表中获取对应的初始点值,将获取的初始点值与中间点值进行点加运算,并将中间点值更新为点加运算的运算结果;
其中,中间点值的初始值为(0,0),初始点值列表中包括多个编号以及该编号对应的初始点值,取值为i的编号对应的初始点值为2i×G(x,y),G(x,y)为预设的第一点值;编号为0时,对应的初始点值为20×G(x,y);编号为1时,对应的初始点值为21×G(x,y);根据第一数据转换得到的二进制数为101110100时,若当前数据位对应的编号为2,则获取的对应的初始点值为:G2=22×G(x,y);中间点值为(0,0),则初始点值与中间点值进行点加运算的运算结果为22×G(x,y),将中间点值更新为22×G(x,y);
生成初始点值列表的操作,可具体包括:根据预设的位长,生成多个取值连续的编号,其中,取值最小的编号为零;以2为底数,各个编号为指数,计算得到各个编号对应的幂值;对编号对应的幂值与第一点值进行点乘,得到与编号对应的初始点值,并根据各个编号以及与各个编号对应的初始点值生成初始点值列表;
例如,预设的位长为9位时,生成的编号分别为:8、7、6、5、4、3、2、1和0,则对应的幂值分别为28、27、26、25、24、23、22、21和20;点乘后得到的初始点值分别为G8=28×G(x,y)、G7=27×G(x,y)、G6=26×G(x,y)、G5=25×G(x,y)、G4=24×G(x,y)、G3=23×G(x,y)、G2=22×G(x,y)G1=21×G(x,y)和G0=20×G(x,y);生成初始点值列表如表1所示:
表1初始点值列表示例一
编号 8 7 6 5 4 3 2 1 0
初始点值 G8 G7 G6 G5 G4 G3 G2 G1 G0
步骤108:判断当前数据位是否为转换得到的二进制数的最高位,如果是,则执行步骤109;否则,返回步骤106;
步骤109:将中间点值作为生成的坐标点输出;
例如,根据第一数据转换得到的二进制数为101110100时,获取的初始点值分别为编号为2、4、5、6和8的数据位对应的初始点值,即,G8=28×G(x,y)、G6=26×G(x,y)、G5=25×G(x,y)、G4=24×G(x,y)、G2=22×G(x,y);根据上述初始点值进行点加运算之后,得到的中间点值Q=1×28×G(x,y)+1×26×G(x,y)+1×25×G(x,y)+1×24×G(x,y)+1×22×G(x,y)。
本发明实施例通过查询预先设置的初始点值列表,获取初始点值列表中的初始点值,并根据该初始点值进行计算,极大地提高了运算速度。
在本实施例一的步骤107中,将初始点值(第一横坐标,第二横坐标)与中间点值(第二横坐标,第二纵坐标)进行点加运算,得到点加运算的运算结果(第三横坐标,第三纵坐标)的过程,如图2所示,包括以下步骤:
步骤201:以第二固定值为模数,对第二纵坐标和第一纵坐标进行模减,得到第一差值;以第二固定值为模数,对第二横坐标和第一横坐标进行模减得到第二差值;
步骤202:以第二固定值为模数,对第一差值和第二差值进行模除,得到第一参数;
步骤203:以第二固定值为模数,对第一参数和第一参数进行模乘,得到第一乘积;
步骤204:以第二固定值为模数,对第一乘积和第一横坐标、第二横坐标进行模减,得到第三横坐标;
步骤205:以第二固定值为模数,对第一横坐标和第三横坐标进行模减,得到第三差值;
步骤206:以第二固定值为模数,对第三差值和第一参数进行模乘,得到第二乘积;
步骤207:以第二固定值为模数,对第二乘积和第一纵坐标进行模减,得到第三纵坐标;
本发明其他实施例中,还可以将转换得到的二进制数的最高位作为当前数据位,获取当前数据位中的数据,判断当前数据位中的数据是否为0,如果是,则从转换得到的二进制数中获取比当前数据位低一位的数据位,将当前数据位更新为该数据位,继续判断当前数据位中的数据是否为0,并进行后续的操作;否则,根据当前数据位对应的编号,从预先存储的初始点值列表中获取对应的初始点值,将获取的初始点值与中间点值进行点加运算,并将中间点值更新为点加运算的运算结果,判断当前数据位是否为转换得到的二进制数的最低位,如果是,则将中间点值作为生成的坐标点输出;否则,从转换得到的二进制数中获取比当前数据位低一位的数据位,将当前数据位更新为该数据位,继续判断当前数据位中的数据是否为0,并进行后续的操作。上述流程同样可以实现本发明的发明目的。
本发明其他实施例中,还可以不判断当前数据位中的数据是否为零,而是直接从初始点值列表中获取当前数据位对应的初始点值,将获取的初始点值与当前数据位中的数据进行点乘,并根据得到的点乘结果进行点加运算,具体流程参见实施例二。
实施例二
本发明实施例二提供了一种在嵌入式系统中生成坐标点的方法,如图2所示,包括以下步骤:
步骤301:根据预设的位长,生成多个取值连续的编号;
其中,取值最小的编号为零;例如,预设的位长为9位时,生成的编号分别为:8、7、6、5、4、3、2、1和0;
步骤302:以2为底数,各个编号为指数,计算得到各个编号对应的幂值;
例如,编号分别为:8、7、6、5、4、3、2、1和0时,对应的幂值分别为28、27、26、25、24、23、22、21和20
步骤303:对编号对应的幂值与第一点值进行点乘,得到与编号对应的初始点值,并根据各个编号以及与各个编号对应的初始点值生成初始点值列表;
其中,初始点值列表中包括多个编号以及该编号对应的初始点值,取值为i的编号对应的初始点值为2i×G(x,y),G(x,y)为预设的第一点值;本实施例中,可以从预设的椭圆曲线上获取一个点,将该点的坐标作为第一点值,即,Gx=32C4AE2C1F1981195F9904466A39C9948FE30BBFF2660BE1715A4589334C74C7,Gy=BC3736A2F4F6779C59BDCEE36B692153D0A9877CC62A474002DF32E52139F0A0;
例如,编号对应的幂值分别为28、27、26、25、24、23、22、21和20时,得到的初始点值分别为G8=28×G(x,y)、G7=27×G(x,y)、G6=26×G(x,y)、G5=25×G(x,y)、G4=24×G(x,y)、G3=23×G(x,y)、G2=22×G(x,y)、G1=21×G(x,y)和G0=20×G(x,y);生成的初始点值列表可参见表1所示;
步骤304:以第一固定值为模数,对随机数进行取模,得到第一数据;
例如,第一固定值为n,随机数为k,则第一数据为kmodn;本实施例中,随机数k为CBD23F983A50133A2A45AD29A59271FD7CA671C1894CD49D7171416545EF698B,可以根据预定义的椭圆曲线确定第一固定值n为FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF7203DF6B21C6052B53BBF40939D54123;
步骤305:判断第一数据是否为0,如果是,则输出错误信息;否则,执行步骤306;
步骤306:将第一数据转换为二进制数;
需要说明的是,本步骤为优选步骤,当第一数据为二进制数时,不需要将第一数据转换为二进制数,同样可以实现本发明的发明目的。
步骤307:对转换得到的二进制数的数据位进行编号,将该二进制数的最低位作为当前数据位,获取当前数据位中的数据;
本实施例中,按照从低位到高位的顺序,从0开始,对根据第一数据转换得到的二进制数的数据位进行编号;
步骤308:根据当前数据位对应的编号,从初始点值列表中获取对应的初始点值;
例如,若当前数据位对应的编号为2,则获取的对应的初始点值为:G2=22×G(x,y);
步骤309:将获取的初始点值与当前数据位中的数据进行点乘,对得到的点乘结果与中间点值进行点加运算,并将中间点值更新为点加运算的运算结果;
其中,中间点值的初始值为(0,0),若当前数据位对应的编号为2,则获取的对应的初始点值为:G2=22×G(x,y);该初始点值与当前数据位中的数据进行点乘,得到的点乘结果为1×22×G(x,y);将点乘结果与中间点值(0,0)进行点加运算,可得到更新后的中间点值22×G(x,y);
对得到的点乘结果与中间点值进行点加运算的具体过程,可参见图2中的步骤201至步骤207。
步骤310:判断当前数据位是否为转换得到的二进制数的最高位,如果是,则执行步骤312;否则,执行步骤311;
步骤311:获取比当前数据位高一位的数据位,将当前数据位更新为该数据位,返回步骤308;
步骤312:将中间点值作为生成的坐标点输出;
例如,若根据第一数据转换得到的二进制数为101110100,则得到的中间点值Q=1×28×G(x,y)+0×27×G(x,y)+1×26×G(x,y)+1×25×G(x,y)+1×24×G(x,y)+0×23×G(x,y)+1×22×G(x,y)+0×21×G(x,y)+0×20×G(x,y);若第一固定值n为FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF7203DF6B21C6052B53BBF40939D54123,随机数k为CBD23F983A50133A2A45AD29A59271FD7CA671C1894CD49D7171416545EF698B,Gx=32C4AE2C1F1981195F9904466A39C9948FE30BBFF2660BE1715A4589334C74C7,Gy=BC3736A2F4F6779C59BDCEE36B692153D0A9877CC62A474002DF32E52139F0A0,则得到的中间点值Q为(C40F1EB984DC0089960C43A60CF7A704BFD2B0A12C95568671B353BF70080F0B,6BD79C0F790E585E9B89E71EBDB51BD5FA99C8E4F2E5AC853420507D311405FA)。
本发明实施例根据预设的位长生成初始点值列表,并在生成坐标点的过程中,查询该初始点值列表,获取初始点值列表中的初始点值,并根据该初始点值进行计算,极大地提高了运算速度。
在本发明其他实施例中,还可以对根据第一数据转换得到的二进制数据进行划分,并对得到的分组进行编号,根据分组的编号和取值查询预先设置的初始点值列表,获取初始点值列表中匹配的初始点值,并根据该初始点值进行计算,具体流程参见实施例三。
实施例三
本发明实施例三提供了一种在嵌入式系统中生成坐标点的方法,如图4所示,包括以下步骤:
步骤401:以第一固定值为模数,对随机数进行取模,得到第一数据;
步骤402:判断第一数据是否为0,如果是,则输出错误信息;否则,执行步骤403;
步骤403:将第一数据转换为二进制数;
需要说明的是,本步骤为优选步骤,当第一数据为二进制数时,不需要将第一数据转换为二进制数,同样可以实现本发明的发明目的。
步骤404:根据预设分组长度对转换得到的二进制数的位长取余,得到第二数据;
步骤405:判断第二数据是否为0,如果是,则执行步骤407;否则,执行步骤406;
在本实施例中,如第一数据为372,则转换为相应的9位二进制数101110100,如预设分组长度为2,则第二数据为1;
步骤406:在转换得到的二进制数的高位补0,返回步骤404;
在本实施例中,如预设分组长度为2,第一数据为372,则转化为相应的9二进制数101110100,则用2对9取模得到的第二数据为1;则在101110100前补0,得到10位的二进制数0101110100,用2对10取模得到的第二数据为0;
步骤407:根据预设分组长度对转换得到的二进制数据进行划分,并对得到的分组进行编号,将二进制数据中最低位的分组作为当前分组;
本实施例中,按照从低位到高位的顺序,从0开始,对根据预设分组长度对二进制数据划分得到的分组进行编号;其中,分组的位长为预设分组长度。例如,预设分组长度为2,二进制数为0101110100,划分得到的分组,从高到低依次为:“01”、“01”、“11”、“01”和“00”,对应的编号分别为4、3、2、1和0;将编号为0的分组“00”作为当前分组;
步骤408:判断当前分组的值是否为零,如果是,执行步骤409;否则,执行步骤410;
步骤409,从转换得到的二进制数中获取与当前分组相邻且比当前分组高的分组,将当前分组更新为该分组,返回步骤408;
步骤410,根据当前分组的编号和取值,从预先存储的初始点值列表中获取对应的初始点值,将获取的初始点值与中间点值进行点加运算,并将中间点值更新为点加运算的运算结果;
具体地,可以根据当前分组的编号查询初始点值列表,获取初始点值列表中该编号对应的索引,进而获取与当前分组的取值相等的索引对应的初始点值,对获取的初始点值与中间点值进行点加运算,并将中间点值更新为点加运算的运算结果;对获取的初始点值与中间点值进行点加运算的具体过程,可参见图2中的步骤201至步骤207。
其中,中间点值的初始值为(0,0),初始点值列表中包括多个编号、各个编号对应的多个索引,以及各个索引对应的初始点值;每个编号对应的索引的数量取决于预设分组长度,当预设分组长度为n时,每个编号对应的索引的数量为2n-1,分别为从1到2n-1的整数;编号i对应的2n-1个索引对应的初始点值分别为各个索引与2i*n×G(x,y)的点乘结果,即,1×2i*n×G(x,y)…(2n-1)×2i*n×G(x,y),G(x,y)为预设的第一点值;
例如,预设分组长度为2,编号0对应的索引包括1、2和3,分别对应的初始点值为1×20×G(x,y)、2×20×G(x,y)和3×20×G(x,y);编号1对应的索引包括1、2和3,分别对应的初始点值为1×21*2×G(x,y)、2×21*2×G(x,y)和3×21*2×G(x,y);根据第一数据转换得到的二进制数为101110100时,若当前分组的编号为1,取值为01,则获取的初始点值为:G1-01=1×21*2×G(x,y);中间点值为(0,0),则初始点值与中间点值进行点加运算的运算结果为22×G(x,y),将中间点值更新为22×G(x,y);
生成初始点值列表的操作,可具体包括:根据预设的位长和预设分组长度,生成多个取值连续的编号;根据预设分组长度,为每个编号生成多个取值连续的索引,其中,编号的数量为预设的位长与预设分组长度之比,取值最小的编号为零,取值最小的索引为1;以2为底数,各个编号为指数,计算得到各个编号对应的幂值;对编号对应的幂值、索引和第一点值进行点乘,得到与该编号和该索引对应的初始点值,并根据各个编号、编号对应的各个索引,以及与编号和索引对应的初始点值,生成初始点值列表;
例如,预设的位长为10位,预设分组长度为2时,生成的编号分别为:4、3、2、1和0,则对应的幂值分别为28、26、24、22和20;点乘之后,可得到编号0对应的索引1、2和3分别对应的初始点值,为G0-01=1×20×G(x,y)、G0-10=2×20×G(x,y)和G0-11=3×20×G(x,y);编号1对应的索引1、2和3分别对应的初始点值,为G1-01=1×22×G(x,y)、G1-10=2×22×G(x,y)和G1-11=3×22×G(x,y);编号2对应的索引1、2和3分别对应的初始点值,为G2-01=1×24×G(x,y)、G2-10=2×24×G(x,y)和G2-11=3×24×G(x,y);编号3对应的索引1、2和3分别对应的初始点值,为G3-01=1×26×G(x,y)、G3-10=2×26×G(x,y)和G3-11=3×26×G(x,y);编号4对应的索引1、2和3分别对应的初始点值,为G4-01=1×28×G(x,y)、G4-10=2×28×G(x,y)和G4-11=3×28×G(x,y);生成初始点值列表如表2所示:
表2初始点值列表示例二
步骤411:判断当前分组是否为转换得到的二进制数中最高位的分组,如果是,则执行步骤412;否则,返回步骤409;
步骤412:将中间点值作为生成的坐标点输出;
例如,根据第一数据转换得到的二进制数为101110100时,划分得到的分组为“01”、“01”、“11”、“01”和“00”,对应的编号分别为4、3、2、1和0;从初始点值列表中获取编号为4、3、2和1的分组对应初始点值,分别为G4-01=1×28×G(x,y)、G3-01=1×26×G(x,y)、G2-11=3×24×G(x,y)和G1-01=1×22×G(x,y);根据上述初始点值进行点加运算之后,得到的中间点值Q=1×28×G(x,y)+1×26×G(x,y)+3×24×G(x,y)+1×22×G(x,y)。
本发明实施例通过查询预先设置的初始点值列表,获取初始点值列表中的初始点值,并根据该初始点值进行计算,极大地提高了运算速度。
本发明其他实施例中,还可以将转换得到的二进制数中最高位的分组作为当前分组,判断当前分组的值是否为零,如果是,则从二进制数中获取比当前分组相邻且比当前分组低的分组,将当前分组更新为该分组,继续判断当前分组的值是否为零,并进行后续的操作;否则,根据当前分组的编号和取值,从初始点值列表中获取对应的初始点值,将获取的初始点值与中间点值进行点加运算,并将中间点值更新为点加运算的运算结果,判断当前分组是否为二进制数中最低位的分组,如果是,则将中间点值作为生成的坐标点输出;否则,从二进制数中获取比当前分组相邻且比当前分组低的分组,将当前分组更新为该分组,继续判断当前分组的值是否为零,并进行后续的操作。
本发明其他实施例中,还可以不判断当前分组的值是否为零,而是直接从初始点值列表中获取当前分组对应的初始点值,将获取的初始点值与当前分组的值进行点乘,并根据得到的点乘结果进行点加运算,具体流程参见实施例四。
实施例四
本发明实施例四提供了一种在嵌入式系统中生成坐标点的方法,如图5所示,包括以下步骤:
步骤501:根据预设的位长和预设分组长度,生成多个取值连续的编号;
其中,编号的数量为预设的位长与预设分组长度之比,取值最小的编号为零;例如,预设的位长为10位,预设分组长度为2时,生成的编号的数量为5,分别为:4、3、2、1和0;
步骤502:以2为底数,各个编号与预设分组长度的乘积为指数,计算得到各个编号对应的幂值;
例如,编号分别为:4、3、2、1和0时,对应的幂值分别为28、26、24、22和20
步骤503:对编号对应的幂值和第一点值进行点乘,得到与编号对应的初始点值,并根据各个编号以及与各个编号对应的初始点值,生成初始点值列表;
其中,初始点值列表中包括多个编号以及该编号对应的初始点值;当预设分组长度为n时,编号i对应的初始点值分别为2i*n×G(x,y),G(x,y)为预设的第一点值;
例如,编号4、3、2、1和0对应的幂值,分别为28、26、24、22和20时,点乘之后,得到各个编号对应的初始点值,分别为G4=28×G(x,y)、G3=26×G(x,y)、G2=24×G(x,y)、G1=22×G(x,y)和G0=20×G(x,y);生成的初始点值列表如表3所示:
表3初始点值列表示例三
编号 4 3 2 1 0
初始点值 G4 G3 G2 G1 G0
步骤504:以第一固定值为模数,对随机数进行取模,得到第一数据;
步骤505:判断第一数据是否为0,如果是,则输出错误信息;否则,执行步骤506;
步骤506:将第一数据转换为二进制数;
在本实施例中,如第一数据为372,则转换为相应的9位二进制数101110100;
需要说明的是,本步骤为优选步骤,当第一数据为二进制数时,不需要将第一数据转换为二进制数,同样可以实现本发明的发明目的。
步骤507:根据预设分组长度对转换得到的二进制数的位长取余,得到第二数据;
步骤508:判断第二数据是否为0,如果是,则执行步骤510;否则,执行步骤509;
在本实施例中,如第一数据为372,则转换为相应的9位二进制数101110100,如预设分组长度为2,则第二数据为1;
步骤509:在转换得到的二进制数的高位补0,返回步骤507;
在本实施例中,如预设分组长度为2,第一数据为372,则转化为相应的9二进制数101110100,则用2对9取模得到的第二数据为1;则在101110100前补0,得到10位的二进制数0101110100,用2对10取模得到的第二数据为0;
步骤510:根据预设分组长度对转换得到的二进制数据进行划分,并对得到的分组进行编号,将二进制数据中最低位的分组作为当前分组;
本实施例中,按照从低位到高位的顺序,从0开始,对根据预设分组长度对二进制数据划分得到的分组进行编号;其中,分组的位长为预设分组长度。例如,预设分组长度为2,二进制数为0101110100,划分得到的分组,从高到低依次为:“01”、“01”、“11”、“01”和“00”,对应的编号分别为4、3、2、1和0;将编号为0的分组“00”作为当前分组;
步骤511,根据当前分组的编号,从预先存储的初始点值列表中获取对应的初始点值;
例如,根据第一数据转换得到的二进制数为101110100时,若当前分组的编号为1,则获取的初始点值为:G1=22×G(x,y);
步骤512:将获取的初始点值与当前分组的值进行点乘,对得到的点乘结果与中间点值进行点加运算,并将中间点值更新为点加运算的运算结果;
其中,中间点值的初始值为(0,0);例如,根据第一数据转换得到的二进制数为101110100,若当前分组对应的编号为2,则获取的对应的初始点值为:G1=22×G(x,y);该初始点值与当前分组的值进行点乘,得到的点乘结果为1×22×G(x,y);将点乘结果与中间点值(0,0)进行点加运算,可得到更新后的中间点值22×G(x,y);对得到的点乘结果与中间点值进行点加运算的具体过程,可参见图2中的步骤201至步骤207。
步骤513:判断当前分组是否为转换得到的二进制数中最高位的分组,如果是,则执行步骤515;否则,执行步骤514;
步骤514:从转换得到的二进制数中获取与当前分组相邻且比当前分组高的分组,将当前分组更新为该分组,返回步骤511;
步骤515:将中间点值作为生成的坐标点输出;
例如,根据第一数据转换得到的二进制数为101110100时,得到的中间点值Q=1×28×G(x,y)+1×26×G(x,y)+3×24×G(x,y)+1×22×G(x,y)+0×20×G(x,y)。
本发明实施例根据预设的位长和预设分组长度生成初始点值列表,并在生成坐标点的过程中,查询该初始点值列表,获取初始点值列表中的初始点值,并根据该初始点值进行计算,极大地提高了运算速度。
实施例五
本发明实施例五提供了一种在嵌入式系统中生成坐标点的方法,如图5所示,包括以下步骤:
步骤601,获取随机数和第一固定值,并以第一固定值为模数,对随机数进行取模,得到第一数据。
例如,第一数据为二进制数101110100。
步骤602,从第一数据中选取一个未被处理过的数据位。
步骤603,判断选取的数据位中的数据是否为零,如果是,则执行步骤606;否则,执行步骤604。
步骤604,根据选取的数据位在第一数据中的位置,从预先存储的初始点值列表中获取与所述选取的数据位对应的初始点值。
其中,初始点值列表中的各个初始点值分别为不同的幂值与预设的第一点值G(x,y)进行点乘得到的运算结果,幂值可以为2i,i为包括零在内的连续整数序列中的元素,该序列为有限序列。
具体地,可以根据选取的数据位在第一数据中的位置,从初始点值列表中获取对应大小的初始点值。例如,选取的数据位为第0位,即,最低位时,对应的初始点值为初始点值列表中取值最小的初始点值,即20×G(x,y);选取的数据位为第1位时,对应的初始点值为21×G(x,y)。
当初始点值列表中包含多个编号以及各个编号对应的初始点值时,可以根据选取的数据位在第一数据中的位置,确定初始点值表中与选取的数据位对应的编号,将该编号对应的初始点值作为与选取的数据位对应的初始点值。例如,初始点值列表如表1所示,选取的数据位为第0位,则对应的编号为0,对应的初始点值为G0;选取的数据位为第1位,则对应的编号为G1
步骤605,将获取的初始点值与中间点值进行点加运算,得到运算结果,并将中间点值更新为该运算结果。
其中,中间点值的初始值为(0,0)。
步骤606,判断第一数据中是否存在未被处理过的数据位,如果存在,在返回步骤602;否则,执行步骤607。
步骤607,将中间点值作为结果数据输出。
本实施例中,第一数据为101110100时,获取的初始点值为G8=28×G(x,y)、G6=26×G(x,y)、G5=25×G(x,y)、G4=24×G(x,y)、G2=22×G(x,y),依次点加之后,得到的结果数据为Q=1×28×G(x,y)+1×26×G(x,y)+1×25×G(x,y)+1×24×G(x,y)+1×22×G(x,y)。
本发明实施例通过查询预先设置的初始点值列表,获取初始点值列表中的初始点值,并根据该初始点值进行计算,极大地提高了运算速度。
实施例六
本发明实施例六提供了一种在嵌入式系统中生成坐标点的方法,如图6所示,包括以下步骤:
步骤701,获取随机数和第一固定值,并以第一固定值为模数,对随机数进行取模,得到第一数据。
例如,第一数据为二进制数101110100,位长为9。
步骤702,根据预设分组长度对所述第一数据的位长取余,得到第二数据。
步骤703,判断第二数据是否为零,如果是,则执行步骤705;否则,执行步骤704。
步骤704,在第一数据的高位补零,返回步骤702。
例如,预设分组长度为2时,补零之后的第一数据为0101110100。
步骤705,根据预设分组长度对第一数据进行划分,得到多个分组。
例如,划分得到的分组,从高到低依次为:“01”、“01”、“11”、“01”和“00”。
步骤706,从第一数据中选取一个未被处理过的分组。
步骤707,根据选取的分组在所述第一数据中的位置,从预先存储的初始点值列表中获取与所述选取的分组对应的初始点值。
其中,初始点值列表中的各个初始点值分别为不同的幂值与预设的第一点值G(x,y)进行点乘得到的运算结果,幂值可以为2i*n,i为包括零在内的连续整数序列中的元素,该序列为有限序列,n为预设分组长度。
具体地,可以根据选取的数据位在第一数据中的位置,从初始点值列表中获取对应大小的初始点值。例如,选取的数据位为第0位,即,最低位时,对应的初始点值为初始点值列表中取值最小的初始点值,即20*2×G(x,y);选取的数据位为第1位时,对应的初始点值为21*2×G(x,y)。
步骤708,将获取的初始点值与选取的分组中的数据进行点乘,对得到的点乘结果与中间点值进行点加运算,得到运算结果,并将中间点值更新为该运算结果。
其中,中间点值的初始值为(0,0)。
步骤709,判断第一数据中是否存在未被处理过的分组,如果存在,在返回步骤706;否则,执行步骤710。
步骤710,将中间点值作为结果数据输出。
本实施例中,第一数据为101110100时,获取的初始点值为28×G(x,y)、26×G(x,y)、24×G(x,y)、22×G(x,y)和20×G(x,y),依次点加之后,得到的结果数据Q=1×28×G(x,y)+1×26×G(x,y)+3×24×G(x,y)+1×22×G(x,y)+0×20×G(x,y)。
本发明实施例根据选取的分组在第一数据中的位置,查询预先设置的初始点值列表,获取初始点值列表中的初始点值,并根据该初始点值以及选取的分组的数据进行计算,极大地提高了运算速度。
结合本文中所公开的实施例描述的方法中的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (24)

1.一种在嵌入式系统中生成坐标点的方法,其特征在于,包括以下步骤:
S1、获取随机数和第一固定值,并以第一固定值为模数,对随机数进行取模,得到第一数据;
S2、从所述第一数据中选取一个未被处理过的数据位;
S3、根据选取的数据位在所述第一数据中的位置,从预先存储的初始点值列表中获取与所述选取的数据位对应的初始点值,所述初始点值列表中的各个初始点值分别为不同的幂值与预设的第一点值进行点乘得到的运算结果;
S4、将获取的初始点值与所述选取的数据位中的数据进行点乘,对得到的点乘结果与中间点值进行点加运算,得到点加结果,并将所述中间点值更新为所述点加结果,所述中间点值的初始值为(0,0);
S5、判断所述第一数据中是否存在未被处理过的数据位,如果存在,则返回步骤S2;否则,执行步骤S6;
S6、将所述中间点值作为结果数据输出。
2.如权利要求1所述的方法,其特征在于,所述初始点值列表通过以下方式生成:
根据预设的位长,生成包含零在内的、多个取值连续的整数;
以2为底数,各个整数为指数,计算得到各个整数对应的幂值;
对各个整数对应的幂值与所述第一点值进行点乘,得到包含多个初始点值的初始点值列表。
3.如权利要求1或2所述的方法,其特征在于,所述初始点值列表中的初始点值按照大小顺序排列;
所述根据选取的数据位在所述第一数据中的位置,从预先存储的初始点值列表中获取与所述选取的数据位对应的初始点值,具体为:
所述根据所述选取的数据位在所述第一数据中的位置,从预先存储的初始点值列表中的对应的位置,获取与所述选取的数据位对应的初始点值。
4.如权利要求1所述的方法,其特征在于,所述初始点值列表通过以下方式生成:
根据预设的位长,生成包含零在内的、多个取值连续的编号;
以2为底数,各个编号为指数,计算得到各个编号对应的幂值;
对各个编号对应的幂值与所述第一点值进行点乘,得到与各个编号对应的初始点值,并根据各个编号以及与各个编号对应的初始点值生成初始点值列表。
5.如权利要求4所述的方法,其特征在于,所述根据选取的数据位在所述第一数据中的位置,从预先存储的初始点值列表中获取与所述选取的数据位对应的初始点值,具体为:
所述根据所述选取的数据位在所述第一数据中的位置,确定所述初始点值表中与所述选取的数据位对应的编号,将所述编号对应的初始点值作为与所述选取的数据位对应的初始点值。
6.如权利要求4所述的方法,其特征在于,所述从第一数据中选取一个未被处理过的数据位之前,还包括:
按照从低到高的顺序,对所述第一数据的数据位进行编号;
所述根据选取的数据位在所述第一数据中的位置,从预先存储的初始点值列表中获取与所述选取的数据位对应的初始点值,具体为:
根据所述选取的数据位的编号,从预先存储的初始点值列表中获取对应的初始点值。
7.一种在嵌入式系统中生成坐标点的方法,其特征在于,包括以下步骤:
S1、获取随机数和第一固定值,并以第一固定值为模数,对随机数进行取模,得到第一数据;
S2、从所述第一数据中选取一个未被处理过的数据位;
S3、判断选取的数据位中的数据是否为零,如果是,则执行步骤S6;否则,执行步骤S4;
S4、根据所述选取的数据位在所述第一数据中的位置,从预先存储的初始点值列表中获取与所述选取的数据位对应的初始点值,所述初始点值列表中的各个初始点值分别为不同的幂值与预设的第一点值进行点乘得到的运算结果;
S5、将获取的初始点值与中间点值进行点加运算,得到点加结果,并将所述中间点值更新为所述点加结果,所述中间点值的初始值为(0,0);
S6、判断所述第一数据中是否存在未被处理过的数据位,如果存在,则返回步骤S2;否则,执行步骤S7;
S7、将所述中间点值作为结果数据输出。
8.如权利要求7所述的方法,其特征在于,所述初始点值列表通过以下方式生成:
根据预设的位长,生成包含零在内的、多个取值连续的整数;
以2为底数,各个整数为指数,计算得到各个整数对应的幂值;
对各个整数对应的幂值与所述第一点值进行点乘,得到包含多个初始点值的初始点值列表。
9.如权利要求7或8所述的方法,其特征在于,所述初始点值列表中的初始点值按照大小顺序排列;
所述根据选取的数据位在所述第一数据中的位置,从预先存储的初始点值列表中获取与所述选取的数据位对应的初始点值,具体为:
所述根据所述选取的数据位在所述第一数据中的位置,从预先存储的初始点值列表中的对应的位置,获取与所述选取的数据位对应的初始点值。
10.如权利要求7所述的方法,其特征在于,所述初始点值列表通过以下方式生成:
根据预设的位长,生成包含零在内的、多个取值连续的编号;
以2为底数,各个编号为指数,计算得到各个编号对应的幂值;
对各个编号对应的幂值与所述第一点值进行点乘,得到与各个编号对应的初始点值,并根据各个编号以及与各个编号对应的初始点值生成初始点值列表。
11.如权利要求10所述的方法,其特征在于,所述根据选取的数据位在所述第一数据中的位置,从预先存储的初始点值列表中获取与所述选取的数据位对应的初始点值,具体为:
所述根据所述选取的数据位在所述第一数据中的位置,确定所述初始点值表中与所述选取的数据位对应的编号,将所述编号对应的初始点值作为与所述选取的数据位对应的初始点值。
12.如权利要求10所述的方法,其特征在于,所述从第一数据中选取一个未被处理过的数据位之前,还包括:
按照从低到高的顺序,对所述第一数据的数据位进行编号;
所述根据选取的数据位在所述第一数据中的位置,从预先存储的初始点值列表中获取与所述选取的数据位对应的初始点值,具体为:
根据所述选取的数据位的编号,从预先存储的初始点值列表中获取对应的初始点值。
13.一种在嵌入式系统中生成坐标点的方法,其特征在于,包括以下步骤:
S1、获取随机数和第一固定值,并以所述第一固定值为模数,对所述随机数进行取模,得到第一数据;
S2、根据预设分组长度对所述第一数据的位长取余,得到第二数据;
S3、判断所述第二数据是否为零,如果是,则执行步骤S5;否则,执行步骤S4;
S4、在所述第一数据的高位补零,返回步骤S2;
S5、根据所述预设分组长度对所述第一数据进行划分,得到多个分组;
S6、从所述第一数据中选取一个未被处理过的分组;
S7、根据选取的分组在所述第一数据中的位置,从预先存储的初始点值列表中获取与所述选取的分组对应的初始点值,所述初始点值列表中的各个初始点值分别为不同的幂值与预设的第一点值进行点乘得到的运算结果;
S8、将获取的初始点值与所述选取的分组中的数据进行点乘,对得到的点乘结果与中间点值进行点加运算,得到点加结果,并将所述中间点值更新为所述点加结果,所述中间点值的初始值为(0,0);
S9、判断所述第一数据中是否存在未被处理过的分组,如果存在,则返回步骤S6;否则,执行步骤S10;
S10、将所述中间点值作为结果数据输出。
14.如权利要求13所述的方法,其特征在于,所述初始点值列表通过以下方式生成:
根据预设的位长,生成包含零在内的、多个取值连续的整数;
以2为底数,各个整数与所述预设分组长度的乘积为指数,计算得到各个整数对应的幂值;
对各个整数对应的幂值与所述第一点值进行点乘,得到包含多个初始点值的初始点值列表。
15.如权利要求13或14所述的方法,其特征在于,所述初始点值列表中的初始点值按照大小顺序排列;
所述根据选取的分组在所述第一数据中的位置,从预先存储的初始点值列表中获取与所述选取的分组对应的初始点值,具体为:
所述根据所述选取的分组在所述第一数据中的位置,从预先存储的初始点值列表中的对应的位置,获取与所述选取的分组对应的初始点值。
16.如权利要求13所述的方法,其特征在于,所述初始点值列表通过以下方式生成:
根据预设的位长,生成包含零在内的、多个取值连续的编号;
以2为底数,各个编号与所述预设分组长度的乘积为指数,计算得到各个编号对应的幂值;
对各个编号对应的幂值与所述第一点值进行点乘,得到与各个编号对应的初始点值,并根据各个编号以及与各个编号对应的初始点值生成初始点值列表。
17.如权利要求16所述的方法,其特征在于,所述根据选取的分组在所述第一数据中的位置,从预先存储的初始点值列表中获取与所述选取的分组对应的初始点值,具体为:
所述根据所述选取的分组在所述第一数据中的位置,确定所述初始点值表中与所述选取的分组对应的编号,将所述编号对应的初始点值作为与所述选取的分组对应的初始点值。
18.如权利要求16所述的方法,其特征在于,所述从第一数据中选取一个未被处理过的分组之前,还包括:
按照从低到高的顺序,对根据所述第一数据划分得到的分组进行编号;
所述根据选取的分组在所述第一数据中的位置,从预先存储的初始点值列表中获取与所述选取的分组对应的初始点值,具体为:
根据所述选取的分组的编号,从预先存储的初始点值列表中获取对应的初始点值。
19.一种在嵌入式系统中生成坐标点的方法,其特征在于,包括以下步骤:
S1、获取随机数和第一固定值,并以所述第一固定值为模数,对所述随机数进行取模,得到第一数据;
S2、根据预设分组长度对所述第一数据的位长取余,得到第二数据;
S3、判断所述第二数据是否为零,如果是,则执行步骤S5;否则,执行步骤S4;
S4、在所述第一数据的高位补零,返回步骤S2;
S5、根据所述预设分组长度对所述第一数据进行划分,得到多个分组;
S6、从所述第一数据中选取一个未被处理过的分组;
S7、判断选取的分组中的数据是否为零,如果是,则执行步骤S10;否则,执行步骤S8;
S8、根据选取的分组在所述第一数据中的位置和所述选取的分组中的数据,从预先存储的初始点值列表中获取与所述选取的分组对应的初始点值,所述初始点值列表中的各个初始点值分别为不同的幂值与预设的第一点值进行点乘得到的运算结果;
S9、以第二固定值为模数,将获取的初始点值与中间点值进行点加运算,得到运算结果,并将所述中间点值更新为所述运算结果,所述中间点值的初始值为(0,0);
S10、判断所述第一数据中是否存在未被处理过的分组,如果存在,则返回步骤S6;否则,执行步骤S11;
S11、将所述中间点值作为结果数据输出。
20.如权利要求19所述的方法,其特征在于,所述初始点值列表通过以下方式生成:
根据预设的位长,生成包含零在内的、多个取值连续的整数;
以2为底数,各个整数与所述预设分组长度的乘积为指数,计算得到各个整数对应的幂值;
以所述第二固定值为模数,对各个整数对应的幂值与所述第一点值以及索引进行点乘,得到包含多个初始点值的初始点值列表。
21.如权利要求19或20所述的方法,其特征在于,所述初始点值列表中的初始点值按照大小顺序排列;
所述根据选取的分组在所述第一数据中的位置和所述选取的分组中的数据,从预先存储的初始点值列表中获取与所述选取的分组对应的初始点值,具体为:
所述根据所述选取的分组在所述第一数据中的位置和所述选取的分组中的数据,从预先存储的初始点值列表中的对应的位置,获取与所述选取的分组对应的初始点值。
22.如权利要求19所述的方法,其特征在于,所述初始点值列表通过以下方式生成:
根据预设的位长,生成包含零在内的、多个取值连续的编号;
以2为底数,各个编号与所述预设分组长度的乘积为指数,计算得到各个编号对应的幂值;
以所述第二固定值为模数,对各个编号对应的幂值与所述第一点值以及索引进行点乘,得到与各个编号对应的初始点值,并根据各个编号以及与各个编号对应的初始点值生成初始点值列表。
23.如权利要求22所述的方法,其特征在于,所述根据选取的分组在所述第一数据中的位置和所述选取的分组中的数据,从预先存储的初始点值列表中获取与所述选取的分组对应的初始点值,具体为:
所述根据所述选取的分组在所述第一数据中的位置,确定所述初始点值表中与所述选取的分组对应的编号,根据所述选取的分组中的数据,从所述编号对应的初始点值中获取与所述选取的分组对应的初始点值。
24.如权利要求22所述的方法,其特征在于,所述从第一数据中选取一个未被处理过的分组之前,还包括:
按照从低到高的顺序,对根据所述第一数据划分得到的分组进行编号;
所述根据选取的分组在所述第一数据中的位置和所述选取的分组中的数据,从预先存储的初始点值列表中获取与所述选取的分组对应的初始点值,具体为:
根据所述选取的分组的编号和所述选取的分组中的数据,从预先存储的初始点值列表中获取对应的初始点值。
CN201210587204.0A 2012-12-28 2012-12-28 一种在嵌入式系统中生成坐标点的方法 Active CN103092688B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201210587204.0A CN103092688B (zh) 2012-12-28 2012-12-28 一种在嵌入式系统中生成坐标点的方法
US14/423,465 US9613229B2 (en) 2012-12-28 2013-11-27 Method for generating coordinate point in embedded system
PCT/CN2013/087924 WO2014101613A1 (zh) 2012-12-28 2013-11-27 一种在嵌入式系统中生成坐标点的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210587204.0A CN103092688B (zh) 2012-12-28 2012-12-28 一种在嵌入式系统中生成坐标点的方法

Publications (2)

Publication Number Publication Date
CN103092688A CN103092688A (zh) 2013-05-08
CN103092688B true CN103092688B (zh) 2015-11-18

Family

ID=48205298

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210587204.0A Active CN103092688B (zh) 2012-12-28 2012-12-28 一种在嵌入式系统中生成坐标点的方法

Country Status (3)

Country Link
US (1) US9613229B2 (zh)
CN (1) CN103092688B (zh)
WO (1) WO2014101613A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103092688B (zh) * 2012-12-28 2015-11-18 飞天诚信科技股份有限公司 一种在嵌入式系统中生成坐标点的方法
CN104142969B (zh) * 2013-11-27 2018-04-06 北京星网锐捷网络技术有限公司 数据分块的处理方法和装置
CN108627129A (zh) * 2018-04-28 2018-10-09 滨州职业学院 一种基于嵌入式的机械制造用三坐标测量方法
CN112769553B (zh) * 2020-12-30 2022-08-19 北京宏思电子技术有限责任公司 嵌入式系统中加快sm9双线性对运算的实现方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6633896B1 (en) * 2000-03-30 2003-10-14 Intel Corporation Method and system for multiplying large numbers
CN101216754A (zh) * 2007-12-27 2008-07-09 广州杰赛科技股份有限公司 模乘运算的处理方法、数据加解密处理的方法、装置
CN102508632A (zh) * 2011-09-30 2012-06-20 飞天诚信科技股份有限公司 一种在嵌入式系统中实现乘法运算的方法和装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1624609B1 (en) * 2000-01-21 2011-08-24 Sony Computer Entertainment Inc. Encryption data processing apparatus and method
US20040096057A1 (en) * 2002-11-20 2004-05-20 Moore Stephen F. Modular multiplication of multi-precision numbers
US20060224817A1 (en) * 2005-03-31 2006-10-05 Atri Sunil R NOR flash file allocation
US9166902B1 (en) * 2012-09-14 2015-10-20 Cisco Technology, Inc. Per-port multicast processing
CN103092688B (zh) * 2012-12-28 2015-11-18 飞天诚信科技股份有限公司 一种在嵌入式系统中生成坐标点的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6633896B1 (en) * 2000-03-30 2003-10-14 Intel Corporation Method and system for multiplying large numbers
CN101216754A (zh) * 2007-12-27 2008-07-09 广州杰赛科技股份有限公司 模乘运算的处理方法、数据加解密处理的方法、装置
CN102508632A (zh) * 2011-09-30 2012-06-20 飞天诚信科技股份有限公司 一种在嵌入式系统中实现乘法运算的方法和装置

Also Published As

Publication number Publication date
CN103092688A (zh) 2013-05-08
US20160012253A1 (en) 2016-01-14
WO2014101613A1 (zh) 2014-07-03
US9613229B2 (en) 2017-04-04

Similar Documents

Publication Publication Date Title
CN103092688B (zh) 一种在嵌入式系统中生成坐标点的方法
JP6682041B2 (ja) モジュロ演算に基づく完全準同型暗号化の処理方法
CN106850221A (zh) 信息加密、解密方法及装置
CN107579813A (zh) 信息加密、解密方法及装置
CN110770725B (zh) 数据处理方法及装置
CN102684871A (zh) 具有均匀分布特征的多维伪随机序列快速并行生成方法
CN105281894A (zh) 一种基于七阶幻立方的明文加密方法和系统
CN106844288A (zh) 一种随机字符串生成方法及装置
Sasao Index Generation Functions: Tutorial.
US20190349186A1 (en) Structured file encryption process
CN115766190A (zh) 一种任意集合元素加密方法、解密方法及电子设备
CN103929305A (zh) Sm2签名算法的实现方法
US8804952B2 (en) System and method for securing scalar multiplication against differential power attacks
CN104253993B (zh) 一种多媒体数据处理方法、电路及装置
CN103401681A (zh) 取模方法、取模装置及芯片
CN102508632B (zh) 一种在嵌入式系统中实现乘法运算的方法和装置
CN104753530B (zh) Dds中相位修正及非均匀相幅转换方法及装置
CN104050399B (zh) 用户验证方法和装置以及盗版追踪方法和装置
CN110275693B (zh) 用于随机计算的多加数加法电路
CN109460533B (zh) 一种提高gemm计算性能的方法及装置
CN102929705B (zh) 一种在嵌入式系统中快速生成坐标点的方法
CN103023519B (zh) 一种费马数变换的方法和装置
CN102394747B (zh) 一种快速嵌入明文到椭圆曲线上一点的方法
Du et al. The Aztec Diamond edge-probability generating function
CN110598165B (zh) 一种基于矩阵等价的布尔函数仿射等价判定方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230705

Address after: Room 1505, Building B, Huizhi Building, No. 9 Xueqing Road, Haidian District, Beijing, 100085

Patentee after: BEIJING HONGSI ELECTRONIC TECHNOLOGY Co.,Ltd.

Address before: 100085 17th floor, block B, Huizhi building, No.9 Xueqing Road, Haidian District, Beijing

Patentee before: Feitian Technologies Co.,Ltd.