发明名称 一种基于圆锥曲线组合公钥认证密码方法
摘要 基于圆锥曲线组合公钥认证密码方法,包括如下步骤:步骤1、生成基于剩余类环<img file="DDA0000368418960000011.GIF" wi="48" he="58" />圆锥曲线的公开密码参数;步骤2、生成基于剩余类环<img file="DDA0000368418960000012.GIF" wi="56" he="55" />圆锥曲线的公私密钥;步骤3、使用基于圆锥曲线的组合公钥密码方法的基本算法。
申请公布号 CN103490890A 申请公布日期 2014.01.01
申请号 CN201310362085.3 申请日期 2013.08.19
申请人 浙江工业大学 发明人 于明远;赵航;黄书杭;禹晴;刘希伟;叶蕾
分类号 H04L9/32(2006.01)I;H04L9/30(2006.01)I 主分类号 H04L9/32(2006.01)I
代理机构 杭州天正专利事务所有限公司 33201 代理人 王兵;黄美娟
主权项 1.基于圆锥曲线组合公钥认证密码方法,包括如下步骤: 步骤1、生成基于剩余类环<img file="FDA0000368418930000011.GIF" wi="71" he="76" />圆锥曲线的公开密码参数设<img file="FDA0000368418930000012.GIF" wi="59" he="68" />是模n剩余类环,定义环<img file="FDA0000368418930000013.GIF" wi="52" he="71" />上的圆锥曲线C<sub>n</sub>(a,b)为同余方程y<sup>2</sup>≡ax<sup>2</sup>-bx(mod n)在<img file="FDA0000368418930000014.GIF" wi="54" he="66" />上的解集,其中a,b∈Z,(a,n)=(b,n)=1,n=pq,p,q为两个不同的大奇素数,mod为取模运算;原点O=(0,0)∈C<sub>n</sub>(a,b),记C<sub>n</sub>(a,b)=<img file="FDA0000368418930000015.GIF" wi="725" he="84" />若满足<img file="FDA0000368418930000016.GIF" wi="232" he="105" />且p+1=2r,q+1=2s,r、s是素数,则曲线C<sub>n</sub>(a,b)存在点G,其阶N<sub>n</sub>=lcm{|C<sub>p</sub>(a,b)|,|C<sub>q</sub>(a,b)|}={p+1,q+1}=2rs,其中lcm(x,y)为计算最小公倍数函数,|C<sub>p</sub>(a,b)|和|C<sub>q</sub>(a,b)|分别为有限域上圆锥曲线C<sub>p</sub>(a,b)和C<sub>q</sub>(a,b)的阶;G为C<sub>n</sub>(a,b)的一个基点,集合S={G,2G,...,(N<sub>n</sub>-1)G,N<sub>n</sub>G}构成C<sub>n</sub>(a,b)的一个子群S,称为由基点G生成的群S;因此基于剩余类环<img file="FDA0000368418930000017.GIF" wi="72" he="71" />圆锥曲线密码参数由a,b,n,G,N<sub>n</sub>组成,记作T=(a,b,n,G,N<sub>n</sub>);由基点G生成的子群S中的元素皆为G的倍点kG(k=1,2,......,N<sub>n</sub>)即<img file="FDA0000368418930000018.GIF" wi="1630" he="92" />子群S中的元素(x<sub>k</sub>,y<sub>k</sub>)与该点对应的倍数值k恰好构成公钥/私钥对;给定参数T=(a,b,n,G,N<sub>n</sub>)和公钥(x<sub>k</sub>,y<sub>k</sub>),求出其对基点G的倍数值k(即离散对数)是很困难的;为了简化求基点G的计算复杂度,采用基于中点的选取基点办法:设定基点G=(x<sub>G</sub>,y<sub>G</sub>)为C<sub>n</sub>(a,b)的中点;步骤2、生成基于剩余类环<img file="FDA0000368418930000019.GIF" wi="69" he="70" />圆锥曲线的公私密钥由步骤1生成的剩余类环<img file="FDA00003684189300000110.GIF" wi="70" he="71" />圆锥曲线公开密码参数T=(a,b,n,G,N<sub>n</sub>)建立如下私钥矩阵(SSKF)和公钥矩阵(PSKF):<img file="FDA00003684189300000111.GIF" wi="770" he="286" /><img file="FDA00003684189300000112.GIF" wi="512" he="275" />其中X<sub>i,j</sub>=(x<sub>ij</sub>,y<sub>ij</sub>)∈S,r<sub>ij</sub>G=X<sub>i,j</sub>=(x<sub>ij</sub>,y<sub>ij</sub>),1≤r<sub>ij</sub>≤(N<sub>n</sub>-1)且1≤i≤m,1≤j≤h; 公钥矩阵(PSKF)和私钥矩阵(SSKF)中任一对应位置上的元素X<sub>i,j</sub>=(x<sub>ij</sub>,y<sub>ij</sub>)∈S与r<sub>ij</sub>就构成一个公钥/私钥对;在密码机制中一个实体的公钥(PK)/私钥(SK)对是根据实体ID、公钥矩阵(PSKF)、私钥矩阵(SSKF)以及预先定义的映射算法直接映射得到的;这里的实体ID是在应用期间注册的能够与它实体区分开来的唯一名字(简称DN),如用户名、进程号、组织名称、银行帐号、IP地址、MAC地址或设备号码等,只要实体认可且以后不否认即可;为了实现单点登录与信任委托等功能,实体ID后可加上生成的时刻; 设实体ID的映射值对应的行列坐标为:(i<sub>1</sub>,j<sub>1</sub>),(i<sub>2</sub>,j<sub>2</sub>),...,(i<sub>h</sub>,j<sub>h</sub>),则得到的公钥(PK)和私钥(SK)分别为: PK=X<sub>i1,j1</sub>+X<sub>i2,j2</sub>+...+X<sub>ih,ih</sub>=(x<sub>i1,j1</sub>,y<sub>i1,j1</sub>)+(x<sub>i2,j2</sub>,y<sub>i2,j2</sub>)+...+(x<sub>ih,jh</sub>,y<sub>ih,jh</sub>); SK=(r<sub>i1,j1</sub>+r<sub>i2,j2</sub>+...+r<sub>ih,ih</sub>)mod N<sub>n</sub>,因 PK=X<sub>i1,j1</sub>+X<sub>i2,j2</sub>+...+X<sub>ih,ih</sub>=r<sub>i1,j1</sub>G+r<sub>i2,j2</sub>G+...+r<sub>ih,ih</sub>G=(r<sub>i1,j1</sub>+r<sub>i2,j2</sub>+...+r<sub>ih,ih</sub>)G=SK×G 通过映射算法可以从实体ID得到用来认证的一系列唯一映射值,因此映射函数F<sub>i</sub>(x)必需具有无冲突和随机产生的特点,对称加密函数或hash函数都可以作为映射函数F<sub>i</sub>(x);如<img file="FDA0000368418930000021.GIF" wi="870" he="100" />这里<img file="FDA0000368418930000022.GIF" wi="102" he="79" />先用哈希函数对用户标识符做散列,然后采用AES方法,用键u<sub>j</sub>实现加密;步骤3、使用基于圆锥曲线的组合公钥密码方法的基本算法 <img file="FDA0000368418930000031.GIF" wi="1778" he="2564" /><img file="FDA0000368418930000041.GIF" wi="1774" he="2771" /><img file="FDA0000368418930000051.GIF" wi="1770" he="2846" /><img file="FDA0000368418930000061.GIF" wi="1778" he="2739" /><img file="FDA0000368418930000071.GIF" wi="712" he="268" />。
地址 310014 浙江省杭州市下城区潮王路18号