IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 深▲せん▼奥聯信息安全技術有限公司の特許一覧

<>
  • 特許-デジタル署名方法、装置及びシステム 図1
  • 特許-デジタル署名方法、装置及びシステム 図2
  • 特許-デジタル署名方法、装置及びシステム 図3
  • 特許-デジタル署名方法、装置及びシステム 図4
  • 特許-デジタル署名方法、装置及びシステム 図5
  • 特許-デジタル署名方法、装置及びシステム 図6
  • 特許-デジタル署名方法、装置及びシステム 図7
  • 特許-デジタル署名方法、装置及びシステム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-13
(45)【発行日】2022-07-22
(54)【発明の名称】デジタル署名方法、装置及びシステム
(51)【国際特許分類】
   H04L 9/32 20060101AFI20220714BHJP
   G09C 1/00 20060101ALI20220714BHJP
【FI】
H04L9/32 200B
G09C1/00 640D
【請求項の数】 9
(21)【出願番号】P 2020533330
(86)(22)【出願日】2017-12-18
(65)【公表番号】
(43)【公表日】2020-11-12
(86)【国際出願番号】 CN2017117023
(87)【国際公開番号】W WO2019047418
(87)【国際公開日】2019-03-14
【審査請求日】2020-03-10
(31)【優先権主張番号】201710792638.7
(32)【優先日】2017-09-05
(33)【優先権主張国・地域又は機関】CN
【前置審査】
(73)【特許権者】
【識別番号】520074066
【氏名又は名称】深▲せん▼奥聯信息安全技術有限公司
【氏名又は名称原語表記】SHENZHEN OLYM INFORMATION SECURITY TECHOLOGY CO.,LTD.
【住所又は居所原語表記】17th of No.334,1st Shopping Mall,Futong Haowangjiao Podium Building,Xincheng Avenue,Xin’an Subdistrict,Bao’an District,Shenzhen,Guangdong Province,China
(74)【代理人】
【識別番号】110002262
【氏名又は名称】TRY国際特許業務法人
(72)【発明者】
【氏名】程 朝輝
(72)【発明者】
【氏名】杜 峰
【審査官】行田 悦資
(56)【参考文献】
【文献】特開2011-082662(JP,A)
【文献】特開2010-272899(JP,A)
【文献】特開2005-184134(JP,A)
【文献】国際公開第2016/049406(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G09C 1/00
(57)【特許請求の範囲】
【請求項1】
署名端末によってnとXのキーペアをランダムに生成し、それらの識別IDとXを鍵生成センターに送信するステップと、
鍵生成センターによって生成され前記署名端末の識別IDに対応する部分署名秘密鍵T=(Π、w)を受信し、ただし、前記(Π、w)は鍵生成センターがデジタル署名方法MAを実行し前記IDに署名して得られた署名値であり、前記鍵生成センターは、署名公開鍵と秘密鍵のペア(P、ms)をランダムに生成し、事前署名Πを生成して、少なくともΠ、IDを含むハッシュダイジェストを署名割当Rとして生成し、最後に署名値の第2部分wを生成し、鍵生成センターは、暗号化システムの公開パラメータとしてPを使用するステップと、
前記P、ID、T、nおよびXを使用して署名キーペア(PX、S)を算出するステップと、
Sを署名秘密鍵として使用しデジタル署名方法MBを実行してメッセージMに署名し、署名値Uを生成し、(U、PX)をメッセージMに対する署名値として署名検証端末に送信し、またはUをメッセージMに対する署名値として署名検証端末に送信し、PXを公開し、ただし、メッセージMに対する署名の過程中、Mを入力とする必要がある演算ではRとMの関連を入力として使用するステップと、
前記署名検証端末によってメッセージMの署名を署名検証し、ただし、前記署名検証端末はPXを取得し、前記PXは事前署名Πを含み、前記P、ID、PXからSに対応する公開鍵Qを計算し、前記デジタル署名方法MBによる署名検証過程によって、Uが公開鍵Qに対応する秘密鍵のメッセージMに対する有効な署名であるかどうかを検証し、ただし、署名検証過程中、Mを入力とする必要がある演算では、RとMの関連を入力として使用するステップと、を含むことを特徴とするデジタル署名方法。
【請求項2】
前記デジタル署名方法MAは離散対数問題に基づく署名方法であり、前記鍵生成センターは、離散対数問題に基づいて構築され、その選択次数は、qの巡回グループの生成元Gとグループ中の1つのランダム要素[o]Gであり、ただし、[o]Gは、o個のGが巡回グループの演算ルールに従ってo回加算演算されることを表し、
前記署名公開鍵と秘密鍵のペア(P、ms)中のmsは、鍵生成センターによってランダムに生成された整数msであり、かつ0<ms<q、前記P=<G、H=[ms]G>であることを特徴とする請求項1に記載のデジタル署名方法。
【請求項3】
前記の前記P、ID、T、n及びXを使用して署名キーペア(PX、S)を算出するステップの前に、
署名端末は、前記nを使用して前記鍵生成センターによって標準の非対称暗号化アルゴリズムで暗号化されたwを含む情報を復号化し、ただし、前記標準の非対称暗号化アルゴリズムでwを含む情報を暗号化する場合、使用される暗号化公開鍵はXであるステップを含むことを特徴とする請求項2に記載のデジタル署名方法。
【請求項4】
前記署名端末によってランダムによってnとXのキーペアを生成する方法は、
署名端末はランダムに整数nを生成し、0<n<q、X=[n]Gを計算することを含むことを特徴とする請求項2に記載のデジタル署名方法。
【請求項5】
前記の鍵生成センターによって生成された前記署名端末の識別IDに対応する部分署名秘密鍵T=(Π、w)を受信するステップは、具体的に、
鍵生成センターによってランダムに整数kを生成し、0<k<q、またはk=HASH(F(ID、他の情報Ι)、ms)modqを計算し、ただし、他の情報Iには、H、Xが含まれ、F操作はハッシュ演算または文字列連結であり、ただし、HASH(F(ID、他の情報Ι)、ms)modqはF(ID、他の情報Ι)とmsの連結値を要約計算し、連結順序はF(ID、他の情報Ι)||msまたはms||F(ID、他の情報Ι)、またはmsをキーペアF(ID、他の情報Ι)として使用しHMAC演算を実行すること、
鍵生成センターによって事前署名Π=[k]G±[n]Gを計算すること、
鍵生成センターによって署名割当R=HASH(F(ID、他の情報Α)、Π)を計算し、他の情報AにはHが含まれること、
鍵生成センターによって署名値の第2部分w=(k±R*ms)modqまたは(R*k±ms)modqを計算すること、
鍵生成センターによって部分署名秘密鍵T=(Π、w)を生成すること、
前記部分署名秘密鍵T=(Π、w)を受信することを含むことを特徴とする請求項4に記載のデジタル署名方法。
【請求項6】
前記の前記P、ID、T、nおよびXを使用して署名キーペア(PX、S)を算出するステップは、
w=(k±R*ms)modqである場合、S=(w±n)modq、PX=Π、署名キーペア(PX、S)を生成し、対応の公開鍵Q=Π±[R]Hであること、
w=(R*k±ms)modqである場合、S=(w±R*n)modq、PX=Π、署名キーペア(PX、S)を生成し、対応の公開鍵Q=[R]Π±Hであることを含むことを特徴とする請求項5に記載のデジタル署名方法。
【請求項7】
前記の鍵生成センターによって生成された前記署名端末の識別IDに対応する部分署名秘密鍵T=(Π、w)を受信するステップは、具体的に、
鍵生成センターによってランダムに整数kを生成し、0<k<q、またはk=HASH(F(ID、他の情報Ι)、ms)modqを算出し、他の情報IにはH、Xが含まれ、F操作はハッシュ演算または文字列連結であり、ただし、HASH(F(ID、他の情報Ι)、ms)modqはF(ID、他の情報Ι)とmsの連結値を要約計算し、連結順序はF(ID、他の情報Ι)||msまたはms||F(ID、他の情報Ι)、またはmsをキーペアF(ID、他の情報Ι)として使用しHMAC演算を実行すること、
鍵生成センターによって事前署名Π=[k]Gを計算すること、
鍵生成センターによって署名割当R=HASH(F(ID、他の情報Α)、Π)modqを計算し、他の情報AにはX、Hが含まれること、
鍵生成センターによって署名値の第2部分w=(k±R*ms)modqまたは(R*k±ms)modqを計算すること、
鍵生成センターによって部分署名秘密鍵T=(Π、w)を生成すること、
前記部分署名秘密鍵T=(Π、w)を受信することを含むことを特徴とする請求項4に記載のデジタル署名方法。
【請求項8】
前記の前記P、ID、T、nとXを使用して署名キーペア(PX、S)を算出するステップは、
w=(k±R*ms)modqである場合、S=(w±n)modq、PX=(Π、X)、署名キーペア(PX、S)を生成し、対応の公開鍵Q=Π±X±[R]Hであること、
w=(R*k±ms)modqである場合、S=(w±R*n)modq、PX=(Π、X)、署名キーペア(PX、S)を生成し、対応の公開鍵Q=[R](Π±X)±Hであることを含むことを特徴とする請求項7に記載のデジタル署名方法。
【請求項9】
署名端末、鍵生成センターおよび署名検証端末を含み、
前記署名端末によってランダムにnとXのキーペアを生成し、IDおよびXを前記鍵生成センターに送信し、
前記鍵生成センターによって予め設定されたデジタル署名方法MAで識別IDに署名し、識別IDに署名し、その署名過程には、前記鍵生成センターによってランダムに署名公開鍵と秘密鍵のペア(P、ms)を生成し、事前署名Πを生成し、少なくともΠ、IDを含むハッシュダイジェストを署名割当Rとして生成し、最後に署名値の第2部分wを生成し、両部分を含む署名値(Π、w)を得て、前記署名値を部分署名秘密鍵T=(Π、w)とし、前記部分署名秘密鍵Tを前記署名端末に送信し、鍵生成センターはまたPを暗号化システムの公開パラメータとすることが含まれ、
前記署名端末は前記P、ID、T、nとXを使用して署名キーペア(PX、S)を算出し、Sを署名秘密鍵としてデジタル署名方法MBでメッセージMに署名し、署名値Uを生成し、(U、PX)をメッセージMに対するID署名値として署名検証端末に送信し、またはUをメッセージMに対する署名値として署名検証端末に送信し、PXを公開し、ただし、メッセージMに対する署名過程中にMを入力とする必要がある演算では、RとMの関連を入力として使用し、
前記署名検証端末はメッセージMに対する署名を署名検証し、その署名検証過程には、PXを取得し、前記PXは事前署名Πを含み、前記P、ID、PXからSに対応する公開鍵Qを計算し、前記デジタル署名方法MBの署名検証過程に従いUが公開鍵Qに対応する秘密鍵のメッセージMに対する有効署名であるかどうかを検証し、ただし、署名検証過程中にMを入力とする必要がある演算では、RとMの関連を入力として使用することが含まれることを特徴とするデジタル署名システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デジタル署名の分野に関し、特にデジタル署名方法、装置及びシステムに関する。
【背景技術】
【0002】
従来の公開鍵システムでは、証明書を使用して、ユーザIDとユーザが所有する鍵を結合する。証明書は、ユーザとその鍵の関係を効果的に証明できるが、証明書の管理は複雑である。ID暗号化アルゴリズムは、ユーザのID及びシステムの公開情報を使用して、ユーザのID公開鍵を計算し、ユーザ間の通信では、証明書や公開鍵の交換は必要ではない。このようなシステムの利点は管理が簡単であるが、鍵委托の属性という欠点があり、即ち、すべてのユーザの秘密鍵を生成できる鍵生成センターがある。証明書のない公開鍵システムはこれら2つのシステムの間にあり、ユーザの鍵はユーザと鍵生成センターによって共同で生成される。基本的な方法は、ユーザが生成した部分鍵1中の公開鍵とそのIDを署名操作のために鍵生成センターに提供し、部分鍵2を生成する。ユーザが部分鍵2(署名結果)を取得した後、ユーザが生成した部分鍵1と結合して完全な公開鍵と秘密鍵のペアを生成する。このようなシステムでは、攻撃者がユーザの秘密鍵なしで公開鍵を偽造しても、ユーザのIDを偽造しデジタル署名などの操作が不可能である。このような無証明書のデジタル署名メカニズムの構築には、2つの署名アルゴリズムが含まれる。第1署名アルゴリズムは、ユーザが送信したIDに署名するために、鍵生成センターによって実行される。第2署名アルゴリズムは、完全な公開鍵と秘密鍵のペアの秘密鍵を使用して署名されたメッセージに署名するユーザによって実行される。ただし、EC-Schnorrなどの標準の署名アルゴリズムとメッセージ署名アルゴリズムECDSAを単に組み合わせただけでは、構築された無証明書デジタル署名メカニズムのセキュリティを保証できない。単純な組み合わせ方法のセキュリティ問題は、Daniel R.L.Brown他による論文「Security of ECQV-Certified ECDSA Against Passive Adversarie」に記載されている。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本発明の主な目的は、従来技術におけるセキュリティ脆弱性の問題を解決するデジタル署名方法、装置及びシステムを提供することである。
【課題を解決するための手段】
【0004】
上記の目的を達成するために、本発明は、署名端末によってnとXのキーペアをランダムに生成し、それらの識別IDとXを鍵生成センターに送信するステップと、
鍵生成センターによって生成され前記署名端末の識別IDに対応する部分署名秘密鍵T=(Π、w)を受信し、ただし、前記(Π、w)は鍵生成センターがデジタル署名方法MAを実行し前記IDに署名して得られた署名値であり、前記鍵生成センターは、署名公開鍵と秘密鍵のペア(P、ms)をランダムに生成し、事前署名Πを生成して、少なくともΠ、IDを含むハッシュダイジェストを署名割当Rとして生成し、最後に署名値の第2部分wを生成し、鍵生成センターは、暗号化システムの公開パラメータとしてPを使用するステップと、
前記P、ID、T、nおよびXを使用して署名キーペア(PX、S)を算出するステップと、
Sを署名秘密鍵として使用しデジタル署名方法MBを実行してメッセージMに署名し、署名値Uを生成し、(U、PX)をメッセージMに対する署名値として署名検証端末に送信し、またはUをメッセージMに対する署名値として署名検証端末に送信し、PXを公開し、ただし、メッセージMに対する署名の過程中、Mを入力とする必要がある演算ではRとMの関連を入力として使用するステップと、
前記署名検証端末によってメッセージMの署名を署名検証し、ただし、前記署名検証端末はPXを取得し、前記P、ID、PXからSに対応する公開鍵Qを計算し、前記デジタル署名方法MBによる署名検証過程によって、Uが公開鍵Qに対応する秘密鍵のメッセージMに対する有効な署名であるかどうかを検証し、ただし、署名検証過程中、Mを入力とする必要がある演算では、RとMの関連を入力として使用するステップと、を含むデジタル署名方法を提供している。
【0005】
さらに、前記デジタル署名方法MAは離散対数問題に基づく署名方法であり、前記鍵生成センターは、離散対数問題に基づいて構築され、その選択次数は、qの巡回グループの生成元Gとグループ中の1つのランダム要素[o]Gであり、ただし、[o]Gは、o個のGが巡回グループの演算ルールに従ってo回加算演算されることを表し、
前記署名公開鍵と秘密鍵のペア(P、ms)中のmsは、鍵生成センターによってランダムに生成された整数msであり、0<ms<qを満たし、前記P=<G、H=[ms]G>である。
【0006】
さらに、前記の前記P、ID、T、n及びXを使用して署名キーペア(PX、S)を算出するステップの前に、
署名端末は、前記nを使用して前記鍵生成センターによって標準の非対称暗号化アルゴリズムで暗号化されたwを含む情報を復号化し、ただし、前記標準の非対称暗号化アルゴリズムでwを含む情報を暗号化する場合、使用される暗号化公開鍵はXであるステップを含む。
さらに、前記署名端末によってランダムによってnとXのキーペアを生成する方法は、
署名端末はランダムに整数nを生成し、0<n<qを満たし、X=[n]Gを計算することを含む。
【0007】
さらに、前記の鍵生成センターによって生成された前記署名端末の識別IDに対応する部分署名秘密鍵T=(Π、w)を受信するステップは、具体的に、
鍵生成センターによってランダムに整数kを生成し、0<k<q、またはk=HASH(F(ID、他の情報Ι)、ms)modqを計算し、ただし、他の情報Iには、H、Xが含まれ、F操作はハッシュ演算または文字列連結であり、ただし、HASH(F(ID、他の情報Ι)、ms)modqはF(ID、他の情報Ι)とmsの連結値を要約計算し、連結順序はF(ID、他の情報Ι)||msまたはms||F(ID、他の情報Ι)、またはmsをキーペアF(ID、他の情報Ι)として使用しHMAC演算を実行すること、
鍵生成センターによって事前署名Π=[k]G±[n]Gを計算すること、
鍵生成センターによって署名割当R=HASH(F(ID、他の情報Α)、Π)を計算し、他の情報AにはHが含まれること、
鍵生成センターによって署名値の第2部分w=(k±R*ms)modqまたは(R*k±ms)modqを計算すること、
鍵生成センターによって部分署名秘密鍵T=(Π、w)を生成すること、
前記部分署名秘密鍵T=(Π、w)を受信することを含む。
さらに、前記の前記P、ID、T、nおよびXを使用して署名キーペア(PX、S)を算出するステップは、
w=(k±R*ms)modqである場合、S=(w±n)modq、PX=Π、署名キーペア(PX、S)を生成し、対応の公開鍵Q=Π±[R]Hであること、
w=(R*k±ms)modqである場合、S=(w±R*n)modq、PX=Π、署名キーペア(PX、S)を生成し、対応の公開鍵Q=[R]Π±Hであることを含む。
【0008】
さらに、前記の鍵生成センターによって生成された前記署名端末の識別IDに対応する部分署名秘密鍵T=(Π、w)を受信するステップは、具体的に、
鍵生成センターによってランダムに整数kを生成し、0<k<q、またはk=HASH(F(ID、他の情報Ι)、ms)modqを算出し、他の情報IにはH、Xが含まれ、F操作はハッシュ演算または文字列連結であり、ただし、HASH(F(ID、他の情報Ι)、ms)modqはF(ID、他の情報Ι)とmsの連結値を要約計算し、連結順序はF(ID、他の情報Ι)||msまたはms||F(ID、他の情報Ι)、またはmsをキーペアF(ID、他の情報Ι)として使用しHMAC演算を実行すること、
鍵生成センターによって事前署名Π=[k]Gを計算すること、
鍵生成センターによって署名割当R=HASH(F(ID、他の情報Α)、Π)modqを計算し、他の情報AにはX、Hが含まれること、
鍵生成センターによって署名値の第2部分w=(k±R*ms)modqまたは(R*k±ms)modqを計算すること、
鍵生成センターによって部分署名秘密鍵T=(Π、w)を生成すること、
前記部分署名秘密鍵T=(Π、w)を受信することを含む。
【0009】
さらに、前記の前記P、ID、T、nとXを使用して署名キーペア(PX、S)を算出するステップは、
w=(k±R*ms)modqである場合、S=(w±n)modq、PX=(Π、X)、署名キーペア(PX、S)を生成し、対応の公開鍵Q=Π±X±[R]Hであること、
w=(R*k±ms)modqである場合、S=(w±R*n)modq、PX=(Π、X)、署名キーペア(PX、S)を生成し、対応の公開鍵Q=[R](Π±X)±Hであることを含む。
【0010】
本発明は、ランダムにnとXのキーペアを生成し、その識別IDおよびXを鍵生成センターに送信するための生成送信ユニットと、
鍵生成センターによって生成された署名端末の識別IDに対応する部分署名秘密鍵T=(Π、w)を受信し、ただし、前記(Π、w)は鍵生成センターによってデジタル署名方法MAを実行し前記IDに署名して得られた署名値であり、前記鍵生成センターはランダムに署名公開鍵と秘密鍵のペア(P、ms)を生成し、事前署名Πを生成し、その後少なくともΠ、IDを含むハッシュダイジェストを署名割当Rとして生成し、最後に署名値の第2部分wを生成し、鍵生成センターはPを暗号化システムの公開パラメータとする受信ユニットと、
前記P、ID、T、nとXを使用して署名キーペア(PX、S)を算出するための算出ユニットと、
Sを署名秘密鍵としてデジタル署名方法MBを実行しメッセージMに署名して、署名値Uを生成し、(U、PX)をメッセージMに対する署名値として署名検証端末に送信し、またはUをメッセージMに対する署名値として署名検証端末に送信し、PXを公開し、ただし、メッセージMに署名する過程中にMを入力とする必要がある演算では、RとMの関連を入力として使用する署名送信ユニットと、
前記署名検証端末からメッセージMに対する署名を署名検証し、ただし、前記署名検証端末はPXを取得し、前記P、ID、PXからSに対応する公開鍵Qを計算し、前記デジタル署名方法MBの署名検証過程に従いUが公開鍵Qに対応する秘密鍵のメッセージMに対する有効署名であるかどうかを検証し、ただし、署名検証過程中にMを入力とする必要がある演算では、RとMの関連を入力として使用する署名検証ユニットとを含むデジタル署名装置をさらに提供している。
【0011】
さらに、前記デジタル署名方法MAは離散対数問題に基づく署名方法であり、前記鍵生成センターは離散対数問題に基づいて構築され、その選択次数はqの巡回グループの生成元Gおよびグループ中の1つのランダム要素[o]Gであり、ただし、[o]Gはo個のGが巡回グループの演算ルールに従いo回乗算演算されることを示し、
前記署名公開鍵と秘密鍵のペア(P、ms)中のmsは鍵生成センターによってランダムに生成された整数msであり、0<ms<qを満たし、前記P=<G、H=[ms]G>である。
【0012】
さらに、前記デジタル署名装置は、復号化ユニットをさらに含み、前記復号化ユニットは、署名端末が前記nを使用し前記鍵生成センターによって標準の非対称暗号化アルゴリズムで暗号化されたwを含む情報を復号化するために用いられ、ただし、前記標準の非対称暗号化アルゴリズムでwを含む情報を暗号化するときに、使用された暗号化公開鍵はXである。
【0013】
さらに、前記生成送信ユニットは、
ランダムに整数nを生成し、0<n<qを満たし、X=[n]Gを計算するための生成計算モジュールを含む。
【0014】
さらに、前記受信ユニットは、
鍵生成センターによってランダムに整数kを生成し、0<k<qを満たし、またはk=HASH(F(ID、他の情報Ι)、ms)modqを算出し、他の情報Iには巡回グループの生成情報、G、H、Xが含まれ、F操作はハッシュ演算または文字列連結であり、ただし、HASH(F(ID、他の情報Ι)、ms)modqはF(ID、他の情報Ι)とmsの連結値を要約計算し、連結順序はF(ID、他の情報Ι)||msまたはms||F(ID、他の情報Ι)、またはmsをキーペアF(ID、他の情報Ι)として使用しHMAC演算を実行する第1生成kモジュールと、
鍵生成センターによって事前署名Π=[k]G±[n]Gを計算するための第1計算Πモジュールと、
鍵生成センターによって署名割当R=HASH(F(ID、他の情報Α)、Π)を計算し、他の情報AにはHが含まれる第1計算Rモジュールと、
鍵生成センターによって署名値の第2部分w=(k±R*ms)modqまたは(R*k±ms)modqを計算するための第1計算wモジュールと、
鍵生成センターによって部分署名秘密鍵T=(Π、w)を生成するための第1生成モジュールと、
前記部分署名秘密鍵T=(Π、w)を受信するための第1受信モジュールとを含む。
さらに、前記算出ユニットは、第1計算生成モジュールを含み、
前記第1計算生成モジュールは、w=(k±R*ms)modqである場合、S=(w±n)modq、PX=Π、署名キーペア(PX、S)を生成し、対応の公開鍵Q=Π±[R]Hであり、w=(R*k±ms)modqである場合、S=(w±R*n)modq、PX=Π、署名キーペア(PX、S)を生成し、対応の公開鍵Q=[R]Π±Hである。
【0015】
さらに、前記受信ユニットは、
鍵生成センターによってランダムに整数kを生成し、0<k<qを満たし、またはk=HASH(F(ID、他の情報Ι)、ms)modqを算出し、他の情報IにはH、Xが含まれ、F操作はハッシュ演算または文字列連結であり、ただし、HASH(F(ID、他の情報Ι)、ms)modqはF(ID、他の情報Ι)とmsの連結値を要約計算し、連結順序はF(ID、他の情報Ι)||msまたはms||F(ID、他の情報Ι)、またはmsをキーペアF(ID、他の情報Ι)として使用しHMAC演算を実行する第2生成kモジュールと、
鍵生成センターによって事前署名Π=[k]Gを計算するための第2計算Πモジュールと、
鍵生成センターによって署名割当R=HASH(F(ID、他の情報Α)、Π)modqを計算し、他の情報AにはX、Hが含まれる第2計算Rモジュールと、
鍵生成センターによって署名値の第2部分w=(k±R*ms)modqまたは(R*k±ms)modqを計算するための第2計算wモジュールと、
鍵生成センターによって部分署名秘密鍵T=(Π、w)を生成するための第2生成モジュールと、
前記部分署名秘密鍵T=(Π、w)を受信するための第2受信モジュールと、を含む。
【0016】
さらに、前記算出ユニットは、第2計算生成モジュールを含み、
前記第2計算生成モジュールは、w=(k±R*ms)modqである場合、S=(w±n)modq、PX=(Π、X)、署名キーペア(PX、S)を生成し、対応の公開鍵Q=Π±X±[R]Hであり、w=(R*k±ms)modqである場合、S=(w±R*n)modq、PX=(Π、X)、署名キーペア(PX、S)を生成し、対応の公開鍵Q=[R](Π±X)±Hである。
【0017】
本発明は、署名端末、鍵生成センターおよび署名検証端末を含み、
前記署名端末によってランダムにnとXのキーペアを生成し、IDおよびXを前記鍵生成センターに送信し、
前記鍵生成センターによって予め設定されたデジタル署名方法MAで識別IDに署名し、識別IDに署名し、その署名過程には、前記鍵生成センターによってランダムに署名公開鍵と秘密鍵のペア(P、ms)を生成し、事前署名Πを生成し、少なくともΠ、IDを含むハッシュダイジェストを署名割当Rとして生成し、最後に署名値の第2部分wを生成し、両部分を含む署名値(Π、w)を得て、前記署名値を部分署名秘密鍵T=(Π、w)とし、前記部分署名秘密鍵Tを前記署名端末に送信し、鍵生成センターはまたPを暗号化システムの公開パラメータとすることが含まれ、
前記署名端末は前記P、ID、T、nとXを使用して署名キーペア(PX、S)を算出し、Sを署名秘密鍵としてデジタル署名方法MBでメッセージMに署名し、署名値Uを生成し、(U、PX)をメッセージMに対するID署名値として署名検証端末に送信し、またはUをメッセージMに対する署名値として署名検証端末に送信し、PXを公開し、ただし、メッセージMに対する署名過程中にMを入力とする必要がある演算では、RとMの関連を入力として使用し、
前記署名検証端末はメッセージMに対する署名を署名検証し、その署名検証過程には、PXを取得し、前記P、ID、PXからSに対応する公開鍵Qを計算し、前記デジタル署名方法MBの署名検証過程に従いUが公開鍵Qに対応する秘密鍵のメッセージMに対する有効署名であるかどうかを検証し、ただし、署名検証過程中にMを入力とする必要がある演算では、RとMの関連を入力として使用することが含まれるデジタル署名システムをさらに提供している。
【発明の効果】
【0018】
本発明のデジタル署名方法、装置及びシステムは、EC-Schnorrに基づくデジタル署名アルゴリズムを鍵生成センターの署名アルゴリズムとして使用し、ユーザに対応する部分署名秘密鍵Tを生成し、ECDSAなどの標準のデジタル署名アルゴリズムを使用して、メッセージMに署名する。署名秘密鍵Tの第2部分wを生成する計算中に、署名割当Rを使用し、署名割当Rは少なくとも事前署名Πおよび署名端末の識別IDを含むハッシュダイジェストであり、メッセージMに署名する場合、Mを入力とする必要がある演算では、RとMの関連を入力として使用し、署名検証過程中に同様に元々Mを入力とする必要がある演算過程中にRとMの関連を入力とすることにより、署名のセキュリティが向上し、本発明は、1つのメカニズムに関連する2つの署名アルゴリズムにより、構築された完全アルゴリズムが既知の攻撃に効果的に抵抗できるのを保証することができる。
【図面の簡単な説明】
【0019】
図1図1は本発明の一実施例のデジタル署名方法の概略フローチャートである。
図2図2は本発明の一実施例のデジタル署名方法中のステップS2の概略フローチャートである。
図3図3は本発明の別の実施例のデジタル署名方法中のステップS2の概略フローチャートである。
図4図4は本発明の一実施例のデジタル署名装置の概略構造のブロック図である。
図5図5は本発明の一実施例の生成送信ユニットの概略構造ブロック図である。
図6図6は本発明の一実施例の受信ユニットの概略構造ブロック図である。
図7図7は本発明の別の実施例の受信ユニットの概略構造ブロック図である。
図8図8は本発明の一実施例のデジタル署名システムの概略構造ブロック図である。
【発明を実施するための形態】
【0020】
実施例および図面を参照しながら本発明の目的達成、機能特徴及び利点をさらに説明する。
【0021】
本明細書に記載される特定の実施例は、本発明を解釈するためにのみ使用され、本発明を限定することを意図するものではないことを留意されたい。
【0022】
図1を参照すると、本発明の実施例は、以下のステップを含むデジタル署名方法を提供している。
【0023】
S1、署名端末によってnとXのキーペアをランダムに生成し、それらの識別IDとXを前記鍵生成センターに送信する。
【0024】
ステップS1では、前記署名端末は携帯電話、コンピューター、PDAなどのスマートデバイスである。前記鍵生成センターは鍵管理センターであり、公開鍵インフラストラクチャ中の1つの重要な構成部分であり、鍵の生成、保存、バックアップ、更新、回復、クエリなどの鍵サービスを提供し、分布式企業応用環境中の大規模暗号化技術の適用によりもたらされる鍵管理問題を解決することができる。前記識別IDは署名端末に対応するIDであり、1つの識別IDは1つの署名端末に一意に対応する。
【0025】
S2、鍵生成センターによって生成され前記署名端末の識別IDに対応する部分署名秘密鍵T=(Π、w)を受信し、ただし、前記(Π、w)は鍵生成センターがデジタル署名方法MAを実行し前記IDに署名して得られた署名値であり、前記鍵生成センターは、署名公開鍵と秘密鍵のペア(P、ms)をランダムに生成し、事前署名Πを生成して、少なくともΠ、IDを含むハッシュダイジェストを署名割当Rとして生成し、最後に署名値の第2部分wを生成し、鍵生成センターは、暗号化システムの公開パラメータとしてPを使用する。
【0026】
ステップS2では、前記デジタル署名方法MAは離散対数問題に基づく署名方法である。前記鍵生成センターは離散対数問題に基づいて構築され、その選択次数はqの巡回グループの生成元Gとグループ中の1つのランダム要素[o]Gであり、ただし、[o]Gはo個のGが巡回グループの演算ルールに従いk回乗算演算されることを示す。前記公開されたシステムパラメータP、識別ID、PXにより、Sを秘密キーに対応する公開鍵Q=[S]Gとして算出することができる。前記署名公開鍵と秘密鍵のペア(P、ms)中のmsは鍵生成センターによってランダムに生成された整数msであり、0<ms<qを満たし、前記P=<G、H=[ms]G>である。本ステップでは、部分署名秘密鍵Tの第2部分wには署名割当R(少なくともΠ、IDを含むハッシュダイジェスト)が含まれ、後続の署名過程中に、署名割当Rを追加することで署名のセキュリティを向上できる。
【0027】
S3、前記P、ID、T、nとXを使用して署名キーペア(PX、S)を算出する。
【0028】
ステップS3の前に、署名端末は、前記nを使用して前記鍵生成センターによって標準の非対称暗号化アルゴリズムで暗号化されたwを含む情報を復号化し、ただし、前記標準の非対称暗号化アルゴリズムでwを含む情報を暗号化する場合、使用される暗号化公開鍵はXであるステップを含む。つまり、鍵生成センターは署名端末に送信された部分署名秘密鍵T=(Π、w)を暗号化処理し、主にwを含む情報を暗号化し、その暗号化方法は標準の非対称暗号化アルゴリズム、例えばECIESなどの暗号化アルゴリズムである。
【0029】
S4、Sを署名秘密鍵として使用しデジタル署名方法MBを実行してメッセージMに署名し、署名値Uを生成し、(U、PX)をメッセージMに対する署名値として署名検証端末に送信し、またはUをメッセージMに対する署名値として署名検証端末に送信し、PXを公開し、ただし、メッセージMに対する署名の過程中、Mを入力とする必要がある演算ではRとMの関連を入力として使用する。
【0030】
ステップS4では、メッセージMに署名する過程中にMを入力とする必要がある演算では、RとMの関連を入力として使用することで、署名のセキュリティを向上できる。
【0031】
S5、前記署名検証端末によってメッセージMの署名を署名検証し、ただし、前記署名検証端末はPXを取得し、前記P、ID、PXからSに対応する公開鍵Qを計算し、前記デジタル署名方法MBによる署名検証過程によって、Uが公開鍵Qに対応する秘密鍵のメッセージMに対する有効な署名であるかどうかを検証し、ただし、署名検証過程中、Mを入力とする必要がある演算では、RとMの関連を入力として使用する。
【0032】
ステップS5では、署名検証中に同様にMを入力とする必要がある演算では、RとMの関連を入力として使用することで、デジタル署名のセキュリティを向上できる。
【0033】
本実施例では、前記署名端末によってランダムにnとXのキーペアを生成する方法は、署名端末によってランダムに整数nを生成し、0<n<qを満たし、X=[n]Gを計算することを含む。
【0034】
図2を参照すると、本実施例では、前記の鍵生成センターによって生成された前記署名端末の識別IDに対応する部分署名秘密鍵T=(Π、w)を受信するステップS2は、具体的に、以下のステップを含む。
【0035】
S201、鍵生成センターによってランダムに整数kを生成し、0<k<qを満たし、またはk=HASH(F(ID、他の情報Ι)、ms)modqを算出し、他の情報IにはH、Xが含まれ、F操作はハッシュ演算または文字列連結であり、ただし、HASH(F(ID、他の情報Ι)、ms)modqはF(ID、他の情報Ι)とmsの連結値を要約計算し、連結順序はF(ID、他の情報Ι)||msまたはms||F(ID、他の情報Ι)、またはmsをキーペアF(ID、他の情報Ι)として使用しHMAC演算を実行する。
【0036】
S202、鍵生成センターによって事前署名Π=[k]G±[n]Gを計算する。
【0037】
S203、鍵生成センターによって署名割当R=HASH(F(ID、他の情報Α)、Π)を計算し、他の情報AにはHが含まれる。
【0038】
S204、鍵生成センターによって署名値の第2部分w=(k±R*ms)modqまたは(R*k±ms)modqを計算する。
【0039】
S205、鍵生成センターによって部分署名秘密鍵T=(Π、w)を生成する。
【0040】
S206、前記部分署名秘密鍵T=(Π、w)を受信する。
【0041】
本実施例では、前記の前記P、ID、T、nとXを使用して署名キーペア(PX、S)を算出するステップS3は、以下のステップを含む。
【0042】
S301、w=(k±R*ms)modqである場合、S=(w±n)modq、PX=Π、署名キーペア(PX、S)を生成し、対応の公開鍵Q=Π±[R]Hである。
【0043】
S302、w=(R*k±ms)modqである場合、S=(w±R*n)modq、PX=Π、署名キーペア(PX、S)を生成し、対応の公開鍵Q=[R]Π±Hである。
【0044】
図3を参照すると、別の実施例では、前記の鍵生成センターによって生成された前記署名端末の識別IDに対応する部分署名秘密鍵T=(Π、w)を受信するステップS2は、具体的に、以下のステップを含む。
【0045】
S211、鍵生成センターによってランダムに整数kを生成し、0<k<qを満たし、またはk=HASH(F(ID、他の情報Ι)、ms)modqを算出し、他の情報IにはH、Xが含まれ、F操作はハッシュ演算または文字列連結であり、ただし、HASH(F(ID、他の情報Ι)、ms)modqはF(ID、他の情報Ι)とmsの連結値を要約計算し、連結順序はF(ID、他の情報Ι)||msまたはms||F(ID、他の情報Ι)、またはmsをキーペアF(ID、他の情報Ι)として使用しHMAC演算を実行する。
【0046】
S212、鍵生成センターによって事前署名Π=[k]Gを計算する。
【0047】
S213、鍵生成センターによって署名割当R=HASH(F(ID、他の情報Α)、Π)modqを計算し、他の情報AにはX、Hが含まれる。
【0048】
S214、鍵生成センターによって署名値の第2部分w=(k±R*ms)modqまたは(R*k±ms)modqを計算する。
【0049】
S215、鍵生成センターによって部分署名秘密鍵T=(Π、w)を生成する。
【0050】
S216、前記部分署名秘密鍵T=(Π、w)を受信する。
【0051】
本実施例では、前記の前記P、ID、T、nとXを使用して署名キーペア(PX、S)を算出するステップS3は、以下のステップを含む。
【0052】
S311、w=(k±R*ms)modqである場合、S=(w±n)modq、PX=(Π、X)、署名キーペア(PX、S)を生成し、対応の公開鍵Q=Π±X±[R]Hである。
【0053】
S312、w=(R*k±ms)modqである場合、S=(w±R*n)modq、PX=(Π、X)、署名キーペア(PX、S)を生成し、対応の公開鍵Q=[R](Π±X)±Hである。
【0054】
本発明は、さらに第1の具体的な実施例を提供し、その署名方法はSM2に基づく署名方法であり、具体的に以下のステップを含む。
【0055】
S110、署名端末によってランダムに整数nを生成し、0<n<qを満たし、X=[n]Gを計算し、その後前記Xおよびその自身の識別IDを鍵生成センターに送信する。
【0056】
S120、鍵生成センターによってEC-Schnorr署名アルゴリズムを署名方法MAとして選択する。SM2標準で規定された楕円曲線E:Y^2=X^3+a*X+bを選択し、次数qのポイントグループを巡回グループとし、ランダムに生成元Gを選択し、ランダムに整数msを生成し、0<ms<qを満たし、H=[ms]Gを計算し、システムパラメータP=<G、H=[ms]G>とする。
【0057】
鍵生成センターによってIDに対応する部分署名秘密鍵Tを生成するステップは、以下のとおりである。
A.鍵生成センターによってランダムに整数kを生成し、0<k<qを満たす。
B.鍵生成センターによって事前署名Π=[k]G+[n]Gを計算する。
C.鍵生成センターによってZ=SM3(ID_LEN||ID||a||b||xG||yG||xQ||yQ)を計算し、署名割当値R=SM3(Z、xΠ||yΠ)modqを計算し、ただし、ID_LENはIDの長さであり、xG、yG等はG点等に対応するx軸、y軸の値である。
D.鍵生成センターによって署名値の第2部分w=(k-R*ms)modqを計算し、Qに対応する計算過程はQ=Π-[R]Hである。
E.鍵生成センターによって部分署名秘密鍵T=(Π、w)を生成する。
【0058】
S130、署名端末によってS=(w+n)modqを計算し、PX=Πとし、署名キーペア(Π、S)を生成し、SM2アルゴリズムをMBとしてメッセージMに署名するステップは、以下のとおりである。
A.Z=SM3(ID_LEN||ID||a||b||xG||yG||xQ||yQ)を計算し、R=SM3(Z、xΠ||yΠ)modqである。
B.e=SM3(R||M)を計算する。
C.ランダムに整数zを生成し、0<z<qを満たす。
D.Λ=[z]Gを計算する。
E.r=(e+xΛ)modq、w=(z-r*S)/(S+1)modq、SM2署名U=(r、w)を計算する。
F.ID署名(U=(r、w)、Π)を生成する。
【0059】
S140、署名検証端末によってIDから生成されたメッセージMに対する署名(U=(r、w)、Π)の正確性を検証するステップは、以下のとおりである。
A.Z=SM3(ID_LEN||ID||a||b||xG||yG||xQ||yQ)、R=SM3(Z、xΠ||yΠ)modqを計算する。
B.e=SM3(R||M)を計算する。
C.Q=Π-[R]Hを計算する。
D.t=(r+w)modqを計算する。
E.V=[w]G+[t]Qを計算する。
F.h=(e+xV)modqを計算する。
G.hがrと等しいかどうかを確認し、等しい場合、署名が正確であり、等しくない場合署名が正確ではない。
【0060】
本発明は、さらに第2の具体的な実施例を提供し、その署名方法はECDSAに基づく署名方法であり、具体的に以下のステップを含む。
【0061】
S210、署名端末によってランダムに整数nを生成し、0<n<qを満たし、X=[n]Gを計算し、その後前記Xおよびその自身の識別IDを鍵生成センターに送信する。
【0062】
S220、鍵生成センターによってEC-Schnorr署名アルゴリズムを署名方法MAとして選択する。SM2標準で規定された楕円曲線E:Y^2=X^3+a*X+bを選択し、次数qのポイントグループを巡回グループとし、ランダムに生成元Gを選択し、ランダムに整数msを生成し、0<ms<qを満たし、H=[ms]Gを計算し、システムパラメータP=<G、H=[ms]G>とする。
【0063】
鍵生成センターによってIDに対応する部分署名秘密鍵Tを生成するステップは、以下のとおりである。
A.鍵生成センターによってランダムに整数kを生成し、0<k<qを満たす。
B.鍵生成センターによって事前署名Π=[k]G+[n]Gを計算する。
C.鍵生成センターによってZ=SHA256(ID_LEN||ID||a||b||xG||yG||xQ||yQ)を計算し、署名割当値R=SHA256(Z、xΠ||yΠ)modqを計算し、ただし、ID_LENはIDの長さであり、xG、yG等はG点等に対応するx軸、y軸の値を示し、SHA256(A、B)はSHA256アルゴリズムを使用してAとBの関連値を計算する要約である。関連方式はA||BまたはB||Aである。
D.鍵生成センターによって署名値の第2部分w=(k+R*ms)modqを計算し、Qに対応する計算過程はQ=Π+[R]Hである。
E.鍵生成センターによって部分署名秘密鍵T=(Π、w)を生成する。
【0064】
S230、署名端末によってS=(w+n)modqを計算し、PX=Πとし、署名キーペア(Π、S)を生成し、ECDSAアルゴリズムをMBとしてメッセージMに署名するステップは、以下のとおりである。
A.Z=SHA256(ID_LEN||ID||a||b||xG||yG||xQ||yQ)、R=SHA256(Z、xΠ||yΠ)modqを計算する。
B.e=SHA256(R||M)を計算する。
C.ランダムに整数zを生成し、0<z<qを満たす。
D.Λ=[z]Gを計算する。
E.r=xΛmodq、w=(r*(S+n)+e)/zmodq、ECDSA署名U=(r、w)を計算する。
F.ID署名(U=(r、w)、Π)を生成する。
【0065】
S240、署名検証端末によってIDから生成されたメッセージMに対する署名(U=(r、w)、Π)の正確性を検証するステップは、以下のとおりである。
A.Z=SHA256(ID_LEN||ID||a||b||xG||yG||xQ||yQ)、R=SHA256(Z、xΠ||yΠ)modqを計算する。
B.Q=Π+[R]Hを計算する。
C.e=SHA256(R||M)を計算する。
D.u=e/wmodq、v=r/wを計算する。
E.V=[u]G+[v]Qを計算する。
F.h=xVmodqを計算する。
G.hがrと等しいかどうかを確認し、等しい場合、署名が正確であり、等しくない場合、署名が正確ではない。
【0066】
本発明は、さらに第3の具体的な実施例を提供し、その署名方法はECDSAに基づく署名方法であり、具体的に、以下のステップを含む。
【0067】
S310、署名端末によってランダムに整数nを生成し、0<n<qを満たし、X=[n]Gを計算し、その後前記Xおよびその自身の識別IDを鍵生成センターに送信する。
【0068】
S320、鍵生成センターによってEC-Schnorr変形署名アルゴリズムを署名方法MAとして選択する。SM2標準で規定された楕円曲線E:Y^2=X^3+a*X+bを選択し、次数qのポイントグループを巡回グループとし、ランダムに生成元Gを選択し、ランダムに整数msを生成し、0<ms<qを満たし、H=[ms]Gを計算し、システムパラメータP=<G、H=[ms]G>とする。
【0069】
鍵生成センターによってIDに対応する部分署名秘密鍵Tを生成するステップは、以下のとおりである。
A.鍵生成センターによってk=SHA256(ID||G||H||[n]G、ms)を計算する。
B.鍵生成センターによって事前署名Π=[k]G+[n]Gを計算する。
C.鍵生成センターによってZ=SHA256(xG||yG||xQ||yQ||ID)を計算し、署名割当値R=SHA256(Z、xΠ||yΠ)modqを計算し、ただし、xG、yG等はG点等に対応するx軸、y軸の値を示し、SHA256(A、B)はSHA256アルゴリズムを使用してAとBの関連値を計算する要約である。関連方式はA||BまたはB||Aである。
D.鍵生成センターによって署名値の第2部分w=(R*k+ms)modqを計算し、Qに対応する計算過程はQ=Π+[R]Hである。
E.鍵生成センターによって部分署名秘密鍵T=(Π、w)を生成する。
F.鍵生成センターによってXを公開鍵とし、ECIESを使用してwを暗号化し暗号文Cを出力する。
G.署名端末によってnを秘密鍵として使用しECIES復号化方法に従ってCを復号化してwを得る。
【0070】
S330、署名端末によってS=(w+R*n)modqを計算し、PX=Πとし、署名キーペア(Π、S)を生成し、ECDSAアルゴリズムをMBとしてメッセージMに署名するステップは、以下のとおりである。
A.Z=SHA256(xG||yG||xQ||yQ||ID)、R=SHA256(Z、xΠ||yΠ)modqを計算する。
B.e=SHA256(R||M)を計算する。
C.ランダムに整数zを生成し、0<z<qを満たす。
D.Λ=[z]Gを計算する。
E.r=xΛmodq、w=(r*(S+R*n)+e)/zmodq、ECDSA署名U=(r、w)を計算する。
F.ID署名(U=(r、w)、Π)を生成する。
【0071】
S340、署名検証端末によってIDから生成されたメッセージMに対する署名(U=(r、w)、Π)の正確性を検証するステップは、以下のとおりである。
A.Z=SHA256(xG||yG||xQ||yQ||ID)、R=SHA256(Z、xΠ||yΠ)modqを計算する。
B.Q=[R]Π+Hを計算する。
C.e=SHA256(R||M)を計算する。
D.u=e/wmodq、v=r/wを計算する。
E.V=[u]G+[v]Qを計算する。
F.h=xVmodqを計算する。
G.hがrと等しいかどうかを確認し、等しい場合、署名が正確であり、等しくない場合、署名が正確ではない。
【0072】
本発明は、さらに第4の具体的な実施例を提供し、その署名方法はEC-SDSAに基づく署名方法であり、具体的には、以下のステップを含む。
【0073】
S410、署名端末によってランダムに整数nを生成し、0<n<qを満たし、X=[n]Gを計算し、その後前記Xおよびその自身の識別IDを鍵生成センターに送信する。
【0074】
S420、鍵生成センターによってEC-Schnorr署名アルゴリズムを署名方法MAとして選択する。SM2標準で規定された楕円曲線E:Y^2=X^3+a*X+bを選択し、次数qのポイントグループを巡回グループとし、ランダムに生成元Gを選択し、ランダムに整数msを生成し、0<ms<qを満たし、H=[ms]Gを計算し、システムパラメータP=<G、H=[ms]G>とする。
【0075】
鍵生成センターによってIDに対応するID秘密鍵Tを生成するステップは、以下のとおりである。
A.鍵生成センターによってランダムに整数kを生成し、0<k<qを満たす。
B.鍵生成センターによって事前署名Π=[k]G+[n]Gを計算する。
C.鍵生成センターによってZ=SHA256(ID_LEN||ID||a||b||xG||yG||xQ||yQ)を計算し、署名割当値R=SHA256(Z、xΠ||yΠ)modqを計算し、ただし、ID_LENはIDの長さであり、xG、yG等はG点等に対応するx軸、y軸の値を示す。
D.鍵生成センターによって署名値の第2部分w=(k+R*ms)modqを計算し、Qに対応する計算過程はQ=Π+[R]Hである。
E鍵生成センターによって部分署名秘密鍵T=(Π、w)を生成する。
【0076】
S430、署名端末によってS=(w+n)modq、PX=Πを計算し、署名キーペア(Π、S)を生成し、EC-SDSAアルゴリズムをMBとしてメッセージMに署名するステップは、以下のとおりである。
A.Z=SHA256(ID_LEN||ID||a||b||xG||yG||xQ||yQ)、R=SHA256(Z、xΠ||yΠ)modqを計算する。
B.ランダムに整数zを生成し、0<z<qを満たす。
C.Λ=[z]Gを計算する。
D.e=SHA256(Λ||R||M)を計算する。
E.r=e、w=(z+e*S)modq、EC-SDSA署名U=(r、w)を計算する。
F.署名U=(r、w)を生成する。
【0077】
S440、署名検証端末によってIDから生成されたメッセージMに対する署名U=(r、w)の正確性を検証するステップは、以下のとおりである。
A.IDが公開された署名公開鍵Πを取得する。
B.Z=SHA256(ID_LEN||ID||a||b||xG||yG||xQ||yQ)、R=SHA256(Z、xΠ||yΠ)modqを計算する。
C.Q=Π+[R]Hを計算する。
D.Λ=[w]G+[r]Qを計算する。
D.e=SHA256(Λ||R||M)を計算する。
G.eがrと等しいかどうかを確認し、等しい場合、署名が正確であり、等しくない場合、署名が正確ではない。
【0078】
本発明は、さらに第5の具体的な実施例を提供し、その署名方法はSM2に基づく署名方法であり、具体的に、以下のステップを含む。
【0079】
S510、署名端末によってランダムに整数nを生成し、0<n<qを満たし、X=[n]Gを計算し、その後前記Xおよびその自身の識別IDを鍵生成センターに送信する。
【0080】
S520、鍵生成センターによってEC-Schnorr署名アルゴリズムを署名方法MAとして選択する。SM2標準で規定された楕円曲線E:Y^2=X^3+a*X+bを選択し、次数qのポイントグループを巡回グループとし、ランダムに生成元Gを選択し、ランダムに整数msを生成し、0<ms<qを満たし、H=[ms]Gを計算し、システムパラメータP=<G、H=[ms]G>とする。
【0081】
鍵生成センターによってIDに対応する部分署名秘密鍵Tを生成するステップは、以下のとおりである。
A.鍵生成センターによってランダムに整数kを生成し、0<k<qを満たす。
B.鍵生成センターによって事前署名Π=[k]Gを計算する。
C.鍵生成センターによってZ=SM3(ID_LEN||ID||a||b||xG||yG||xQ||yQ||xX||yX)を計算し、署名割当値R=SM3(Z、xΠ||yΠ)modqを計算する。
D.鍵生成センターによって署名値の第2部分w=(k-R*ms)modqを計算し、Qに対応する計算過程はQ=Π+X-[R]Hである。
E.鍵生成センターによって部分署名秘密鍵T=(Π、w)を生成する。
【0082】
S530、署名端末によってS=(w+n)modq、PX=(Π、X)を計算し、署名キーペア((Π、X)、S)を生成し、SM2アルゴリズムをMBとしてメッセージMに署名するステップは、以下のとおりである。
A.Z=SM3(ID_LEN||ID||a||b||xG||yG||xQ||yQ||xX||yX)、R=SM3(Z、xΠ||yΠ)modqを計算する。
B.e=SM3(R||M)を計算する。
C.ランダムに整数zを生成し、0<z<qを満たす。
D.Λ=[z]Gを計算する。
E.r=(e+xΛ)modq、w=(z-r*S)/(S+1)modq、SM2署名U=(r、w)を計算する。
F.ID署名(U=(r、w)、(Π、X))を生成する。
【0083】
S540、署名検証端末によってIDから生成されたメッセージMに対する署名(U=(r、w)、(Π、X))の正確性を検証するステップは、以下のとおりである。
A.Z=SM3(ID_LEN||ID||a||b||xG||yG||xQ||yQ||xX||yX)、R=SM3(Z、xΠ||yΠ)modqを計算する。
B.e=SM3(R||M)を計算する。
C.Q=Π+X-[R]Hを計算する。
D.t=(r+w)modqを計算する。
E.V=[w]G+[t]Qを計算する。
F.h=(e+xV)modqを計算する。
G.hがrと等しいかどうかを確認し、等しい場合、署名が正確であり、等しくない場合、署名が正確ではない。
【0084】
本発明のデジタル署名方法は、メッセージMに対して署名アルゴリズムMBで規定された署名演算を実行する過程では、元のM関連演算の代わりに、鍵生成センターによって実行された署名アルゴリズムMA演算過程中計算された署名割当RとメッセージMを関連し、署名検証過程では同様に元のMを入力とする必要がある演算過程中でRとMの関連を入力とする。このような方法は、2つの署名アルゴリズムを組み合わせ過程中の攻撃を効果的に抵抗でき、署名方法のセキュリティを向上させる。
【0085】
本発明は、さらに第6の具体的な実施例を提供し、その署名方法はECDSA変形に基づく署名方法であり、具体的に、以下のステップを含む。
【0086】
S610、署名端末によってランダムに整数nを生成し、0<n<qを満たし、X=[n]Gを計算し、その後前記Xおよびその自身の識別IDを鍵生成センターに送信する。
【0087】
S620、鍵生成センターによってEC-Schnorr署名アルゴリズムを署名方法MAとして選択する。SM2標準で規定された楕円曲線E:Y^2=X^3+a*X+bを選択し、次数qのポイントグループを巡回グループとし、ランダムに生成元Gを選択し、ランダムに整数msを生成し、0<ms<qを満たし、H=[ms]Gを計算し、システムパラメータP=<G、H=[ms]G>とする。
【0088】
鍵生成センターによってIDに対応する部分署名秘密鍵Tを生成するステップは、以下のとおりである。
A.鍵生成センターによってランダムに整数kを生成し、0<k<qを満たす。
B.鍵生成センターによって事前署名Π=[k]G+[n]Gを計算する。
C.鍵生成センターによってZ=SHA256(xG||yG||xQ||yQ||ID)を計算し、署名割当値R=SHA256(Z、xΠ||yΠ)modqを計算し、ただし、xG、yG等はG点等に対応するx軸、y軸の値を示し、SHA256(A、B)はSHA256アルゴリズムを使用してAとBの関連値を計算する要約である。関連方式はA||BまたはB||Aである。
D.鍵生成センターによって署名値の第2部分w=(k+R*ms)modqを計算し、Qに対応する計算過程はQ=Π+[R]Hである。
E.鍵生成センターによって部分署名秘密鍵T=(Π、w)を生成する。
【0089】
S630、署名端末によってS=(w+R*n)modqを計算し、PX=Πとし、署名キーペア(Π、S)を生成し、ECDSAの変形アルゴリズムをMBとしてメッセージMに署名するステップは、以下のとおりである。
A.Z=SHA256(xG||yG||xQ||yQ||ID)、R=SHA256(Z、xΠ||yΠ)modqを計算する。
B.ランダムに整数zを生成し、0<z<qを満たす。
C.Λ=[z]Gを計算する。
D.r=xΛ、e=SHA256(r||||R||M)、w=(r*(S+R*n)+e)/zmodq、ECDSA署名U=(r、w)を計算する。
E.ID署名(U=(r、w)、Π)を生成する。
【0090】
S640、署名検証端末によってIDから生成されたメッセージMに対する署名(U=(r、w)、Π)の正確性を検証するステップは、以下のとおりである。
A.Z=SHA256(xG||yG||xQ||yQ||ID)、R=SHA256(Z、xΠ||yΠ)modqを計算する。
B.Q=[R]Π+Hを計算する。
C.e=SHA256(r||R||M)を計算する。
D.u=e/wmodq、v=r/wを計算する。
E.V=[u]G+[v]Qを計算する。
F.h=xVを計算する。
G.hがrと等しいかどうかを確認し、等しい場合、署名が正確であり、等しくない場合、署名が正確ではない。
【0091】
図4を参照すると、本発明は、前記デジタル署名方法に対応するデジタル署名装置を提供し、それは、
ランダムにnとXのキーペアを生成し、その識別IDおよびXを前記鍵生成センターに送信するための生成送信ユニット10と、
鍵生成センターによって生成された前記署名端末の識別IDに対応する部分署名秘密鍵T=(Π、w)を受信し、ただし、前記(Π、w)は鍵生成センターによってデジタル署名方法MAを実行し前記IDに署名して得られた署名値であり、前記鍵生成センターはランダムに署名公開鍵と秘密鍵のペア(P、ms)を生成し、事前署名Πを生成し、その後少なくともΠ、IDを含むハッシュダイジェストを署名割当Rとして生成し、最後に署名値の第2部分wを生成し、鍵生成センターはPを暗号化システムの公開パラメータとする受信ユニット20と、
前記P、ID、T、nとXを使用して署名キーペア(PX、S)を算出するための算出ユニット30と、
Sを署名秘密鍵としてデジタル署名方法MBを実行しメッセージMに署名して、署名値Uを生成し、(U、PX)をメッセージMに対する署名値として署名検証端末に送信し、またはUをメッセージMに対する署名値として署名検証端末に送信し、PXを公開し、ただし、メッセージMに署名する過程中にMを入力とする必要がある演算では、RとMの関連を入力として使用する署名送信ユニット40と、
前記署名検証端末からメッセージMに対する署名を署名検証し、ただし、前記署名検証端末はPXを取得し、前記P、ID、PXからSに対応する公開鍵Qを計算し、前記デジタル署名方法MBの署名検証過程に従いUが公開鍵Qに対応する秘密キーペアMの有効署名であるかどうかを検証し、ただし、署名検証過程中にMを入力とする必要がある演算では、RとMの関連を入力として使用する署名検証ユニット50とを含む。
【0092】
前記デジタル署名方法MAは離散対数問題に基づく署名方法であり、前記鍵生成センターは離散対数問題に基づいて構築され、その選択次数はqの巡回グループの生成元Gとグループ中の1つのランダム要素[o]Gであり、ただし、[o]Gはo個のGが巡回グループの演算ルールに従いo回乗算演算されることを示し、前記署名公開鍵と秘密鍵のペア(P、ms)中のmsは鍵生成センターによってランダムに生成された整数msであり、0<ms<qを満たし、前記P=<G、H=[ms]G>とする。
【0093】
本実施例では、前記デジタル署名装置は、復号化ユニット60をさらに含み、前記復号化ユニット60は、署名端末が前記nを使用し前記鍵生成センターによって標準の非対称暗号化アルゴリズムで暗号化されたwを含む情報を復号化するために用いられ、ただし、前記標準の非対称暗号化アルゴリズムでwを含む情報を暗号化するときに、使用された暗号化公開鍵はXである。
【0094】
図5を参照すると、本実施例では、前記生成送信ユニット10は、
ランダムに整数nを生成し、0<n<qを満たし、X=[n]Gを計算するためのものを含む。
【0095】
図6を参照すると、本実施例では、前記受信ユニット20は、
鍵生成センターによってランダムに整数kを生成し、0<k<qを満たし、またはk=HASH(F(ID、他の情報Ι)、ms)modqを算出し、他の情報Iには巡回グループの生成情報、G、H、Xが含まれ、F操作はハッシュ演算または文字列連結であり、ただし、HASH(F(ID、他の情報Ι)、ms)modqはF(ID、他の情報Ι)とmsの連結値を要約計算し、連結順序はF(ID、他の情報Ι)||msまたはms||F(ID、他の情報Ι)、またはmsをキーペアF(ID、他の情報Ι)として使用しHMAC演算を実行する第1生成kモジュール201と、
鍵生成センターによって事前署名Π=[k]G±[n]Gを計算するための第1計算Πモジュール202と、
鍵生成センターによって署名割当R=HASH(F(ID、他の情報Α)、Π)を計算し、他の情報AにはHが含まれる第1計算Rモジュール203と、
鍵生成センターによって署名値の第2部分w=(k±R*ms)modqまたは(R*k±ms)modqを計算するための第1計算wモジュール204と、
鍵生成センターによって部分署名秘密鍵T=(Π、w)を生成するための第1生成モジュール205と、
前記部分署名秘密鍵T=(Π、w)を受信するための第1受信モジュール206と、を含む。
【0096】
前記算出ユニット30は、第1計算生成モジュールを含み、w=(k±R*ms)modqである場合、S=(w±n)modq、PX=Π、署名キーペア(PX、S)を生成し、対応の公開鍵Q=Π±[R]Hであり、w=(R*k±ms)modqである場合、S=(w±R*n)modq、PX=Π、署名キーペア(PX、S)を生成し、対応の公開鍵Q=[R]Π±Hである。
【0097】
図7を参照すると、別の実施例では、前記受信ユニット20は、
鍵生成センターによってランダムに整数kを生成し、0<k<qを満たし、またはk=HASH(F(ID、他の情報Ι)、ms)modqを算出し、他の情報IにはH、Xが含まれ、F操作はハッシュ演算または文字列連結であり、ただし、HASH(F(ID、他の情報Ι)、ms)modqはF(ID、他の情報Ι)とmsの連結値を要約計算し、連結順序はF(ID、他の情報Ι)||msまたはms||F(ID、他の情報Ι)、またはmsをキーペアF(ID、他の情報Ι)として使用しHMAC演算を実行する第2生成kモジュール211と、
鍵生成センターによって事前署名Π=[k]Gを計算するための第2計算Πモジュール212と、
鍵生成センターによって署名割当R=HASH(F(ID、他の情報Α)、Π)modqを計算し、他の情報AにはX、Hが含まれる第2計算Rモジュール213と、
鍵生成センターによって署名値の第2部分w=(k±R*ms)modqまたは(R*k±ms)modqを計算するための第2計算wモジュール214と、
鍵生成センターによって部分署名秘密鍵T=(Π、w)を生成するための第2生成モジュール215と、
前記部分署名秘密鍵T=(Π、w)を受信するための第2受信モジュール216と、を含む。
【0098】
前記算出ユニット30は、第2計算生成モジュールを含み、w=(k±R*ms)modqである場合、S=(w±n)modq、PX=(Π、X)、署名キーペア(PX、S)を生成し、対応の公開鍵Q=Π±X±[R]Hであり、w=(R*k±ms)modqである場合、S=(w±R*n)modq、PX=(Π、X)、署名キーペア(PX、S)を生成し、対応の公開鍵Q=[R](Π±X)±Hである。
【0099】
本発明のデジタル署名装置は、メッセージMに対して署名アルゴリズムMBで規定された署名演算を実行する過程では、元のM関連演算の代わりに、鍵生成センターによって実行された署名アルゴリズムMA演算過程中計算された署名割当RとメッセージMを関連し、署名検証過程では同様に元のMを入力とする必要がある演算過程中でRとMの関連を入力とする。このような方法は、2つの署名アルゴリズムを組み合わせ過程中の攻撃を効果的に抵抗でき、署名方法のセキュリティを向上させる。
【0100】
図8を参照すると、本発明の実施例は、さらに前記デジタル署名方法に対応するデジタル署名システムを提供し、それは、署名端末100、鍵生成センター200および署名検証端末300を含み、
前記署名端末100ランダムにnとXのキーペアを生成し、IDおよびXを前記鍵生成センター200に送信し、
前記鍵生成センター200によって予め設定されたデジタル署名方法MAで識別IDに署名し、識別IDに署名し、その署名過程には、前記鍵生成センター200によってランダムに署名公開鍵と秘密鍵のペア(P、ms)を生成し、事前署名Πを生成し、少なくともΠ、IDを含むハッシュダイジェストを署名割当Rとして生成し、最後に署名値の第2部分wを生成し、両部分を含む署名値(Π、w)を得て、前記署名値を部分署名秘密鍵T=(Π、w)とし、前記部分署名秘密鍵Tを前記署名端末100に送信し、鍵生成センター200はまたPを暗号化システムの公開パラメータとすることが含まれ、
前記署名端末100は前記P、ID、T、nとXを使用して署名キーペア(PX、S)を算出し、Sを署名秘密鍵としてデジタル署名方法MBでメッセージMに署名し、署名値Uを生成し、(U、PX)をメッセージMに対するID署名値として署名検証端末300に送信し、またはUをメッセージMに対する署名値として署名検証端末300に送信し、PXを公開し、ただし、メッセージMに対する署名の過程中にMを入力とする必要がある演算では、RとMの関連を入力として使用し、
前記署名検証端末300はメッセージMに対する署名を署名検証し、その署名検証過程には、PXを取得し、前記P、ID、PXからSに対応する公開鍵Qを計算し、前記デジタル署名方法MBの署名検証過程に従いUが公開鍵Qに対応する秘密鍵のメッセージMに対する有効署名であるかどうかを検証し、ただし、署名検証過程中にMを入力とする必要がある演算では、RとMの関連を入力として使用する。
【0101】
本発明のデジタル署名システムは、メッセージMに対して署名アルゴリズムMBで規定された署名演算を実行する過程では、元のM関連演算の代わりに、鍵生成センターによって実行された署名アルゴリズムMA演算過程中計算された署名割当RとメッセージMを関連し、署名検証過程では同様に元のMを入力とする必要がある演算過程中でRとMの関連を入力とする。このような方法は、2つの署名アルゴリズムを組み合わせ過程中の攻撃を効果的に抵抗でき、署名方法のセキュリティを向上させる。
【0102】
上記の説明は、本発明の好ましい実施例に過ぎず、本発明の範囲を限定するものではなく、本発明の明細書および図面に基づいてなさられた等価構造や等価変更、あるいは他の相関技術分野での直接または間接的な応用は、すべて本発明の保護範囲に含まれることは明らかである。
図1
図2
図3
図4
図5
図6
図7
図8