会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 密码体制 / 一种基于身份的公钥密码体制

一种基于身份的公钥密码体制

申请号 CN03156911.0 申请日 2003-09-15 公开(公告)号 CN1490974A 公开(公告)日 2004-04-21
申请人 郑建德; 发明人 郑建德;
摘要 一种基于身份的快速公钥密码体制,其特点是解密效率高,能够在简单电子器件中实现,特别适用于金融卡、身份卡等IC卡。
权利要求

1.一种基于身份的快速公钥密码体制,其特征在于:

(a)选择整数环Zn作为算法的定义域,其中模数n取为两个秘密 大数素的积,n=pq,并以模数n的因子p和q为系统密钥;

(b)每个用户以Zn上的两个秘密整数λ1,λ2作为其用户密钥,以        σ1=(λ1+λ2)(mod n),                              (1)        σ2=(λ1λ2)(mod n),                               (2) 作为其公钥;

(c)信息m的密码取为(c1,c2,c3),c1,c2和c3按如下公式计算:        c1=(ξxk+ηxk+s)(mod n),                           (3)        c2=(ξxk+1+ηxk+s+1)(mod n),                         (4)        c3=m(ξxk+r+ηxk+s+r)-1(mod n),                     (5)其中

        xi=(λ1 i+λ2 i)(mod n),i=1,2,...k,...k+s+r,    (6) k,ξ和η是加密系统产生的三个不同的秘密随机数,r和s是两个系 统参数;

(d)解密时,先令

        μ1=(ξλ1 k+ηλ1 k+s)(mod n),                      (7)        μ1=(ξλ2 k+ηλ2 k+s)(mod n),                      (8) 并将(3)和(4)改写为        c1=(μ1+μ2)(mod n),                               (9)    c2=(λ1μ1+λ2μ2)(mod n),                                      (10) 再从(9)和(10)中解出μ1和μ2,并根据它们的值计算    z=(λ1 rμ1+λ2 rμ)(mod n)

     =(ξxk+r+ηxk+s+r)(mod n),                                           (11) 最后根据(5)获得信息明文    m=c3z(mod n)。                                                         (12)

2.如权利要求1所述公钥密码体制的加、解密算法,其特征在于xk 和xk+1是根据用户的公钥按如下公式计算:    xi+1=(λ1 i+1+λ2 i+1)(mod n)         =[(λ1+λ2)(λ1 i+λ2 i)-λ1λ2(λ1 i-1+λ2 i-1)(mod n)         =(σ1xi-σ2xi-1)(mod n),                                      (14)    xi+j=(λ1 i+j+λ2 i+j)(mod n)         =[(λ1 j+λ2 j)(λ1 i+λ2 i)-(λ1λ2)j(λ1 i-j+λ2 i-j)(mod n)         =(xjxi-σ2 jxi-j)(mod n),i>j,                                (15)    x2i =(λ1 2i+λ2 2i)(mod n)         =[(λ1 i+λ2 i)2-2(λ1λ2)i](mod n)         =(xi 2-2σ2 i)(mod n);                                            (16) μ1和μ2是根据密码按如下公式计算:    μ1=(c2-λ2c1)(λ1-λ2)-1(mod n),                              (17)    μ2=(λ1c1-c2)(λ1-λ2)-1(mod n)。                              (18)

说明书全文

                         一、技术领域

本发明属于信息加密领域,特别涉及到一种基于身份的快速公钥密码 体制。

                         二、背景技术

密码算法是信息安全的核心技术,重要的密码算法都被授予过专利。 目前国际上使用较多的公钥密码体制主要有基于因数分解问题的RSA和 Rabin公钥密码体制、基于离散对数问题的ElGamal公钥密码体制以及基 于椭圆曲线离散对数问题的公钥密码体制。研制具有自主知识产权的新的 公钥密码体制这一课题的提出是因为现有主要公钥密码体制需要一个庞大 的公钥基础设施提供公钥目录支持及密钥备份支持。虽然已有人提出基于 身份的公钥密码体制,但算法复杂,不易实施,更难以在运算能力较弱的 简单设备如IC卡中实现。

                        三、发明内容

本发明需要解决的技术问题是研究出一种新的公钥密码体制,使 之:(a)具有简单快速的加、解密算法;(b)支持基于身份的加密;(c)易 于在运算能力较弱的简单设备如IC卡中实现。本发明的目的,是采用以下 技术方案来实现的,其特征是:

(a)选择整数环Zn作为密码算法的定义域,其中模数n取为两个秘密大 数素的积,n=pq,并以模数n的因子p和q为系统密钥;

(b)每个用户以Zn上的两个秘密整数λ1,λ2作为其用户密钥,以

      σ1=(λ1+λ2)(mod n)                              (1)

      σ2=(λ1λ2)(mod n)                               (2) 作为其公钥;

(c)信息m的密码取为(c1,c2,c3),它们按以下公式计算:

      c1=(ξxk+ηxk+s)(mod n),                         (3)

    c2=(ξxk+1+ηxk+s+1)(mod n),                         (4)

    c3=m(ξxk+r+ηxk+s+r)-1(mod n),                     (5)

其中

    xi=(λ1 i+λ2 i)(mod n),i=1,2,...k,...k+s+r,   (6) k,ξ和η是加密系统产生的三个不同的秘密随机数,r和s是两个系统参数,m 是待加密的信息;

(d)解密时,先令

    μ1=(ξλ1 k+ηλ1 k+s)(mod n),                     (7)

    μ2=(ξλ2 k+ηλ2 k+s)(mod n),                     (8) 并将(3)和(4)改写为

    c1=(μ1+μ2)(mod n),                              (9)

    c2=(λ1μ1+λ2μ2)(mod n),                     (10) 再从(9)和(10)中解出μ1和μ2,并根据它们的值计算

    z=(λ1 rμ1+λ2 rμ)(mod n)

     =(ξxk+r+ηxk+s+r)(mod n),                           (11) 最后根据(5)获得信息明文

    m=c3z(mod n)。                                        (12)

本发明的有益效果是为电子商务和电子政务提供一种全新的基于身 份的加密技术,该技术的加、解密效率高,能够在简单电子器件中实现, 特别适用于金融卡、身份卡等IC卡。

                         四、附图说明

附图是实施本发明所需要的模块及其相互之间逻辑关系的框图。

                         五、具体实施方式

以下结合附图,对本发明的具体实施方法进行详细的说明。 (一)系统密钥产生及公共摸数制作。该模块产生秘密素数p和q,并计 算公共模数n=pq。该模块的操作应在严密的监控下进行。系统密钥由密钥 托管中心保管。

(二)用户密钥制作与恢复。首先根据用户身份选定公钥σ1和σ2,密 钥(λ1,λ2)通过求解以下方程获得:

    (λ2-σ1λ+σ2)(mod n)=0,                      (13) 如果用户密钥丢失,还可由密钥托管中心根据用户公钥从(13)中恢复其密 钥。 (三)加密。本模块实现信息加密。主要步骤有:

1.产生三个不同的秘密随机数k,ξ和η,并根据对方的公钥σ1和σ2按

(3),(4),(5)以及如下公式计算密码c1,c2和c3:

   xi+1=(λ1 i+1+λ2 i+1)(mod n)

        =[(λ1+λ2)(λ1 i+λ2 i)-λ1λ2(λ1 i-1+λ2 i-1)(mod n)

        =(σ1 xi-σ2xi-1)(mod n),                              (14)

   xi+j=(λ1 i+j+λ2 i+j)(mod n)

        =[(λ1 j+λ2 j)(λ1 i+λ2 i)-(λ1λ2)j(λ1 i-j+λ2 i-j)(mod n)

        =(xjxi-σ2 jxi-j)(mod n),i>j,                         (15)

   x2i =(λ1 2i+λ2 2i)(mod n)

        =[(λ1 i+λ2 i)2-2(λ1λ2)i](mod n)

        =(xi 2-2σ2 i)(mod n)。                                      (16) (四)解密。主要步骤有:

1.利用私钥计算

   μ1=(c2-λ2c1)(λ1-λ2)-1(mod n),                        (17)

   μ2=(λ1c1-c2)(λ1-λ2)-1(mod n),                        (18)

2.根据(11)计算z。由于(λ1-λ2)-1(mod n)可以预先算出并保存在IC卡 的EPROM或flash中,计算z只需少数几个模-n乘法运算。

3.根据(12)恢复明文。

理论上可以证明,除了加密者和解密者之外,其它人无法从密码中算 出z,除非他能够分解Zn上的二次多项式,这同攻破RSA公钥密码系统的 难度是一样的。