(57)【特許請求の範囲】
【請求項１】
署名生成方法であって、生成モジュールと取得モジュールとを含む電子機器に適用され、前記方法は、
前記生成モジュールが、署名待ちのメッセージ及び前記電子機器の有する複数のアカウントアドレスの各々の特徴値に基づき、メッセージ要約を生成するステップであって、各アカウントアドレスの特徴値が前記アカウントアドレスに対して生成された乱数によって計算して得られたものである、ステップと、
前記取得モジュールが、前記複数のアカウントアドレスの各々について、前記アカウントアドレスの公開鍵及びサブ署名を取得するステップであって、各アカウントアドレスのサブ署名が前記アカウントアドレスに対して生成された乱数、前記メッセージ要約及び前記アカウントアドレスの秘密鍵によって計算して得られたものである、ステップと、
前記生成モジュールが、前記複数のアカウントアドレスの公開鍵に基づき、集約公開鍵を生成するステップであって、前記集約公開鍵の長さが前記複数の公開鍵を結合した長さより小さい、ステップと、
前記生成モジュールが、前記複数のサブ署名の合計値及び前記メッセージ要約に基づき、集約署名を生成するステップと、を含む方法。
【請求項２】
前記生成モジュールが、署名待ちのメッセージ及び複数のアカウントアドレスの特徴値に基づき、メッセージ要約を生成するステップは、
前記複数のアカウントアドレスの特徴値、署名待ちのメッセージ及び第１数値を取得するステップと、
前記複数のアカウントアドレスの特徴値及び前記第１数値に基づき、集約特徴値を生成するステップと、
前記集約特徴値、前記署名待ちのメッセージ及び所定の一方向ハッシュ関数に基づき、前記メッセージ要約を生成するステップと、を含む
請求項１に記載の方法。
【請求項３】
前記複数の特徴値及び前記第１数値に基づき、集約特徴値を生成するステップは、
前記複数の特徴値の積を計算し、前記複数の特徴値の積及び前記第１数値に基づき、集約特徴値を生成するステップを含む
請求項２に記載の方法。
【請求項４】
前記生成モジュールが、前記複数のアカウントアドレスの公開鍵に基づき、集約公開鍵を生成するステップは、
前記複数の公開鍵の積を計算し、前記複数の公開鍵の積及び前記第１数値に基づき、集約公開鍵を生成するステップを含む
請求項２に記載の方法。
【請求項５】
前記生成モジュールが、前記複数のサブ署名の合計値及び前記メッセージ要約に基づき、集約署名を生成するステップは、
前記複数のサブ署名に基づき、集約サブ署名を生成し、前記集約サブ署名及び前記メッセージ要約を結合し、結合して得られた結果を集約署名として確定するステップを含む
請求項１に記載の方法。
【請求項６】
前記電子機器がデータ共有システムにおけるクライアントデバイスであり、前記署名待ちのメッセージが各アカウントアドレスに対応する数値移転情報である
請求項１に記載の方法。
【請求項７】
前記電子機器がデータ共有システムにおけるクライアントデバイスであり、前記署名待ちのメッセージが取引完了条件を制限するための契約データである
請求項１に記載の方法。
【請求項８】
前記電子機器がデータ共有システムにおけるリーダーノードであり、前記複数のアカウントアドレスのうちの各アカウントアドレスが前記データ共有システムにおけるフォロワーノードであり、前記電子機器は送信モジュールを更に含み、
前記生成モジュールが、署名待ちのメッセージ及び複数のアカウントアドレスの特徴値に基づき、メッセージ要約を生成した後、前記方法は、更に、
前記送信モジュールが、前記メッセージ要約を前記データ共有システムにおけるフォロワーノードに送信するステップを含み、
前記取得モジュールが、前記複数のアカウントアドレスの各々について、前記アカウントアドレスの公開鍵及びサブ署名を取得するステップは、
各フォロワーノードから送信された公開鍵及びサブ署名を受信するステップを含み、
前記生成モジュールが、前記複数のサブ署名の合計値及び前記メッセージ要約に基づき、集約署名を生成した後、前記方法は、更に、
前記送信モジュールが、前記集約公開鍵及び前記集約署名を前記各フォロワーノードに送信するステップを含む
請求項１に記載の方法。
【請求項９】
署名生成方法であって、生成モジュールと取得モジュールとを含む電子機器に適用され、前記方法は、
前記生成モジュールが、乱数を取得し、前記乱数に基づき、特徴値を生成するステップと、
前記取得モジュールが、署名待ちのメッセージ、秘密鍵及び公開鍵を取得するステップと、
前記取得モジュールが、メッセージ要約を取得するステップであって、前記メッセージ要約が、署名集約者により前記署名待ちのメッセージ及び前記特徴値に基づいて計算して得られる、ステップと、
前記生成モジュールが、前記メッセージ要約、前記乱数及び前記秘密鍵に基づき、サブ署名を生成するステップと、を含む方法。
【請求項１０】
前記生成モジュールが、乱数を取得し、前記乱数に基づき、特徴値を生成するステップは、
第１数値p及び第２数値qを取得するステップであって、前記第１数値p及び前記第２数値qが素数であり、qが(p-1)の因子であり、p≧２５１２、q≧２１４０であることを満たすステップと、
生成底数ｇを取得するステップであって、ｇが、(gq-1)がpで整除できることを満たすステップと、
乱数を取得し、前記乱数の値範囲が(0,q)であるステップと、
前記乱数、前記生成底数及び前記第１数値に基づき、特徴値を生成するステップと、を含む
請求項９に記載の方法。
【請求項１１】
前記生成モジュールが、前記メッセージ要約、前記乱数及び前記秘密鍵に基づき、サブ署名を生成した後、更に、
前記電子機器がデータ共有システムにおけるフォロワーノードである場合、前記電子機器は送信モジュールを更に含み、前記方法は、
前記送信モジュールが、前記サブ署名及び前記公開鍵を前記署名集約者に送信するステップを含む
請求項９に記載の方法。
【請求項１２】
電子機器であって、
プロセッサと、
コンピュータプログラムを保存するように構成されるメモリと、を備え、
前記コンピュータプログラムは、前記プロセッサに、
署名待ちのメッセージ及び複数のアカウントアドレスの特徴値に基づき、メッセージ要約を生成するステップであって、各アカウントアドレスの特徴値が前記アカウントアドレスに対して生成された乱数によって計算して得られたものである、ステップと、
前記複数のアカウントアドレスの各々について、前記アカウントアドレスの公開鍵及びサブ署名を取得するステップであって、各アカウントアドレスのサブ署名が前記アカウントアドレスに対して生成された乱数、前記メッセージ要約及び前記アカウントアドレスの秘密鍵によって計算して得られたものである、ステップと、
前記複数のアカウントアドレスの公開鍵に基づき、集約公開鍵を生成するステップであって、前記集約公開鍵の長さが前記複数の公開鍵を結合した長さより小さい、ステップと、
前記複数のサブ署名の合計値及び前記メッセージ要約に基づき、集約署名を生成するステップと、
を含む方法を実行させる、前記電子機器。
【請求項１３】
前記コンピュータプログラムは、前記プロセッサに、
前記複数のアカウントアドレスの特徴値、署名待ちのメッセージ及び第１数値を取得するステップと、
前記複数のアカウントアドレスの特徴値及び前記第１数値に基づき、集約特徴値を生成するステップと、
前記集約特徴値、前記署名待ちのメッセージ及び所定の一方向ハッシュ関数に基づき、前記メッセージ要約を生成するステップと、
を更に実行させる、請求項１２に記載の電子機器。
【請求項１４】
前記コンピュータプログラムは、前記プロセッサに、
前記複数の特徴値の積を計算するステップと、
前記複数の特徴値の積及び前記第１数値に基づき、集約特徴値を生成するステップと、
を更に実行させる、請求項１３に記載の電子機器。
【請求項１５】
前記コンピュータプログラムは、前記プロセッサに、
前記複数の公開鍵の積を計算ステップと、
前記複数の公開鍵の積及び前記第１数値に基づき、集約公開鍵を生成するステップと、
を更に実行させる、請求項１３に記載の電子機器。
【請求項１６】
前記コンピュータプログラムは、前記プロセッサに、
前記複数のサブ署名に基づき、集約サブ署名を生成ステップと、
前記集約サブ署名及び前記メッセージ要約を結合し、結合して得られた結果を集約署名として確定するステップと、
を更に実行させる、請求項１２に記載の電子機器。
【請求項１７】
前記電子機器がデータ共有システムにおけるクライアントデバイスであり、前記署名待ちのメッセージが各アカウントアドレスに対応する数値移転情報である
請求項１２に記載の電子機器。
【請求項１８】
前記電子機器がデータ共有システムにおけるクライアントデバイスであり、前記署名待ちのメッセージが取引完了条件を制限するための契約データである
請求項１２に記載の電子機器。
【請求項１９】
前記電子機器がデータ共有システムにおけるリーダーノードであり、前記複数のアカウントアドレスのうちの各アカウントアドレスが前記データ共有システムにおけるフォロワーノードであり、
前記電子機器は、更に、前記メッセージ要約を前記データ共有システムにおけるフォロワーノードに送信するように構成される送受信機を備え、
前記送受信機は、更に、各フォロワーノードから送信された公開鍵及びサブ署名を受信することに用いられ、
前記コンピュータプログラムは、前記プロセッサに、更に、
前記集約公開鍵及び前記集約署名を前記各フォロワーノードに送信するステップを実行させる、
請求項１２に記載の電子機器。
【請求項２０】
コンピュータプログラムを記憶したコンピュータ可読記憶媒体であって、
前記コンピュータプログラムは、プロセッサに、
署名待ちのメッセージ及び複数のアカウントアドレスの特徴値に基づき、メッセージ要約を生成するステップであって、各アカウントアドレスの特徴値が前記アカウントアドレスに対して生成された乱数によって計算して得られたものである、ステップと、
前記複数のアカウントアドレスの各々について、前記アカウントアドレスの公開鍵及びサブ署名を取得するステップであって、各アカウントアドレスのサブ署名が前記アカウントアドレスに対して生成された乱数、前記メッセージ要約及び前記アカウントアドレスの秘密鍵によって計算して得られたものである、ステップと、
前記複数のアカウントアドレスの公開鍵に基づき、集約公開鍵を生成するステップであって、前記集約公開鍵の長さが前記複数の公開鍵を結合した長さより小さい、ステップと、
前記複数のサブ署名の合計値及び前記メッセージ要約に基づき、集約署名を生成するステップと、
を実行させる、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
本願は、２０１７年１１月１０日に提出した中国特許出願第２０１７１１１０６７５０７号、発明の名称「署名生成方法、装置、端末及びサーバ」の優先権を主張し、その全内容が本願の一部として援用される。
【技術分野】
【０００２】
本願は情報技術分野に関し、特に署名生成方法、電子機器及び記憶媒体に関する。
【背景技術】
【０００３】
情報技術の継続的な発展に伴い、ブロックチェーンは新しい技術として発展して来ている。ブロックチェーンとは、暗号学を使用して関連付けて生じられた一連のブロックを指しており、ブロックチェーンにおける各ブロックのブロックデータがいずれも前の一つのブロックのブロックデータに関連付けられており、従って、ブロックデータを改ざんして不正行為をすることができず、それによりすべてのブロック上のブロックデータがオープン、透明的になることを確保できる。ブロックチェーンは多くのノードからなる１つのエンドツーエンドネットワークであり、ノード間のデータ交換がデジタル署名技術によって検証を行う。デジタル署名技術はデジタル暗号化によってデジタル情報を識別する技術である。いくつかの状況において、例えばある取引が複数の関係者のコンセンサスを必要とする時に、複数の関係者があるメッセージに対して署名を行い、このような署名方式はマルチ署名方式と称される。
【０００４】
関連技術において、マルチ署名方式の実現手段としては、仮にＮ個の署名者がいるとする場合、マルチ署名を行う時に、Ｎ個の異なる署名を１つの長署名に直列結合し、ブロックチェーンに保存し、署名検証時にＮ個の署名者の公開鍵を同時に有する必要があり、それによって長署名を検証し、Ｎが１より大きな整数である。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本願の実施例は署名検証の複雑度を低下させることのできる署名生成方法、電子機器及び記憶媒体を提供する。前記技術案は以下のとおりである。
【課題を解決するための手段】
【０００６】
一態様では、署名生成方法を提供し、前記方法は、
署名待ちのメッセージ及び複数の署名者の特徴値に基づき、メッセージ要約を生成し、各署名者の特徴値が前記署名者の乱数によって計算して得られたものであるステップと、
前記複数の署名者の公開鍵及びサブ署名を取得するステップであって、各署名者のサブ署名が前記署名者の乱数、前記メッセージ要約及び前記複数の署名者の秘密鍵によって計算して得られたものであるステップと、
前記複数の署名者の公開鍵に基づき、集約公開鍵を生成するステップであって、前記集約公開鍵の長さが前記複数の公開鍵を結合した長さより小さい、ステップと、
前記複数のサブ署名の合計値及び前記メッセージ要約に基づき、集約署名を生成するステップでと、を含む。
【０００７】
一態様では、署名生成方法を提供し、前記方法は、
乱数を取得し、前記乱数に基づき、特徴値を生成するステップと、
署名待ちのメッセージ、秘密鍵及び公開鍵を取得するステップと、
前記署名集約者により前記署名待ちのメッセージ及び前記特徴値に基づいて計算して得られるメッセージ要約を取得するステップと、
前記メッセージ要約、前記乱数及び前記秘密鍵に基づき、サブ署名を生成するステップと、を含む。
【０００８】
一態様では、署名生成装置を提供し、前記装置は、
署名待ちのメッセージ及び複数の署名者の特徴値に基づき、メッセージ要約を生成するように構成され、各署名者の特徴値が前記署名者の乱数によって計算して得られたものである第１生成モジュールと、
前記複数の署名者の公開鍵及びサブ署名を取得するように構成され、各署名者のサブ署名が前記署名者の乱数、前記メッセージ要約及び前記複数の署名者の秘密鍵によって計算して得られたものである取得モジュールと、
前記複数の署名者の公開鍵に基づき、集約公開鍵を生成するように構成され、前記集約公開鍵の長さが前記複数の公開鍵を結合した長さより小さい第２生成モジュールと、
前記複数のサブ署名の合計値及び前記メッセージ要約に基づき、集約署名を生成するように構成される第３生成モジュールと、を備える。
【０００９】
一態様では、署名生成装置を提供し、前記装置は、
乱数を取得し、前記乱数に基づき、特徴値を生成するように構成される第１生成モジュールと、
署名待ちのメッセージ、秘密鍵及び公開鍵を取得するように構成される第１取得モジュールと、
前記署名集約者により前記署名待ちのメッセージ及び前記特徴値に基づいて計算して得られるメッセージ要約を取得するように構成される第２取得モジュールと、
前記メッセージ要約、前記乱数及び前記秘密鍵に基づき、サブ署名を生成するように構成される第２生成モジュールと、を備える。
【００１０】
一態様では、端末を提供し、前記端末はプロセッサ及びメモリを備え、前記メモリに少なくとも１つの命令が記憶され、以上に記載の署名生成方法を実現するために、前記少なくとも１つの命令が前記プロセッサによりロード・実行される。
【００１１】
一態様では、サーバを提供し、前記サーバはプロセッサ及びメモリを備え、前記メモリに少なくとも１つの命令が記憶され、以上に記載の署名生成方法を実現するために、前記少なくとも１つの命令が前記プロセッサによりロード・実行される。
【００１２】
一態様では、コンピュータ可読記憶媒体を提供し、前記コンピュータ可読記憶媒体にコンピュータプログラムが記憶され、前記コンピュータプログラムがプロセッサにより実行されるとき、上記署名生成方法におけるいずれか１項に記載の方法ステップを実現する。
【発明の効果】
【００１３】
本願の実施例に係る技術案は以下の有益な効果を有する。複数の署名者のサブ署名によって集約署名を生成して、複数の署名者の公開鍵に基づいて集約公開鍵を生成し、得られた集約署名の長さが、複数のサブ署名を結合して得られたマルチ署名の長さより小さく、且つ集約公開鍵の長さが、複数の公開鍵を結合して得られた多重公開鍵の長さより小さいため、ネットワーク経由で集約署名及び集約公開鍵を伝送するとき、ネットワーク伝送負荷を軽減し、記憶時に記憶空間を節約し、且つ署名検証時に集約公開鍵及び集約署名を直接利用して署名待ちのメッセージを検証し、署名検証の複雑度を大幅に低下させる。
【図面の簡単な説明】
【００１４】
【図１】図１は本願の実施例に係る実施環境を示す図である。
【図２】図２は本願の実施例に係る署名を生成するフローチャートである。
【図３】図３は本願の実施例に係る複数のアカウントアドレスで振替を行うシーンを示す模式図である。
【図４】図４は本願の実施例に係る署名を生成するフローチャートである。
【図５】図５は本願の実施例に係る各ノードのコンセンサス過程の模式図である。
【図６】図６は本願の実施例に係る並列方式で署名を生成する模式図である。
【図７】図７は本願の実施例に係る署名を生成するフローチャートである。
【図８】図８は本願の実施例に係る複数の契約者が契約を開始する模式図である。
【図９】図９は本願の実施例に係る署名生成装置の構造模式図である。
【図１０】図１０は本願の実施例に係る署名生成装置の構造模式図である。
【図１１】図１１は本願の実施例に係る端末１１００の構造ブロック図である。
【図１２】図１２は本願の実施例に係るサーバの構造ブロック図である。
【発明を実施するための形態】
【００１５】
本願の実施例の技術案をより明確に説明するために、以下に実施例の記述において必要な図面を用いて簡単に説明を行うが、当然ながら、以下に記載する図面は単に本願の実施例の一例であって、当業者であれば、創造的な労力を要することなく、これらの図面に基づいて他の図面に想到しうる。
【００１６】
本願の目的、技術案及び利点をより明確にするために、以下に図面を参照しながら本願の実施形態を更に詳しく説明する。
【００１７】
図１に示されるのはデータ共有システムである。データ共有システム１００とは、ノードとノードとのデータを共有するためのシステムを指し、該データ共有システムは複数のノード１０１、１０２及び１０３を備えることができ、複数のノード１０１はデータ共有システムにおける各クライアントデバイスを指してもよく、情報及びデータを記憶するために、データ共有システムは１つ又は複数のブロックチェーンを設定することができる。各ノード１０１は通常動作を行う際に入力情報を受信して、受信された入力情報に基づいて該データ共有システムにおける共有データを維持することができる。
【００１８】
データ共有システムにおける情報交換を確保するために、データ共有システムにおける各ノード同士が情報接続を確立することができ、ノード同士が上記情報接続によって情報伝送を行うことができる。デジタル署名技術によって、ノード同士が通信して互いに信頼することができ、主に身元確認及び情報真実性、整合性の検証を実現する。例えば、データ共有システムにおける任意のノードが入力情報を受信した場合、当該ノードによる検証に成功した後、情報が他のノードにブロードキャストされる。ノード同士がコンセンサスを得るとき、ノードが署名を検証する必要があり、一定数のノードによる検証に成功すると、コンセンサスを得ることができる。コンセンサスを得た後、該入力情報が共有データとして記憶されることにより、データ共有システムにおけるすべてのノードに記憶されるデータを一致させる。データ共有システムが取引システムであってもよく、取引システムが金融取引システムを指す。取引システムは複数のノードを備えてもよく、各ノードが取引を行う際に帳簿データを生成して、帳簿データに基づいて該取引システムにおける共有帳簿を維持する。
【００１９】
ブロックチェーン技術の応用において、該取引をブロックチェーンに送信するために、ある取引は１つ以上のユーザーが署名する。その場合、マルチ署名技術を用いる必要があり、つまり、署名集約者が複数のユーザーの署名及び公開鍵に基づき、集約署名及び集約公開鍵を生成し、署名を検証する時に、集約署名及び集約公開鍵に基づいて署名後のメッセージを検証すればよい。実際の応用シーンにおいて、署名を生成する時に、複数の署名者が署名生成トリガー命令を受信した後、乱数を選択し、乱数に基づき、特徴値を生成する。署名集約者が署名待ちのメッセージ及び複数の署名者の特徴値に基づき、メッセージ要約を生成する。複数の署名者がメッセージ要約（該メッセージ要約は署名集約者が署名待ちのメッセージ及び特徴値に基づいて計算して得られたものである）を取得し、次に、メッセージ要約、乱数及び秘密鍵に基づき、サブ署名を生成する。署名集約者が複数の署名者の公開鍵及びサブ署名を取得する。次に、署名集約者が複数の署名者の公開鍵に基づき、集約公開鍵を生成する。署名集約者が複数のサブ署名（例えば、サブ署名の合計値）及びメッセージ要約に基づき、集約署名を生成する。
【００２０】
該データ共有システムにおけるクライアントデバイス及び各ノードは更に乱数、サブ署名、メッセージ要約、集約署名、集約公開鍵等を記憶するための少なくとも１種類のデータベースを有してもよい。
【００２１】
以下、３つの実施シーンによって本解決手段を詳しく説明する。
【００２２】
図２は本願の実施例に係る署名生成方法のフローチャートである。方法がデータ共有システムにおけるクライアントデバイスに適用され、且つ複数の署名者がクライアントデバイスに提供される複数のアカウントアドレスであることを例として、この場合、複数の署名者及び署名集約者が同じデータ共有システムにおける同じクライアントデバイスに位置し、つまり、複数の署名者及び署名集約者が同じ実施主体であり、署名待ちのメッセージが各アカウントアドレスに対応する支払金額及びいくつかの他の取引情報である。以下、各ステップを詳しく説明する。
【００２３】
２００において、クライアントデバイスが、署名生成命令を取得し、該署名生成命令が複数のアカウントアドレスから少なくとも１つのアカウントアドレスへ振替を行うこと、及び該複数のアカウントアドレスの支払金額を示すことに用いられる。
【００２４】
図３に示すように、あるユーザーが、複数のアカウントアドレスを有すると仮定し、この複数のアカウントアドレスの資産を１つ又は複数のターゲットアカウントアドレスへ振替する必要がある場合、該複数のアカウントが複数の署名者である。該ユーザーがクライアントデバイスを操作して取引を行うとき、クライアントデバイスが振替要求を受信し、振替要求に該取引における署名待ちのメッセージが含まれる。この場合、署名生成命令をトリガーし、クライアントデバイスに署名の生成を開始させる。署名待ちのメッセージには今回の振替要求そのもの又は今回の振替要求の支払アカウントとしてのアカウントアドレス、各アカウントアドレスの支払金額、及び受取アカウントとしてのアカウントアドレスが含まれてもよい。
【００２５】
２０１において、クライアントデバイスが、支払アカウントとしての複数のアカウントアドレスの複数の乱数を取得し、該複数の乱数に基づき、それぞれ該複数のアカウントアドレスの特徴値を生成する。
【００２６】
クライアントデバイスが署名生成命令を受信した後、クライアントデバイスにおける複数のアカウントアドレスを区別するために、クライアントデバイスが複数のアカウントアドレスに対して、各自の乱数を選択し、又は予め記憶された複数のアカウントアドレスの各自の乱数を取り出し、次に、該複数の乱数に基づき、該複数のアカウントアドレス各自の特徴値を生成する。
【００２７】
具体的に、１つのアカウントアドレスを例とすれば、該アカウントアドレスの実施主体がクライアントデバイスであり、ステップ２００は以下のステップ１〜ステップ４を含んでもよい。
【００２８】
ステップ１において、クライアントデバイスが該アカウントアドレスに対し素数である第１数値p及び第２数値qを取得し、qが(p-1)の因子であり、p≧２５１２、q≧２１４０であることを満たす。
【００２９】
クライアントデバイスが
【数１】
0006966572.tif 000002
の範囲から１つの素数を選択して、それを第１数値pとして確定し、
【数２】
0006966572.tif 000003
の範囲から１つの素数を選択して、それを第２数値qとして確定し、第１数値pと第２数値qを、qが(p-1)の因子であることを満たすようにする。上記方式以外に、クライアントデバイスは関連するデータベースから予め記憶された素数である第１数値
0006966572.tif 000004
及び第２数値qを取り出すこともでき、qが(p-1)の因子であり、p≧２５１２、q≧２１４０であることを満たす。
【００３０】
ステップ２において、生成底数gを取得し、(gq-1)がpで整除できる。
【００３１】
クライアントデバイスが１つの数値をランダムに選択して、それを生成底数gとして確定し、底数gを、(gq-1)がpで整除できるようにする。又は、クライアントデバイスが関連するデータベースから予め記憶された生成底数gを取り出し、生成底数gが、(gq-1)がpで整除できることを満たす。
【００３２】
ステップ３において、乱数を取得し、乱数の値範囲が(0,q)である。
【００３３】
クライアントデバイスが(0,q)の範囲から１つの数値をランダムに選択して、それを乱数として確定する。又は、クライアントデバイスが関連するデータベースから予め記憶された乱数を取り出し、該乱数が(0,q)の範囲内にある。
【００３４】
ステップ４において、乱数、生成底数及び第１数値に基づき、特徴値を生成する。
【００３５】
乱数、生成底数及び第１数値を取得した後、クライアントデバイスは下記の式（１）で該アカウントアドレスの特徴値を計算することができ、
R=gr(mod  p)            （１）
Rが特徴値を示し、rが乱数を示し、gが生成底数であり、pが第１数値である。
【００３６】
説明すべきことは、クライアントデバイスは支払アカウントとしての複数のアカウントアドレスに対して、いずれも上記ステップ１〜ステップ４で各自の特徴値を生成してもよく、ここで詳細な説明は省略する。生成過程は並列なものであってもよく、つまり、クライアントデバイスが複数のアカウントアドレスに対して、各自の乱数を同時に取得し、該複数の乱数に基づいてその該複数のアカウントアドレスに対して、各自の特徴値を生成する。生成過程は逐次なものであってもよく、つまり、クライアントデバイスがあるアカウントアドレスに対してその乱数を取得し、次に該乱数に基づいて該アカウントアドレスに対して、その特徴値を生成し、次に、クライアントデバイスが次のアカウントアドレスに対して、その乱数に基づいてその特徴値を生成し、すべてのアカウントアドレスに対し特徴値を生成するまで、該操作を終了し、ここで制限しない。
【００３７】
２０２において、クライアントデバイスが署名待ちのメッセージ及び複数のアカウントアドレスの特徴値を取得し、メッセージ要約を生成し、該署名待ちのメッセージが支払アカウントとしてのアカウントアドレス、各アカウントアドレスの支払金額及び受取アカウントとしてのアカウントアドレスを含む。
【００３８】
上記過程で各アカウントアドレスに対しいずれも各自の特徴値を生成した後、クライアントデバイスが該複数の特徴値を取得して、該複数の特徴値に基づいて集約特徴値を生成し、次に、クライアントデバイスが得られた集約特徴値及び支払アカウントとしてのアカウントアドレス、各アカウントアドレスの支払金額及び受取アカウントとしてのアカウントアドレス及び所定の一方向ハッシュ関数に基づき、メッセージ要約を生成する。
【００３９】
具体的に、ステップ２０２は以下のステップ１〜ステップ３を含んでもよい。
【００４０】
ステップ１において、クライアントデバイスが複数のアカウントアドレスに対して、各自の特徴値及び署名待ちのメッセージを取得する。
【００４１】
クライアントデバイスは、振替要求を直接署名待ちのメッセージとしてもよいし、振替要求における支払アカウントとしてのアカウントアドレス、各アカウントアドレスの支払金額及び受取アカウントとしてのアカウントアドレスを署名待ちのメッセージとして抽出してもよい。該実施例では、署名待ちのメッセージが抽出された支払アカウントとしてのアカウントアドレス、各アカウントアドレスの支払金額及び受取アカウントとしてのアカウントアドレスである場合を例として説明する。
【００４２】
該ステップでは、クライアントデバイスにステップ２０１における生成された各アカウントアドレスの特徴値及び第１数値が予め記憶されてもよく、メッセージ要約を生成する前に、クライアントデバイスは予め記憶された各アカウントアドレスの特徴値及び第１数値を取得することができる。
【００４３】
ステップ２において、クライアントデバイスが複数のアカウントアドレス各自の特徴値及び第１数値に基づき、集約特徴値を生成する。
【００４４】
具体的な計算方式は、クライアントデバイスが複数の特徴値の積を計算し、複数の特徴値の積及び第１数値に基づき、集約特徴値を生成するということであってもよい。更に、上記計算過程では、クライアントデバイスが複数の特徴値の積及び第１数値に基づき、集約特徴値を生成する過程は余りを求める演算によって行われてもよく、計算公式は、下記の式（２）の通りであり、
【数３】
0006966572.tif 000005
Rが集約特徴値を示し、nがアカウントアドレスの総個数を示し、Riがi番目のアカウントアドレスの特徴値を示し、modが余りを求める演算を示し、pが第１数値である。
【００４５】
ステップ３において、集約特徴値、該署名待ちのメッセージ及び所定の一方向ハッシュ関数に基づき、メッセージ要約を生成する。
【００４６】
上記生成された集約特徴値、署名待ちのメッセージ及び所定の一方向ハッシュ関数に基づき、該メッセージのハッシュ値を取得し、該ハッシュ値がメッセージ要約である。所定の一方向ハッシュ関数がＳＨＡ２５６セキュアハッシュ関数であってもよい。
【００４７】
更に、下記の式（３）でメッセージ要約を計算してもよく、
h=H(m,R)              （３）
hがメッセージ要約を示し、H（）がハッシュ値を求める演算を示し、mが署名待ちのメッセージを示し、Rが集約特徴値を示す。
【００４８】
２０３において、クライアントデバイスが支払アカウントとしての該複数のアカウントアドレスの秘密鍵及び公開鍵を取得し、メッセージ要約、乱数及び秘密鍵に基づき、サブ署名を生成する。
【００４９】
メッセージ要約を取得した後、クライアントデバイスは振替対象の各アカウントアドレスの秘密鍵及び公開鍵を取得することができる。秘密鍵及び公開鍵を取得することは、以下の複数の可能な実現方式を用いてもよい。（１）、データベースに各アカウントアドレスの秘密鍵及び公開鍵が記憶されてもよく、クライアントデバイスは、必要に応じて、データベースから各アカウントアドレスの秘密鍵及び公開鍵を直接取得することができる。（２）、クライアントデバイスが各アカウントアドレスに対し秘密鍵及び公開鍵を一時的に生成し、秘密鍵が(0,q)の範囲内にあり、qが上記取得された第２数値であり、公開鍵が秘密鍵、生成底数及び第１数値に基づいて生成されたものであり、具体的な計算公式が、下記の式（４）の通りであり、
X=gx(mod  p)              （４）
Xが公開鍵を示し、xが秘密鍵を示し、gが生成底数であり、pが第１数値であり、modが余りを求める演算を示す。
【００５０】
次に、クライアントデバイスが上記過程において生成されたメッセージ要約、乱数及び第２数値を取得し、各アカウントアドレスの秘密鍵、メッセージ要約、乱数及び第２数値に基づき、各アカウントアドレスのサブ署名を計算し、計算公式が下記の式（５）の通りであり、
Si=ri+hxi(mod  q)          （５）
Siがi番目のアカウントアドレスのサブ署名を示し、riがi番目のアカウントアドレスの乱数を示し、hがメッセージ要約を示し、xiがi番目のアカウントアドレスの秘密鍵を示し、qが第２数値であり、modが余りを求める演算を示す。
【００５１】
２０４において、クライアントデバイスが複数のアカウントアドレスの公開鍵を取得し、複数のアカウントアドレスの公開鍵に基づき、集約公開鍵を生成する。
【００５２】
上記処理過程でクライアントデバイスが各アカウントアドレスに対しそれぞれの公開鍵を取得した後、これらの公開鍵の積及び第１数値に基づき、集約公開鍵を生成する。更に、上記計算過程では、クライアントデバイスが各アカウントアドレスに対しそれぞれの第１数値を取得し、複数の公開鍵の積を計算し、複数の公開鍵の積及び第１数値に基づいて余りを求める演算を行って、集約公開鍵を生成する。下記の式（６）で計算してもよく、
【数４】
0006966572.tif 000006
Xが集約公開鍵を示し、Πが積を求める演算を示し、nがアカウントアドレスの総個数を示し、Xiがi番目のアカウントアドレスの公開鍵を示し、modが余りを求める演算を示し、pが第１数値である。
【００５３】
２０５において、クライアントデバイスが複数のサブ署名の合計値及びメッセージ要約に基づき、集約署名を生成する。
【００５４】
上記ステップ２０３によって、クライアントデバイスが各アカウントアドレスに対しそれぞれのサブ署名を取得し、これらのサブ署名を加算し、複数のサブ署名の合計値を取得し、該合計値を集約サブ署名として確定し、次に、集約サブ署名及びメッセージ要約に基づいて集約署名を生成する。
【００５５】
更に、上記計算過程では、各アカウントアドレスのサブ署名を加算し、複数のサブ署名の合計値を取得し、該合計値及び第２数値に対して余りを求める演算を行って、得られた結果を集約サブ署名として確定する。計算式が式（７）の通りであり、
【数５】
0006966572.tif 000007
Sが集約サブ署名を示し、Σが和を求める演算を示し、nがアカウントアドレスの総個数を示し、Siがi番目のアカウントアドレスのサブ署名を示し、modが余りを求める演算を示し、qが第２数値である。
【００５６】
上記過程によって集約サブ署名を確定した後、集約サブ署名及びメッセージ要約を結合し、結合して得られた結果を集約署名として確定する。上記過程によって集約サブ署名を確定するとき、サブ署名の合計値に基づいて集約サブ署名を生成するため、得られた集約サブ署名の長さが該複数のサブ署名を結合した長さより小さい。従って、集約サブ署名に基づいて得られた集約署名の長さが結合して得られた署名の長さより小さく、従って、記憶時に記憶空間を節約することができ、且つネットワーク経由で集約署名を伝送するとき、ネットワーク伝送負荷を軽減することができる。
【００５７】
説明すべきことは、上記ステップでは、計算によって特徴値、メッセージ要約、サブ署名、集約署名、集約公開鍵等を取得することができ、クライアントデバイスは得られた特徴値、メッセージ要約、サブ署名、集約署名、集約公開鍵等を記憶することができる。記憶時、クライアントデバイスは上記生成された結果をすべて関連するデータベースに記憶してもよいし、それを各アカウントアドレスとバンドリングして記憶してもよく、ここで制限しない。
【００５８】
説明すべきことは、集約署名、集約公開鍵を生成する上記過程は並列なものであってもよく、つまり、クライアントデバイスがすべてのアカウントアドレスそれぞれのサブ署名を同時に取得し、複数のサブ署名に基づいて集約サブ署名を生成し、次に集約サブ署名及びメッセージ要約に基づいて集約署名を生成し、同様に、クライアントデバイスがすべてのアカウントアドレスそれぞれの公開鍵を同時に取得し、複数の公開鍵に基づいて集約公開鍵を生成する。好ましくは、集約署名、集約公開鍵を生成する上記過程は逐次なものであってもよく、つまり、クライアントデバイスが１番目のアカウントアドレスのサブ署名及び２番目のアカウントアドレスのサブ署名を取得し、該２つのサブ署名に基づいて一部の集約サブ署名を生成し、次に、クライアントデバイスが３番目のアカウントアドレスのサブ署名を取得して、上記一部の集約サブ署名及び該サブ署名に基づいて新たな一部の集約サブ署名を生成し、次に、クライアントデバイスが４番目のアカウントアドレスのサブ署名を取得して、上記一部の集約サブ署名及び該サブ署名に基づいて新たな一部の集約サブ署名を生成し、すべてのアカウントアドレスのサブ署名を集約サブ署名の生成に参加するまで、これによって類推し、次に、生成された集約サブ署名及びメッセージ要約に基づき、集約署名を生成する。ここで制限しない。
【００５９】
２０６において、クライアントデバイスがメッセージ、集約公開鍵及び集約署名をデータ共有システムにおけるいずれか１つのノードに送信する。
【００６０】
該ステップでは、集約署名をメッセージに追加してからデータ共有システムに送信してもよいし、メッセージ及び集約署名をデータ共有システムに同時に送信してもよく、ここで制限しない。
【００６１】
上記過程によって集約公開鍵及び集約署名を生成した後、クライアントデバイスがメッセージ、集約公開鍵及び集約署名をデータ共有システムに送信し、データ共有システムによってメッセージに対して署名検証を行う。
【００６２】
２０７において、データ共有システムにおけるいずれか１つのノードが集約公開鍵及び集約署名に基づき、メッセージに対して署名検証を行う。
【００６３】
具体的に、クライアントデバイスが各アカウントアドレスのメッセージ、生成底数、第１数値及び集約公開鍵、集約署名をデータ共有システムに送信し、データ共有システムによってシステムにおけるノードに送信し、上記情報を受信したノードが各アカウントアドレスのメッセージ、生成底数、第１数値及び集約公開鍵、集約署名に基づいてメッセージに対して署名検証を行う。署名検証時に下記公式（８）が成立するかどうかを判断し、公式（８）が成立する場合、署名検証に成功し、公式（８）が成立しない場合、署名検証に失敗した。
【００６４】
h=H(m,gsX-h(mod  p))          （８）
hがメッセージ要約を示し、Hがハッシュ値を求める演算を示し、mがメッセージであり、gが生成底数であり、Sが集約サブ署名を示し、Xが集約公開鍵を示し、modが余りを求める演算を示し、pが第１数値である。
【００６５】
上記署名検証方法については、数学方法でその正確性を証明することができ、具体的な証明方法は以下のとおりであってもよい。
【００６６】
上記計算方法に基づき、公式（８）h=H(m,gsX-h(mod  p))がR=gsX-h(mod  p)と同等であり、ユークリッドアルゴリズムに基づき、次式が得られ、
【数６】
0006966572.tif 000008
これにより、gsX-h(mod  p)=Rを導き出すことができ、h=H(m,gsX-h(mod  p))がR=gsX-h(mod  p)と同等であるため、h=H(m,gsX-h(mod  p))が成立し、従って、上記署名検証方法が正しい。
【００６７】
２０８において、データ共有システムが署名検証結果、集約公開鍵及び集約署名を該メッセージに追加する。
【００６８】
データ共有システムが署名検証結果、集約公開鍵及び集約署名をメッセージに追加して、追加して得られたメッセージをブロックチェーンに追加する。
【００６９】
本願では、複数の署名者のサブ署名によって集約署名を生成して、複数の署名者の公開鍵に基づいて集約公開鍵を生成し、得られた集約署名の長さが、複数のサブ署名を結合して得られたマルチ署名の長さより小さく、且つ集約公開鍵の長さが、複数の公開鍵を結合して得られた多重公開鍵の長さより小さいため、ネットワーク経由で集約署名及び集約公開鍵を伝送するとき、ネットワーク伝送負荷を軽減し、記憶時に記憶空間を節約し、且つ署名検証時に集約公開鍵及び集約署名を直接利用して署名後のメッセージを検証し、署名検証の複雑度を大幅に低下させる。更に、上記署名生成方法の振替シーンにおける具体的な応用を提供し、署名生成の実用性を向上させ、振替シーンにおける署名生成及び署名検証の効率も向上させる。
【００７０】
図４は本願の実施例に係る署名生成方法のフローチャートである。方法がデータ共有システムにおけるリーダーノードに適用される場合を例とすれば、このような場合、署名集約者が該データ共有システムにおけるリーダーノードであり、複数の署名者のうちの各署名者が該データ共有システムにおけるフォロワーノードである。いずれか１つのフォロワーノードは該データ共有システムにおけるリーダーノードのブロードキャストしたハートビート情報に基づき、該リーダーノードの動作が通常であると確定して、リーダーノードの指示通りにログを複製することができる。該フォロワーノードが所定期間に該リーダーノードのハートビート情報を受信していない場合、該リーダーノードの動作が故障したと確定して、投票要求を該データ共有システムにおける各ノードにブロードキャストすることができ、該クラスターにおける半数以上のノード装置の投票を受信すると、フォロワーノードはリーダー状態に切り替えて動作して、ハートビート情報をクラスターにおける各ノード装置にブロードキャストし、クライアントデバイスとの交換記憶ログに基づき、各ノード装置がログを複製するように指示することができる。以下、各ステップを詳しく説明する。
【００７１】
４００、リーダーノードはクライアントデバイスの入力情報が含まれるコンセンサス確認パケットを各フォロワーノードに送信する。
【００７２】
信頼ブロックチェーンにおいてｂｆｔ−ｒａｆｔ（適合性アルゴリズム）アルゴリズムでノード同士のコンセンサスを行うとき、図５に示すように、リーダーノードはノード同士がコンセンサスを得てから記憶する必要のある、署名待ちのメッセージが含まれるコンセンサス確認パケットを各フォロワーノードに送信する。本実施例は該署名待ちのメッセージがクライアントデバイスの入力情報、例えば振替メッセージ等であってもよい場合を例として説明する。
【００７３】
４０１において、各フォロワーノードがコンセンサス確認パケットを受信する。
【００７４】
リーダーノードはコンセンサス確認パケットを送信した後、各フォロワーノードはクライアントデバイスの入力情報が含まれるコンセンサス確認パケットを受信し、各フォロワーノードがクライアントデバイスの入力情報を署名するようにトリガーする。
【００７５】
４０２において、各フォロワーノードがコンセンサス確認パケットからクライアントデバイスの入力情報を取得する。
【００７６】
各フォロワーノードがリーダーノードから送信されたコンセンサス確認パケットを受信した後、該コンセンサス確認パケットを解析してクライアントデバイスの入力情報を取得する。
【００７７】
４０３において、各フォロワーノードがそれぞれの公開鍵及び秘密鍵を取得する。
【００７８】
上記過程によって各フォロワーノードがクライアントデバイスの入力情報を取得した後、各フォロワーノードがそれぞれの公開鍵及び秘密鍵を取得し、取得方法は上記ステップ２０３を参照して処理してもよく、ここで詳細な説明は省略する。
【００７９】
４０４において、リーダーノードが各フォロワーノードの公開鍵を取得する。
【００８０】
上記ステップを完了した後、リーダーノードが各フォロワーノードの公開鍵を取得する。リーダーノードが各フォロワーノードの公開鍵を取得することは以下の複数の可能な実現方式を用いてもよい。（１）、リーダーノードのデータベースに各フォロワーノードの公開鍵が記憶されてもよく、リーダーノードはそれらを必要とする場合、データベースから各アカウントアドレスの公開鍵を直接取得することができる。（２）各フォロワーノードはそれぞれのデータベースにその公開鍵及び秘密鍵が記憶されてもよく、各フォロワーノードがその公開鍵を取得した後、公開鍵をリーダーノードに送信する。このような場合、フォロワーノードが公開鍵を１回目に送信した後、リーダーノードに該フォロワーノードの公開鍵が記憶されてもよく、次回にリーダーノードが該フォロワーノードの公開鍵を必要とする場合、処理方式は上記実現方式（１）で処理してもよい。（３）各フォロワーノードが秘密鍵及び公開鍵を一時的に生成し、生成についての計算方法は上記ステップ２０３で処理してもよく、ここで詳細な説明は省略する。次に、各フォロワーノードが生成された公開鍵をリーダーノードに送信する。このような場合、フォロワーノードが公開鍵を１回目に送信した後、リーダーノードに該フォロワーノードの公開鍵が記憶されてもよく、次回にリーダーノードが該フォロワーノードの公開鍵を必要とする場合、処理方式は上記実現方式（１）で処理してもよく、ここで詳細な説明は省略する。
【００８１】
４０５において、各フォロワーノードが各自の乱数を取得し、各自の乱数に基づき、各自の特徴値を生成する。
【００８２】
説明すべきことは、各フォロワーノードが乱数を取得する方法は上記ステップ２０１におけるステップ３で処理してもよく、各フォロワーノードが乱数に基づいて特徴値を生成する方法は上記ステップ２０１におけるステップ４で処理してもよく、ここで詳細な説明は省略する。各自の特徴値を生成した後、各フォロワーノードが各自の特徴値をリーダーノードに送信する。
【００８３】
４０６において、各フォロワーノードがそれぞれ生成された特徴値をリーダーノードに送信する。
【００８４】
４０７において、リーダーノードが各フォロワーノードから送信された各自の特徴値を受信した後、クライアントデバイスの入力情報及び各フォロワーノードの特徴値に基づき、リーダーノードメッセージ要約を生成する。
【００８５】
説明すべきことは、メッセージ要約を生成する計算過程は上記ステップ２０２で処理してもよく、ここで詳細な説明は省略する。メッセージ要約を生成した後、リーダーノードが該メッセージ要約を各フォロワーノードに送信する。
【００８６】
４０８において、リーダーノードがメッセージ要約をデータ共有システムにおける各フォロワーノードに送信する。
【００８７】
４０９において、各フォロワーノードがメッセージ要約、乱数及び秘密鍵に基づき、サブ署名を生成する。
【００８８】
各フォロワーノードがサブ署名を生成する計算過程は上記ステップ２０３で処理してもよく、ここで詳細な説明は省略する。上記ステップによって、各フォロワーノードがそれぞれのサブ署名を生成した後、それぞれのサブ署名をリーダーノードに送信する。
【００８９】
４１０において、リーダーノードが各フォロワーノードから送信された公開鍵を受信して、各フォロワーノードの公開鍵に基づき、集約公開鍵を生成する。
【００９０】
リーダーノードが集約公開鍵を生成する計算過程は上記ステップ２０４で処理してもよく、ここで詳細な説明は省略する。
【００９１】
４１１において、リーダーノードが複数のサブ署名の合計値及びメッセージ要約に基づき、集約署名を生成する。
【００９２】
リーダーノードが集約署名を生成する計算過程は上記ステップ２０５で処理してもよく、ここで詳細な説明は省略する。
【００９３】
４１２において、リーダーノードが集約公開鍵及び集約署名を各フォロワーノードに送信する。
【００９４】
リーダーノードが生成された集約公開鍵及び集約署名をコンセンサス確認パケットに追加し、次に該コンセンサス確認パケットを各フォロワーノードに送信する。各フォロワーノードがコンセンサス確認パケットを解析して、その中の集約公開鍵、集約署名及びクライアントデバイスの入力情報を抽出する。次に、各フォロワーノードが集約公開鍵及び集約署名に基づいて該メッセージに対して署名検証を行い、該署名検証過程は上記ステップ２０７で処理してもよく、ここで詳細な説明は省略する。
【００９５】
４１３において、すべてのフォロワーノードによるメッセージに対する署名検証に成功した後、ノード同士がコンセンサスを得て、各ノードにいずれもコンセンサス確認パケットにおけるクライアントデバイスの入力情報、集約署名及び集約公開鍵が記憶される。
【００９６】
各フォロワーノードによる集約公開鍵及び集約署名に基づくメッセージに対する署名検証に成功した後、各ノードがコンセンサスを得て、次に、各フォロワーノードにいずれもコンセンサス確認パケットにおけるクライアントデバイスの入力情報、集約署名及び集約公開鍵が記憶される。
【００９７】
上記過程によって得られた集約署名の長さが結合して得られた署名の長さより小さく、集約公開鍵の長さが結合して得られた公開鍵の長さより小さいため、コンセンサス過程では、ネットワーク経由で集約署名を伝送するとき、ネットワーク伝送負荷を軽減することができ、且つメッセージに対して署名検証を行うとき、集約公開鍵及び集約署名に基づいてメッセージに対して署名検証を行うだけでよく、署名検証の複雑度を低下させる。
【００９８】
説明すべきことは、集約署名、集約公開鍵を生成する上記過程は並列なものであってもよく、図６に示すように、リーダーノードが複数のサブ署名に基づいて集約サブ署名を生成し、次に集約サブ署名及びメッセージ要約に基づいて集約署名を生成し、同様に、リーダーノードが複数の公開鍵に基づいて集約公開鍵を同時に生成する。好ましくは、集約署名及び集約公開鍵を生成する過程は逐次的なものであってもよく、つまり、１番目のフォロワーノードがそのサブ署名を取得し、次に２番目のフォロワーノードに送信し、２番目のフォロワーノードが１番目のフォロワーノードのサブ署名及びそのサブ署名を取得し、一部の集約サブ署名を生成し、次に３番目のフォロワーノードに送信し、３番目のフォロワーノードが２番目のフォロワーノードから送信された一部の集約サブ署名及びそのサブ署名を取得し、新たな一部の集約サブ署名を生成し、次に４番目のフォロワーノードに送信し、最後のフォロワーノードが新たな一部の集約サブ署名を生成し、該一部の集約サブ署名をリーダーノードに送信し、リーダーノードが該一部の集約サブ署名を受信して、それを集約サブ署名として確定するまで、これによって類推し、次に、生成された集約サブ署名及びメッセージ要約に基づき、集約署名を生成する。ここで制限しない。
【００９９】
本願では、複数の署名者のサブ署名によって集約署名を生成して、複数の署名者の公開鍵に基づいて集約公開鍵を生成し、得られた集約署名の長さが、複数のサブ署名を結合して得られたマルチ署名の長さより小さく、且つ集約公開鍵の長さが、複数の公開鍵を結合して得られた多重公開鍵の長さより小さいため、ネットワーク経由で集約署名及び集約公開鍵を伝送するとき、ネットワーク伝送負荷を軽減し、記憶時に記憶空間を節約し、且つ署名検証時に集約公開鍵及び集約署名を直接利用して署名後のメッセージを検証し、署名検証の複雑度を大幅に低下させる。更に、上記署名生成方法のコンセンサスシーンにおける具体的な応用を提供し、署名生成の実用性を向上させ、コンセンサスシーンにおける署名生成及び署名検証の効率も向上させる。
【０１００】
図７は本願の実施例に係る署名生成方法のフローチャートである。方法がデータ共有システムにおけるクライアントデバイスに適用され、且つ複数の署名者のうちのいずれか１つの署名者の位置するクライアントデバイスを集約署名の実施主体とする場合を例とすれば、このような場合、説明都合上、知能契約に参加するクライアントデバイスのうちの署名集約者としてのクライアントデバイスが第１クライアントデバイスと称され、知能契約に参加する他のクライアントデバイスが第２クライアントデバイスと称され、知能契約シーンにおいて、署名待ちのメッセージが取引完了条件を制限するための契約データである。以下、各ステップを詳しく説明する。
【０１０１】
７００において、第１クライアントデバイス及び少なくとも１つの第２クライアントが複数の契約者の契約内容及び支払金額を示すための署名生成命令を取得する。
【０１０２】
図８に示すように、契約に関わる多くの人が振替を同時に開始するとき、複数の契約者の署名がなければ該契約を得ることができない。複数の契約者がそれぞれのクライアントデバイスを操作して振替を行うとき、各クライアントデバイスは該取引における署名待ちのメッセージが含まれる契約振替要求を受信し、該メッセージは複数の契約者の署名によって複数の契約者が署名を生成し始めるようにトリガーする必要がある。
【０１０３】
７０１において、第１クライアントデバイス及び少なくとも１つの第２クライアントデバイスがそれぞれの複数の乱数を取得し、該複数の乱数に基づき、各自の特徴値をそれぞれ生成する。
【０１０４】
署名生成トリガー命令を受信したとき、少なくとも１つの第２クライアントデバイスが各自の乱数を取得し、該取得過程は上記ステップ２０１を参照して処理してもよく、ここで詳細な説明は省略する。少なくとも１つの第２クライアントデバイスの乱数を取得した後、少なくとも１つの第２クライアントデバイスが各自の乱数に基づき、各自の特徴値を生成し、該生成方法は上記ステップ２０１を参照して処理してもよく、ここで詳細な説明は省略する。特徴値を生成した後、少なくとも１つの第２クライアントデバイスが生成された特徴値を第１クライアントデバイスに送信する。
【０１０５】
７０２において、少なくとも１つの第２クライアントデバイスが各自の特徴値を第１クライアントデバイスに送信する。
【０１０６】
７０３において、第１クライアントデバイスが契約データ及び少なくとも１つの第２クライアントデバイスの少なくとも１つの特徴値に基づき、メッセージ要約を生成する。
【０１０７】
第１クライアントデバイスがメッセージ要約を生成する過程は上記ステップ２０２を参照して処理してもよく、ここで詳細な説明は省略する。
【０１０８】
７０４において、第１クライアントデバイスがメッセージ要約を少なくとも１つの第２クライアントデバイスに送信する。
【０１０９】
７０５において、少なくとも１つの第２クライアントデバイスがメッセージ要約を取得し、次に、第１クライアントデバイス及び少なくとも１つの第２クライアントデバイスが契約データ、秘密鍵及び公開鍵を取得する。
【０１１０】
第１クライアントデバイス及び少なくとも１つの第２クライアントデバイスがそれぞれの秘密鍵及び公開鍵を取得する過程は上記ステップ２０３を参照して処理してもよく、ここで詳細な説明は省略する。
【０１１１】
７０６において、第１クライアントデバイス及び少なくとも１つの第２クライアントデバイスがメッセージ要約、乱数及び秘密鍵に基づき、サブ署名を生成する。
【０１１２】
少なくとも１つの第２クライアントデバイスが各自のサブ署名を生成する過程は上記ステップ２０３を参照して処理してもよく、ここで詳細な説明は省略する。
【０１１３】
７０７において、少なくとも１つの第２クライアントデバイスがそれぞれのサブ署名を第１クライアントデバイスに送信する。
【０１１４】
７０８において、第１クライアントデバイスが第１クライアントデバイス及び少なくとも１つの第２クライアントデバイスそれぞれの公開鍵を取得し、第１クライアントデバイス及び少なくとも１つの第２クライアントデバイスそれぞれの公開鍵に基づき、集約公開鍵を生成する。
【０１１５】
第１クライアントデバイスが少なくとも１つの第２クライアントデバイスから送信された公開鍵及びサブ署名を受信して、受信された公開鍵及びサブ署名を記憶する。次に、第１クライアントデバイスが集約公開鍵を生成する過程は上記ステップ２０４を参照して処理してもよく、ここで詳細な説明は省略する。
【０１１６】
７０９において、第１クライアントデバイスが第１クライアントデバイス及び少なくとも１つの第２クライアントデバイスのサブ署名の合計値及びメッセージ要約に基づき、集約署名を生成する。
【０１１７】
第１クライアントデバイスが集約署名を生成する過程は上記ステップ２０５を参照して処理してもよく、ここで詳細な説明は省略する。
【０１１８】
７１０において、第１クライアントデバイスが集約公開鍵及び集約署名を契約データに追加する。
【０１１９】
集約公開鍵及び集約署名を生成した後、第１クライアントデバイスが集約公開鍵及び集約署名を契約データに追加し、次に、契約データをデータ共有システムに送信する。更に、データ共有システムの各ノードが集約公開鍵及び集約署名に基づいて契約データに対して署名検証を行い、署名検証に成功した場合、データ共有システムが契約データ、集約公開鍵及び集約署名を記憶してもよい。当然ながら、契約データに対して署名検証を行わずに、契約データ、集約公開鍵及び集約署名を直接記憶してもよい。契約を実行するとき、データ共有システムから集約公開鍵及び集約署名を取得し、集約公開鍵及び集約署名に基づいて契約データに対して署名検証を行う。
【０１２０】
上記過程によって得られた集約署名の長さが結合して得られた署名の長さより小さく、集約公開鍵の長さが結合して得られた公開鍵の長さより小さいため、ネットワーク経由で集約署名を伝送するとき、ネットワーク伝送負荷を軽減することができ、且つ該集約公開鍵及び集約署名を記憶するとき、記憶空間を節約することができる。
【０１２１】
説明すべきことは、集約署名、集約公開鍵を生成する上記過程は並列なものであってもよく、つまり、集約者である第１クライアントデバイスが複数のサブ署名に基づいて集約サブ署名を生成し、次に集約サブ署名及びメッセージ要約に基づいて集約署名を生成し、同様に、第１クライアントデバイスが複数の公開鍵に基づいて集約公開鍵を同時に生成する。好ましくは、集約署名及び集約公開鍵を生成する過程は逐次なものであってもよく、つまり、１番目の契約者であるクライアントデバイスがそのサブ署名を取得し、次に少なくとも１つの２番目の契約者であるクライアントデバイスに送信し、少なくとも１つの２番目の契約者であるクライアントデバイスが１番目の契約者であるクライアントデバイスのサブ署名及びそのサブ署名を取得し、一部の集約サブ署名を生成し、次に３番目の契約者であるクライアントデバイスに送信し、３番目の契約者であるクライアントデバイスが少なくとも１つの２番目の契約者であるクライアントデバイスから送信された一部の集約サブ署名及びそのサブ署名を取得し、新たな一部の集約サブ署名を生成し、次に４番目の契約者であるクライアントデバイスに送信し、最後の契約者であるクライアントデバイスが新たな一部の集約サブ署名を生成して、該一部の集約サブ署名を集約者である第１クライアントデバイスに送信し、集約者であるクライアントが該一部の集約サブ署名及びそのサブ署名に基づいて集約サブ署名を生成するまで、これによって類推し、次に、生成された集約サブ署名及びメッセージ要約に基づき、集約署名を生成する。ここで制限しない。
【０１２２】
本願では、複数の署名者のサブ署名によって集約署名を生成して、複数の署名者の公開鍵に基づいて集約公開鍵を生成し、得られた集約署名の長さが、複数のサブ署名を結合して得られたマルチ署名の長さより小さく、且つ集約公開鍵の長さが、複数の公開鍵を結合して得られた多重公開鍵の長さより小さいため、ネットワーク経由で集約署名及び集約公開鍵を伝送するとき、ネットワーク伝送負荷を軽減し、記憶時に記憶空間を節約し、且つ署名検証時に集約公開鍵及び集約署名を直接利用して署名後のメッセージを検証し、署名検証の複雑度を大幅に低下させる。更に、上記署名生成方法の知能契約シーンにおける具体的な応用を提供し、署名生成の実用性を向上させ、知能契約シーンにおける署名生成及び署名検証の効率も向上させる。
【０１２３】
図９は本願の実施例に係る署名生成装置の構造模式図である。図９に示すように、前記装置は生成モジュール９０１、取得モジュール９０２を備える。
【０１２４】
該生成モジュール９０１は、署名待ちのメッセージ及び複数の署名者の特徴値に基づき、メッセージ要約を生成することに用いられ、各署名者の特徴値が前記署名者の乱数によって計算して得られたものであり、
該取得モジュール９０２は、前記複数の署名者の公開鍵及びサブ署名を取得することに用いられ、各署名者のサブ署名が前記署名者の乱数、前記メッセージ要約及び前記複数の署名者の秘密鍵によって計算して得られたものであり、
該生成モジュール９０１は、更に、前記複数の署名者の公開鍵に基づき、集約公開鍵を生成することに用いられ、前記集約公開鍵の長さが前記複数の公開鍵を結合した長さより小さく、
該生成モジュール９０１は、更に、前記複数のサブ署名の合計値及び前記メッセージ要約に基づき、集約署名を生成することに用いられる。
【０１２５】
いずれか１つの可能な実現方式では、前記生成モジュール９０１は取得サブモジュール９０１１、生成サブモジュール９０１２を備える。
【０１２６】
該取得サブモジュール９０１１は、前記複数の署名者の特徴値、署名待ちのメッセージ及び第１数値を取得することに用いられ、
該生成サブモジュール９０１２は、前記複数の署名者の特徴値及び前記第１数値に基づき、集約特徴値を生成することに用いられ、
該生成サブモジュール９０１２は、更に、前記集約特徴値、前記署名待ちのメッセージ及び所定の一方向ハッシュ関数に基づき、前記メッセージ要約を生成することに用いられる。
【０１２７】
いずれか１つの可能な実現方式では、前記生成サブモジュール９０１２は、更に、
前記複数の特徴値の積を計算し、前記複数の特徴値の積及び前記第１数値に基づき、集約特徴値を生成することに用いられる。
【０１２８】
いずれか１つの可能な実現方式では、前記生成サブモジュール９０１２は、更に、
前記複数の公開鍵の積を計算し、前記複数の公開鍵の積及び前記第１数値に基づき、集約公開鍵を生成することに用いられる。
【０１２９】
いずれか１つの可能な実現方式では、前記生成モジュール９０１は、更に、
前記複数のサブ署名に基づき、集約サブ署名を生成し、前記集約サブ署名及び前記メッセージ要約を結合し、結合して得られた結果を集約署名として確定することに用いられる。
【０１３０】
いずれか１つの可能な実現方式では、前記方法がデータ共有システムにおけるクライアントデバイスに適用される場合、前記複数の署名者が前記クライアントデバイスに提供される複数のアカウントアドレスであり、前記署名待ちのメッセージが各アカウントアドレスに対応する数値移転情報である。
【０１３１】
いずれか１つの可能な実現方式では、前記方法がデータ共有システムにおけるクライアントデバイスに適用される場合、前記署名待ちのメッセージが取引完了条件を制限するための契約データである。
【０１３２】
いずれか１つの可能な実現方式では、前記方法がデータ共有システムにおけるリーダーノードに適用される場合、前記複数の署名者のうちの各署名者が前記データ共有システムにおけるフォロワーノードであり、
それに対応して、前記装置は、更に、
前記署名待ちのメッセージ及び複数の署名者の特徴値に基づき、メッセージ要約を生成した後、前記メッセージ要約を前記データ共有システムにおけるフォロワーノードに送信するように構成される送信モジュール９０３を備え、
前記取得モジュール９０２は、更に、
各フォロワーノードから送信された公開鍵及びサブ署名を受信することに用いられ、
前記送信モジュール９０３は、更に、
前記複数のサブ署名の合計値及び前記メッセージ要約に基づき、集約署名を生成した後、前記集約公開鍵及び前記集約署名を前記各フォロワーノードに送信することに用いられる。
【０１３３】
図１０は本願の実施例に係る署名生成装置の構造模式図である。図１０に示すように、前記装置は生成モジュール１００１、取得モジュール１００２を備える。
【０１３４】
該生成モジュール１００１は、乱数を取得し、前記乱数に基づき、特徴値を生成することに用いられ、
該取得モジュール１００２は、署名待ちのメッセージ、秘密鍵及び公開鍵を取得することに用いられ、
該取得モジュール１００２は、更に、前記署名集約者により前記署名待ちのメッセージ及び前記特徴値に基づいて計算して得られるメッセージ要約を取得することに用いられ、
該生成モジュール１００１は、更に、前記メッセージ要約、前記乱数及び前記秘密鍵に基づき、サブ署名を生成することに用いられる。
【０１３５】
いずれか１つの可能な実現方式では、前記生成モジュール１００１は、更に、
素数である第１数値p及び第２数値qを取得し、qが(p-1)の因子であり、p≧２５１２、q≧２１４０であることを満たし、
生成底数ｇを取得し、(gq-1)がpで整除でき、
乱数を取得し、前記乱数の値範囲が(0,q)であり、
前記乱数、前記生成底数及び前記第１数値に基づき、特徴値を生成することに用いられる。
【０１３６】
いずれか１つの可能な実現方式では、前記装置は、更に、
前記方法がデータ共有システムにおけるフォロワーノードに適用される場合、前記サブ署名及び前記公開鍵を前記署名集約者に送信するように構成される送信モジュール１００３を備える。
【０１３７】
本願の実施例は更に電子機器を提供し、該電子機器はプロセッサと、コンピュータプログラムを保存するように構成されるメモリと、を備え、署名待ちのメッセージ及び複数の署名者の特徴値に基づき、メッセージ要約を生成し、各署名者の特徴値が前記署名者の乱数によって計算して得られたものであり、前記複数の署名者の公開鍵及びサブ署名を取得し、各署名者のサブ署名が前記署名者の乱数、前記メッセージ要約及び前記複数の署名者の秘密鍵によって計算して得られたものであり、前記複数の署名者の公開鍵に基づき、集約公開鍵を生成し、前記集約公開鍵の長さが前記複数の公開鍵を結合した長さより小さく、前記複数のサブ署名の合計値及び前記メッセージ要約に基づき、集約署名を生成する方法ステップを実現するために、前記プロセッサはメモリに保存されるコンピュータプログラムを実行することに用いられる。
【０１３８】
可能な実現方式では、前記プロセッサは前記複数の署名者の特徴値、署名待ちのメッセージ及び第１数値を取得し、前記複数の署名者の特徴値及び前記第１数値に基づき、集約特徴値を生成し、前記集約特徴値、前記署名待ちのメッセージ及び所定の一方向ハッシュ関数に基づき、前記メッセージ要約を生成することに用いられる。
【０１３９】
可能な実現方式では、前記プロセッサは前記複数の特徴値の積を計算し、前記複数の特徴値の積及び前記第１数値に基づき、集約特徴値を生成することに用いられる。
【０１４０】
可能な実現方式では、前記プロセッサは前記複数の公開鍵の積を計算し、前記複数の公開鍵の積及び前記第１数値に基づき、集約公開鍵を生成することに用いられる。
【０１４１】
可能な実現方式では、前記プロセッサは前記複数のサブ署名に基づき、集約サブ署名を生成し、前記集約サブ署名及び前記メッセージ要約を結合し、結合して得られた結果を集約署名として確定することに用いられる。
【０１４２】
可能な実現方式では、前記電子機器がデータ共有システムにおけるクライアントデバイスであり、前記複数の署名者が前記クライアントデバイスに提供される複数のアカウントアドレスであり、前記署名待ちのメッセージが各アカウントアドレスに対応する数値移転情報である。
【０１４３】
可能な実現方式では、前記電子機器がデータ共有システムにおけるクライアントデバイスであり、前記署名待ちのメッセージが取引完了条件を制限するための契約データである。
【０１４４】
可能な実現方式では、前記電子機器がデータ共有システムにおけるリーダーノードであり、前記複数の署名者のうちの各署名者が前記データ共有システムにおけるフォロワーノードであり、前記電子機器は、更に、前記メッセージ要約を前記データ共有システムにおけるフォロワーノードに送信するように構成される送受信機を備え、前記送受信機は、更に、各フォロワーノードから送信された公開鍵及びサブ署名を受信することに用いられ、前記プロセッサは、更に、前記集約公開鍵及び前記集約署名を前記各フォロワーノードに送信することに用いられる。
【０１４５】
一例では、上記電子機器が図１１における端末１１００として提供されてもよい。図１１は本願の実施例に係る端末１１００の構造ブロック図である。該端末１１００はＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ、パーソナルコンピュータ）、スマートフォン、タブレットＰＣ等であってもよい。端末１１００が更にユーザー装置、携帯端末等の他の名称と称されてもよい。
【０１４６】
一般的に、端末１１００はプロセッサ１１０１及びメモリ１１０２を備える。
【０１４７】
プロセッサ１１０１は１つ又は複数の処理コア、例えば４コアプロセッサ、８コアプロセッサ等を含んでもよい。プロセッサ１１０１はＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ、デジタル信号処理）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ、フィールドプログラマブルゲートアレイ）、ＰＬＡ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ａｒｒａｙ、プログラマブルロジックアレイ）のうちの少なくとも１つのハードウェア形式で実現されてもよい。プロセッサ１１０１はメインプロセッサ及びコプロセッサを含んでもよく、メインプロセッサはウェイクアップ状態にあるデータを処理するためのプロセッサであって、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央演算装置）とも称され、コプロセッサは待機状態にあるデータを処理するための低消費電力プロセッサである。いくつかの実施例では、プロセッサ１１０１にはディスプレイに表示すべき内容のレンダリング及び制作を担うためのＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、グラフィック処理ユニット）が統合されてもよい。いくつかの実施例では、プロセッサ１１０１は更に機械学習に関連する計算操作を処理するためのＡＩ（Ａｒｔｉｆｉｃｉａｌ  Ｉｎｔｅｌｌｉｇｅｎｃｅ、人工知能）プロセッサを含んでもよい。
【０１４８】
メモリ１１０２は１つ又は複数のコンピュータ可読記憶媒体を備えてもよく、該コンピュータ可読記憶媒体が有形のもの及び非一時的なものであってもよい。メモリ１１０２は更に高速ランダムアクセスメモリ、及び不揮発性メモリ、例えば１つ又は複数の磁気ディスク記憶装置、フラッシュ記憶装置を含んでもよい。いくつかの実施例では、メモリ１１０２における非一時的なコンピュータ可読記憶媒体は少なくとも１つの命令を記憶することに用いられ、本願に係る署名生成方法を実現するために、該少なくとも１つの命令がプロセッサ１１０１により実行される。
【０１４９】
いくつかの実施例では、好ましくは、端末１１００は更に周辺装置インターフェース１１０３及び少なくとも１つの周辺装置を備えてもよい。具体的に、周辺装置は無線周波数回路１１０４、タッチディスプレイ１１０５、カメラ１１０６、オーディオ回路１１０７、測位コンポーネント１１０８及び電源１１０９のうちの少なくとも１つを備える。
【０１５０】
周辺装置インターフェース１１０３はＩ／Ｏ（Ｉｎｐｕｔ  ／Ｏｕｔｐｕｔ、入力／出力）に関連する少なくとも１つの周辺装置をプロセッサ１１０１及びメモリ１１０２に接続するためのものとして使用されてもよい。いくつかの実施例では、プロセッサ１１０１、メモリ１１０２及び周辺装置インターフェース１１０３が同じチップ又は回路基板に統合され、いくつかの他の実施例では、プロセッサ１１０１、メモリ１１０２及び周辺装置インターフェース１１０３のうちのいずれか１つ又は２つが独立したチップ又は回路基板において実現されてもよく、本実施例は制限しない。
【０１５１】
無線周波数回路１１０４は電磁信号とも称されるＲＦ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ、無線周波数）信号を送受信することに用いられる。無線周波数回路１１０４は電磁信号によって通信ネットワーク及び他の通信装置と通信する。無線周波数回路１１０４は電気信号を電磁信号に変換して送信し、又は、受信された電磁信号を電気信号に変換する。好ましくは、無線周波数回路１１０４はアンテナシステム、ＲＦ送受信機、１つ又は複数の増幅器、チューナー、発振器、デジタル信号プロセッサ、コーデックチップ群、ユーザー身元モジュールカード等を含む。無線周波数回路１１０４は少なくとも１つの無線通信プロトコルによって他の端末と通信することができる。該無線通信プロトコルはワールドワイドウェブ、メトロポリタンエリアネットワーク、イントラネット、各世代移動通信ネットワーク（２Ｇ、３Ｇ、４Ｇ及び５Ｇ）、無線ローカルエリアネットワーク及び／又はＷｉＦｉ（Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ、ワイヤレスフィデリティ）ネットワークを含むが、それらに限らない。いくつかの実施例では、無線周波数回路１１０４は更にＮＦＣ（Ｎｅａｒ  Ｆｉｅｌｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ、短距離無線通信）に関連する回路を含んでもよく、本願は制限しない。
【０１５２】
タッチディスプレイ１１０５はＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ、ユーザーインターフェース）を表示することに用いられる。該ＵＩは図形、テキスト、アイコン、ビデオ及びそれらの任意の組み合わせを含んでもよい。タッチディスプレイ１１０５は更にタッチディスプレイ１１０５の表面又は表面上方のタッチ信号を収集する機能を有する。該タッチ信号を制御信号としてプロセッサ１１０１に入力して処理してもよい。タッチディスプレイ１１０５はソフトキー及び／又はソフトキーボードとも称される仮想キー及び／又は仮想キーボードを提供することに用いられる。いくつかの実施例では、タッチディスプレイ１１０５は端末１１００の正面パネルに設置される１つであってもよく、いくつかの他の実施例では、タッチディスプレイ１１０５はそれぞれ端末１１００の異なる表面に設置される又は折り畳んで設計される少なくとも２つであってもよく、いくつかの別の実施例では、タッチディスプレイ１１０５は端末１１００の湾曲表面又は折り畳み面に設置されるフレキシブルディスプレイであってもよい。ひいては、タッチディスプレイ１１０５は更に矩形以外の不規則図形、すなわち異形ディスプレイに設置されてもよい。タッチディスプレイ１１０５はＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ、液晶ディスプレイ）、ＯＬＥＤ（Ｏｒｇａｎｉｃ  Ｌｉｇｈｔ−Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ、有機発光ダイオード）等の材質で製造されてもよい。
【０１５３】
カメラコンポーネント１１０６は画像又はビデオを収集することに用いられる。好ましくは、カメラコンポーネント１１０６は前置カメラ及び後置カメラを備える。一般的に、前置カメラはビデオ通話又は自分撮りを実現することに用いられ、後置カメラは写真又はビデオの撮影を実現することに用いられる。いくつかの実施例では、メインカメラと被写界深度カメラとの融合を実現し、背景ボケ機能を実現するために、後置カメラは少なくとも２つあり、それぞれメインカメラ、被写界深度カメラ、広角カメラのうちのいずれか１つであり、メインカメラと広角カメラとの融合によってパノラマ撮影及びＶＲ（Ｖｉｒｔｕａｌ  Ｒｅａｌｉｔｙ、仮想現実）撮影機能を実現する。いくつかの実施例では、カメラコンポーネント１１０６は更にフラッシュを備えてもよい。フラッシュは単色温度フラッシュであってもよいし、二重色温度フラッシュであってもよい。二重色温度フラッシュは暖光フラッシュと冷光フラッシュとの組み合わせを指し、異なる色温における光補償に使用されてもよい。
【０１５４】
オーディオ回路１１０７はユーザーと端末１１００とのオーディオインターフェースを提供することに用いられる。オーディオ回路１１０７はマイクロフォン及びスピーカーを備えてもよい。マイクロフォンはユーザー及び環境の音波を収集して、音波を電気信号に変換してプロセッサ１１０１に入力して処理し、又は無線周波数回路１１０４に入力して音声通信を実現することに用いられる。ステレオの収集又は騒音低減のために、マイクロフォンがそれぞれ端末１１００の異なる箇所に設置される複数であってもよい。マイクロフォンは更にアレイマイクロフォン又は全方向性収集型マイクロフォンであってもよい。スピーカーはプロセッサ１１０１又は無線周波数回路１１０４からの電気信号を音波に変換することに用いられる。スピーカーは従来の薄膜スピーカーであってもよいし、圧電セラミックスピーカーであってもよい。スピーカーが圧電セラミックスピーカーである場合、電気信号を人間の聞こえる音波に変換することができるだけでなく、電気信号を人間の聞こえない音波に変換して距離測定等を行うこともできる。いくつかの実施例では、オーディオ回路１１０７は更にヘッドフォンジャックを備えてもよい。
【０１５５】
ナビゲーション又はＬＢＳ（Ｌｏｃａｔｉｏｎ  Ｂａｓｅｄ  Ｓｅｒｖｉｃｅ、位置情報に基づくサービス）を実現するために、測位コンポーネント１１０８は端末１１００の現在の地理位置を測位することに用いられる。測位コンポーネント１１０８は米国のＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ、全地球測位システム）、中国の北斗システム又はロシアのガリレオシステムに基づく測位コンポーネントであってもよい。
【０１５６】
電源１１０９は端末１１００における各コンポーネントに給電することに用いられる。電源１１０９は交流電流、直流電流、一次電池又は可充電電池であってもよい。電源１１０９が可充電電池を含む場合、該可充電電池は有線充電電池又は無線充電電池であってもよい。有線充電電池は有線回線によって充電する電池であり、無線充電電池は無線コイルによって充電する電池である。該可充電電池は更に急速充電技術をサポートすることに用いられる。
【０１５７】
いくつかの実施例では、端末１１００は更に１つ又は複数のセンサ１１１０を備える。該１つ又は複数のセンサ１１１０は加速度センサ１１１１、ジャイロセンサ１１１２、圧力センサ１１１３、指紋センサ１１１４、光センサ１１１５及び接近センサ１１１６を含むが、それらに限らない。
【０１５８】
加速度センサ１１１１は端末１１００を中心として確立した座標系の３つの座標軸における加速度の大きさを検出することができる。例えば、加速度センサ１１１１は重力加速度の３つの座標軸における成分を検出することに用いられてもよい。プロセッサ１１０１は加速度センサ１１１１の収集した重力加速度信号に基づき、タッチディスプレイ１１０５が水平ビュー又は垂直ビューでユーザーインターフェースを表示するように制御することができる。加速度センサ１１１１は更にゲーム又はユーザーの運動データの収集に使用されてもよい。
【０１５９】
ジャイロセンサ１１１２は端末１１００の本体方向及び回転角度を検出することができ、ジャイロセンサ１１１２は加速度センサ１１１１と協働してユーザーの端末１１００に対する３Ｄ動作を収集することができる。プロセッサ１１０１はジャイロセンサ１１１２の収集したデータに基づき、動作感応（例えば、ユーザーの傾斜操作に基づいてＵＩを変える）、撮影時の画像の安定性、ゲーム制御及び慣性ナビゲーションの機能を実現することができる。
【０１６０】
圧力センサ１１１３が端末１１００のサイドフレーム及び／又はタッチディスプレイ１１０５の下層に設置されてもよい。圧力センサ１１１３が端末１１００のサイドフレームに設置される場合、ユーザーの端末１１００に対する把持信号を検出し、該把持信号に基づいて左手と右手の識別又はショートカット操作を行うことができる。圧力センサ１１１３がタッチディスプレイ１１０５の下層に設置される場合、ユーザーのタッチディスプレイ１１０５に対する圧力操作に基づき、ＵＩインターフェースにおける操作可能なウィジェットに対する制御を実現することができる。操作可能なウィジェットはキーウィジェット、スクロールバーウィジェット、アイコンウィジェット、メニューウィジェットのうちの少なくとも１つを含む。
【０１６１】
指紋センサ１１１４はユーザーの指紋を収集することに用いられ、それにより収集された指紋に基づいてユーザーの身元を識別する。ユーザーの身元が信頼できる身元であると識別するとき、プロセッサ１１０１は該ユーザーが関連する敏感な操作を実行することを許可し、該敏感な操作は画面のロック解除、暗号化情報の表示、ソフトウェアのダウンロード、支払及び設定変更等を含む。指紋センサ１１１４が端末１１００の表面、裏面又は側面に設置されてもよい。端末１１００に物理キー又はメーカーＬｏｇｏが設置される場合、指紋センサ１１１４が物理キー又はメーカーＬｏｇｏと一体に統合されてもよい。
【０１６２】
光センサ１１１５は環境光強度を収集することに用いられる。一実施例では、プロセッサ１１０１は光センサ１１１５の収集した環境光強度に基づき、タッチディスプレイ１１０５の表示輝度を制御することができる。具体的に、環境光強度がより高い場合、タッチディスプレイ１１０５の表示輝度を高くし、環境光強度がより低い場合、タッチディスプレイ１１０５の表示輝度を低くする。他の実施例では、プロセッサ１１０１は更に光センサ１１１５の収集した環境光強度に基づき、カメラコンポーネント１１０６の撮影パラメータを動的に調整することができる。
【０１６３】
距離センサとも称される接近センサ１１１６は一般的に端末１１００の表面に設置される。接近センサ１１１６はユーザーと端末１１００の表面との距離を収集することに用いられる。一実施例では、接近センサ１１１６はユーザーと端末１１００の表面との距離が徐々に短くなると検出する場合、プロセッサ１１０１はタッチディスプレイ１１０５を動作状態から待機状態に切り替えるように制御し、接近センサ１１１６はユーザーと端末１１００の表面との距離が徐々に長くなると検出する場合、プロセッサ１１０１はタッチディスプレイ１１０５を待機状態から動作状態に切り替えるように制御する。
【０１６４】
当業者であれば、図１１に示される構造は端末１１００を制限するためのものではなく、図示より多く又は少ないコンポーネントを備え、又はいくつかのコンポーネントを組み合わせ、又は異なるコンポーネント配置を用いてもよいと理解される。
【０１６５】
例示的な実施例では、更にコンピュータ可読記憶媒体を提供し、前記記憶媒体に少なくとも１つの命令、少なくとも１セグメントのプログラム、コードセット又は命令セットが記憶され、上記実施例に係る署名生成方法を実現するために、前記少なくとも１つの命令、前記少なくとも１セグメントのプログラム、前記コードセット又は命令セットが前記プロセッサによりロード・実行される。例えば、前記コンピュータ可読記憶媒体はＲＯＭ、ランダムアクセスメモリ（ＲＡＭ）、ＣＤ−ＲＯＭ、磁気テープ、フロッピーディスク及び光データ記憶装置等であってもよい。
【０１６６】
一例では、上記電子機器は図１２におけるサーバ１２００として提供されてもよい。図１２は本願の実施例に係るサーバの構造ブロック図である。例えば、サーバ１２００はノードとして提供されてもよい。図１２に示すように、サーバ１２００は処理コンポーネント１２２２を備え、更に１つ又は複数のプロセッサ、及びメモリ１２３２を代表とする、処理部材１２２２により実行できる命令例えばアプリケーションプログラムを記憶するためのメモリリソースを備える。メモリ１２３２に記憶されるアプリケーションプログラムはそれぞれ１組の命令に対応する１つ又は１つ以上のモジュールを含んでもよい。また、上記図２、図４及び図７に示される実施例のうちのいずれか１つの提供する署名生成方法におけるサーバ側の方法ステップを実行するために、処理コンポーネント１２２２は命令を実行するように設定される。
【０１６７】
サーバ１２００は、更に、サーバ１２００の電源管理を実行するように設定される１つの電源コンポーネント１２２６と、サーバ１２００をネットワークに接続するように設定される１つの有線又は無線ネットワークインターフェース１２５０と、１つの入力出力（Ｉ／Ｏ）インターフェース１２５８と、を備えてもよい。サーバ１２００はメモリ１２３２に記憶されるオペレーティングシステム、例えばＷｉｎｄｏｗｓ  ＳｅｒｖｅｒＴＭ、Ｍａｃ  ＯＳ  ＸＴＭ、ＵｎｉｘＴＭ、  ＬｉｎｕｘＴＭ、ＦｒｅｅＢＳＤＴＭ又は同様のものを操作することができる。
【０１６８】
例示的な実施例では、更にコンピュータ可読記憶媒体を提供し、前記記憶媒体に少なくとも１つの命令が記憶され、上記実施例に係る署名生成方法を実現するために、前記少なくとも１つの命令が前記プロセッサによりロード・実行される。例えば、前記コンピュータ可読記憶媒体はＲＯＭ、ランダムアクセスメモリ（ＲＡＭ）、ＣＤ−ＲＯＭ、磁気テープ、フロッピーディスク及び光データ記憶装置等であってもよい。
【０１６９】
当業者が明細書を考慮し及び開示される発明を実施した後、本願の他の実施案に容易に想到し得る。本願は本願のいかなる変形、用途又は適応変化を含むように意図され、これらの変形、用途又は適応変化は本願の一般原理に基づくものであって、本開示に開示されていない本分野における一般知識又は慣用の技術手段を含む。明細書及び実施例は例示的なものであると見なされ、本願の真の範囲及び趣旨は以上の特許請求の範囲に準じる。
【０１７０】
本願は以上に説明されて図面に示される正確な構造に限らず、その範囲を逸脱せずに種々の修正や変更を行うことができると理解すべきである。本願の範囲は添付の特許請求の範囲により制限される。
【図１】
0006966572.tif 000009
【図２】
0006966572.tif 000010
【図３】
0006966572.tif 000011
【図４】
0006966572.tif 000012
【図５】
0006966572.tif 000013
【図６】
0006966572.tif 000014
【図７】
0006966572.tif 000015
【図８】
0006966572.tif 000016
【図９】
0006966572.tif 000017
【図１０】
0006966572.tif 000018
【図１１】
0006966572.tif 000019
【図１２】
0006966572.tif 000020