(57)【特許請求の範囲】
【請求項１】
暗号文の受信者が該暗号文または、対応する平文の作成者を認証する認証付暗号方法において、
送信者の署名鍵ｓｋｓ、暗号鍵ｐｋｒとし、該暗号化鍵ｐｋｒが公開鍵として公開されている場合に、公開鍵暗号方式を用いて二者間の暗号通信を行う際に、受信者を特定する固有値をＩＤｂとして暗号文ｃを生成する場合に、
冗長化手段が、平文ｍを冗長化し、冗長平文ｍ’を得るステップと、
乱数生成手段が、乱数種ｓから乱数ｒを生成するステップと、
攪乱子生成手段が、前記受信者を特定する固定値ＩＤｂと前記乱数及び冗長平文ｍ’から攪乱子ｈを作成するステップと、
署名生成手段が、前記攪乱子ｈに対する署名σを前記署名鍵ｓｋｓを用いて生成するステップと、
暗号化手段が、（ｍ，ｒ，σ）を前記暗号鍵ｐｋｒを用いて暗号化し、暗号文ｃを得るステップと、
を行うことを特徴とする認証付暗号方法。
【請求項２】
暗号文の受信者が該暗号文または、対応する平文の作成者を認証する認証付暗号装置であって、
送信者の署名鍵ｓｋｓ、暗号鍵ｐｋｒとし、該暗号化鍵ｐｋｒが公開鍵として公開されている場合に、公開暗号方式を用いて二者間の暗号通信を行う際に、受信者を特定する固有値をＩＤｂとして暗号文ｃを生成する場合に、
平文ｍを冗長化し、冗長平文ｍ’を得る冗長化手段と、
乱数種ｓから乱数ｒを生成する乱数生成手段と、
前記受信者を特定する固定値ＩＤｂと前記乱数及び冗長平文ｍ’から攪乱子ｈを作成する攪乱子生成手段と、
前記攪乱子ｈに対する署名σを前記署名鍵ｓｋｓを用いて生成する署名生成手段と、
（ｍ，ｒ，σ）を前記暗号鍵ｐｋｒを用いて暗号化し、暗号文ｃを得る暗号化手段と、
を有することを特徴とする認証付暗号装置。
【請求項３】
コンピュータに、
請求項２記載の認証付暗号装置の機能を実行させることを特徴とする認証付暗号プログラム。
【請求項４】
請求項３記載の認証付暗号プログラムを格納したことを特徴とするコンピュータが読み取り可能な記録媒体。
【請求項５】
暗号文の受信者が該暗号文または対応する平文の作成者を認証する認証付暗号システム上で実行される認証付復号方法において、
受信者の復号鍵ｓｋｒ、署名検証鍵ｐｋｓとし、該署名検証鍵ｐｋｓが公開鍵として公開されている場合に、公開暗号方式を用いて二者間の暗号通信を行う際に、受信者を特定する固有値をＩＤｂとして暗号文ｃを復号する場合に、
復号手段が、前記暗号文ｃを前記復号鍵ｓｋｒを用いて復号し、復号の過程で不正な暗号文と判断された場合には処理を中止し、正当な暗号文である場合には復号結果（ｍ，ｒ，σ）を得る復号ステップと、
冗長化手段が、復号結果のｍを冗長化した冗長平文ｍ’を得る冗長化ステップと、
攪乱子生成手段が、前記受信者と特定する固定値ＩＤｂを前記乱数ｒと前記冗長平文ｍ’から攪乱子ｈを作成する攪乱子生成ステップと、
署名検証手段が、前記署名σが前記攪乱子ｈに対する正しい署名であることを前記署名検証鍵ｐｋｓを用いて検証し、検証に合格すれば、前記ｍを正当なメッセージとし、不合格であれば、ｍは不正なメッセージであると判断する署名検証ステップと、
を行うことを特徴とする認証付復号方法。
【請求項６】
暗号文の受信者が該暗号文または、対応する平文の作成者を認証する認証付暗号システムにおける、認証付復号装置であって、
受信者の復号鍵ｓｋｒ、署名検証鍵ｐｋｓとし、該署名検証鍵ｐｋｓが公開鍵として公開されている場合に、公開暗号方式を用いて二者間の暗号通信を行う際に、受信者を特定する固有値をＩＤｂとして暗号文ｃを復号する場合に、
前記暗号文ｃを前記復号鍵ｓｋｒを用いて復号し、復号の過程で不正な暗号文と判断された場合には処理を中止し、正当な暗号文である場合には復号結果（ｍ，ｒ，σ）を得る復号手段と、
復号結果のｍを冗長化した冗長平文ｍ’を得る冗長化手段と、
前記受信者と特定する固定値ＩＤｂを前記乱数ｒと前記冗長平文ｍ’から攪乱子ｈを作成する攪乱子生成手段と、
前記署名σが前記攪乱子ｈに対する正しい署名であることを前記署名検証鍵ｐｋｓを用いて検証し、検証に合格すれば、前記ｍを正当なメッセージとし、不合格であればｍを不正なメッセージであると判断する署名検証手段と、を有することを特徴とする認証付復号装置。
【請求項７】
コンピュータに、
請求項６記載の認証付復号装置の機能を実現させることを特徴とする認証付復号プログラム。
【請求項８】
請求項７記載のプログラムを格納したことを特徴とするコンピュータが読み取り可能な記録媒体。
【請求項９】
暗号文の否認性が取り消された平文と署名の対に対する検証方法において、
乱数生成手段が、公開されている乱数種ｓから乱数ｒを生成するステップと、
冗長化手段が、復号により得られた平文ｍを冗長化し、冗長平文ｍ’を得るステップと、
攪乱子生成手段が、送信者を特定する固定値ＩＤｂと、前記乱数及び前記冗長平文ｍ’から攪乱子ｈを作成するステップと、
署名検証手段が、請求項５の復号ステップにより得られた署名σが前記攪乱子ｈに対する署名であるか否かを検証鍵ｐｋｓを用いて検証するステップと、
を行うことを特徴とする検証方法。
【請求項１０】
暗号文の否認性が取り消された平文と署名の対に対する検証装置であって、
公開されている乱数種ｓから乱数ｒを生成する乱数生成手段と、
復号により得られた平文ｍを冗長化し、冗長平文ｍ’を得る冗長化手段と、
送信者を特定する固定値ＩＤｂと、前記乱数及び前記冗長平文ｍ’から攪乱子ｈを作成する攪乱子生成手段と、
請求項６の復号手段により得られた署名σが前記攪乱子ｈに対する署名であるか否かを検証鍵ｐｋｓを用いて検証する署名検証手段と、
を有することを特徴とする検証装置。
【請求項１１】
コンピュータに、
請求項１０記載の機能を実現させることを特徴とする検証プログラム。
【請求項１２】
請求項１１記載の検証プログラムを格納したことを特徴とするコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、認証付暗号方法及び認証付復号方法及び検証方法及び装置及びプログラム及びコンピュータが読み取り可能な記録媒体に係り、特に、電気通信システムにおける暗号及びディジタル署名技術の、暗号文の受信者が該暗号文または、対応する平文の作成者を認証するシステムでの、暗号化／復号及び認証を行うための認証付暗号方法及び認証付復号方法及び検証方法及び装置及びプログラム及びコンピュータが読み取り可能な記録媒体に関する。
【０００２】
【従来の技術】
二者間の暗号通信で、受信者が受信文書の完全性を検証する方法が従来より知られている。受信者と送信者が他者に秘密の鍵を共有している、いわゆる共通鍵設定方法においては、送信する暗号文にデータ認証子(Message Authentication Code:MAC) を添付することでデータ認証が可能である。事前の鍵共有が困難な状況においては、公開鍵暗号に基づいてディジタル署名を送信文に付与することによってデータ認証を行うことが一般的である。しかしながら、公開鍵暗号に基づくディジタル署名を添付することは、通信の当事者以外の第三者にとっても、送信者がある平文を送信したことについて証拠性を持ってしまう。指定検証者署名は、署名が指定した検証者から第三者に流通したとしても、第三者にとっては、それが元々の発信者の署名であるのか、その検証者が偽造した署名であるのか区別がつかないという特性を持つ。その特性ゆえ、第三者にとっては、発信者の署名としての証拠性を持たない署名方法である。
従来の技術として、Cramer等による「Disignated Verifier 署名方法("Proofs of Partial Knowledge and Simplified Design of Witncess Hiding Proofs" Crypto'94, LNCS 839, pp.174-187, Springer Verlag, 1994)について説明する。
ｐi ，ｑi をそれぞれ大きな素数とし、ｑi はｐi を割り切るものとする。ｇi をｐi の位数ｑi の部分群の生成源とする。
【０００３】
ｘi ∈Ｚqi
を秘密鍵、
ｙi ＝ｇi xi mod  ｐi
をと共に公開鍵とする。
【０００４】
２個の公開鍵（ｙj ，ｇj ，ｑj ，ｐj ）ｊ＝０，１のうち、いずれかのｙi に関して、対応する秘密鍵ｘi を知る署名者は、以下の手順で文書ｍに対する署名を生成する。以下の例では、一般性を失うことなく、ｉ＝０であるする。Ｈをｑ0 ，ｑ1 うち大きい方のビット数の出力域を持つハッシュ関数とする。集合αから一つの元のβをランダムに選ぶ行為をβ←αと書くことにする。
【０００５】
▲１▼  以下を実行する。
【０００６】
（ａ）  ｓ1 ←Ｚqi
（ｂ）  ｃ1 ←｛０，１｝L
（ｃ）  ｚ1 ：＝ｇ1 s1ｙ1 c1 mod  ｐ1
▲２▼  ｒ0 ←Ｚq0
▲３▼  ｚ0 ：＝ｇi ri mod  ｐ0
▲４▼  ｃ：＝Ｈ（ｚ0 ‖ｚ1 ‖ｍ）
▲５▼  ｃ0 ＝ｃ×ｃ1   （但し、×は論理積）
▲６▼  ｓ0 ：＝ｒ0 −ｃ0 ・ｘ0 mod ｑ0
▲７▼  （ｃ0 ，ｓ0 ，ｃ1 ，ｓ1 ）を出力する。
【０００７】
文書ｍに対する署名（ｃ0 ，ｓ0 ，ｃ1 ，ｓ1 ）は、以下が成り立つとき、正しい署名と認める。
【０００８】
ｃ0 ×ｃ1 ＝Ｈ（ｇ00s0，ｙ0 co mod p0 ‖ｇ1 s1ｙi ci mod  ｐ1 ‖ｍ）
（但し、×は論理積）
上記の従来の方法によれば、署名の受信者は、署名者がどの公開鍵に対応する秘密鍵を保持しているのかを見分けることはできない。従って、第三者にとっては、発信者の署名としての証拠性を持たない署名方法である。上記の私的検証者署名を用いて、暗号文に署名を付けることによって、受信者は受信した文書が発信者の意図したものであることを確認できる。
【０００９】
【発明が解決しようとする課題】
しかしながら、上記従来のDesignated Verifier署名に基づく方法では、第三者にとって、送信者あるいは指定検証者のいずれかが生成した署名としての証拠性を有している。よって、指定検証者の意図的な署名漏洩に対しては、送信者はその署名を否認できるが、第三者が何等かの手段で入手した署名に対しては、送信者及び指定検証者の両者が共にその送受信内容を否認することはできない。
本発明は、上記の点に鑑みなされたもので、送受信者が第三者に対して通信内容の否認が可能であるが、正当な受信者はメッセージ認証が可能であると共に、必要に応じて送信者の否認可能性を取り消しできる、認証付暗号方法及び認証付復号方法及び検証方法及び装置及びプログラム及びコンピュータが読み取り可能な記録媒体を提供することを目的とする。
【００１０】
【課題を解決するための手段】
図１は、本発明の原理を説明するための図である。
【００１１】
本発明（請求項１）は、暗号文の受信者が該暗号文または、対応する平文の作成者を認証する認証付暗号方法において、
送信者の署名鍵ｓｋｓ、暗号鍵ｐｋｒとし、該暗号化鍵ｐｋｒが公開鍵として公開されている場合に、公開鍵暗号方式を用いて二者間の暗号通信を行う際に、受信者を特定する固有値をＩＤｂとして暗号文ｃを生成する場合に、
冗長化手段が、平文ｍを冗長化し、冗長平文ｍ’を得るステップ（ステップ１）と、
乱数生成手段が、乱数種ｓから乱数ｒを生成するステップ（ステップ２）と、
攪乱子生成手段が、受信者を特定する固定値ＩＤｂと乱数及び冗長平文ｍ’から攪乱子ｈを作成するステップ（ステップ３）と、
署名生成手段が、攪乱子ｈに対する署名σを署名鍵ｓｋｓを用いて生成するステップ（ステップ４）と、
暗号化手段が、（ｍ，ｒ，σ）を暗号鍵ｐｋｒを用いて暗号化し、暗号文ｃを得るステップ（ステップ５）と、を行う。
【００１２】
図２は、本発明の原理構成図である。
【００１３】
本発明（請求項２）は、暗号文の受信者が該暗号文または、対応する平文の作成者を認証する認証付暗号装置１０であって、
送信者の署名鍵ｓｋｓ、暗号鍵ｐｋｒとし、該暗号化鍵ｐｋｒが公開鍵として公開されている場合に、公開暗号方式を用いて二者間の暗号通信を行う際に、受信者を特定する固有値をＩＤｂとして暗号文ｃを生成する場合に、
平文ｍを冗長化し、冗長平文ｍ’を得る冗長化手段１１と、
乱数種ｓから乱数ｒを生成する乱数生成手段１２と、
受信者を特定する固定値ＩＤｂと乱数及び冗長平文ｍ’から攪乱子ｈを作成する攪乱子生成手段１３と、
攪乱子ｈに対する署名σを署名鍵ｓｋｓを用いて生成する署名生成手段１４と、
（ｍ，ｒ，σ）を暗号鍵ｐｋｒを用いて暗号化し、暗号文ｃを得る暗号化手段１５と、
を有する。
【００１４】
本発明（請求項３）は、コンピュータに、請求項２記載の認証付暗号装置の機能を実行させる認証付暗号プログラムである。
【００１５】
本発明（請求項４）は、請求項３記載の認証付暗号プログラムを格納したコンピュータが読み取り可能な記録媒体である。
【００１６】
本発明（請求項５）は、暗号文の受信者が該暗号文または対応する平文の作成者を認証する認証付暗号システム上で実行される認証付復号方法において、
受信者の復号鍵ｓｋｒ、署名検証鍵ｐｋｓとし、該署名検証鍵ｐｋｓが公開鍵として公開されている場合に、公開暗号方式を用いて二者間の暗号通信を行う際に、受信者を特定する固有値をＩＤｂとして暗号文ｃを復号する場合に、
復号手段が、暗号文ｃを復号鍵ｓｋｒを用いて復号し、復号の過程で不正な暗号文と判断された場合には処理を中止し、正当な暗号文である場合には復号結果（ｍ，ｒ，σ）を得る復号ステップ（ステップ６）と、
冗長化手段が、復号結果のｍを冗長化した冗長平文ｍ’を得る冗長化ステップ（ステップ７）と、
攪乱子生成手段が、受信者と特定する固定値ＩＤｂを乱数ｒと冗長平文ｍ’から攪乱子ｈを作成する攪乱子生成ステップ（ステップ８）と、
署名検証手段が、署名σが攪乱子ｈに対する正しい署名であることを署名検証鍵ｐｋｓを用いて検証し、検証に合格すれば、ｍを正当なメッセージとし、不合格であれば、ｍは不正なメッセージであると判断する署名検証ステップ（ステップ９）と、を行う。
【００１７】
本発明（請求項６）は、暗号文の受信者が該暗号文または、対応する平文の作成者を認証する認証付暗号システムにおける、認証付復号装置２０であって、
受信者の復号鍵ｓｋｒ、署名検証鍵ｐｋｓとし、該署名検証鍵ｐｋｓが公開鍵として公開されている場合に、公開暗号方式を用いて二者間の暗号通信を行う際に、受信者を特定する固有値をＩＤb として暗号文ｃを復号する場合に、
暗号文ｃを復号鍵ｓｋｒを用いて復号し、復号の過程で不正な暗号文と判断された場合には処理を中止し、正当な暗号文である場合には復号結果（ｍ，ｒ，σ）を得る復号手段２１と、
復号結果のｍを冗長化した冗長平文ｍ’を得る冗長化手段２２と、
受信者と特定する固定値ＩＤb を乱数ｒと冗長平文ｍ’から攪乱子ｈを作成する攪乱子生成手段２３と、
署名σが攪乱子ｈに対する正しい署名であることを署名検証鍵ｐｋｓを用いて検証し、検証に合格すれば、ｍを正当なメッセージとし、不合格であればｍは不正なメッセージであると判断する署名検証手段２４と、を有する。
【００１８】
本発明（請求項７）は、コンピュータに、請求項６記載の認証付復号装置の機能を実現させる認証付復号プログラムである。
【００１９】
本発明（請求項８）は、請求項７記載のプログラムを格納したコンピュータが読み取り可能な記録媒体である。
【００２１】
本発明（請求項９）は、暗号文の否認性が取り消された平文と署名の対に対する検証方法において、
乱数生成手段が、公開されている乱数種ｓから乱数ｒを生成するステップと、
冗長化手段が、復号により得られた平文ｍを冗長化し、冗長平文ｍ’を得るステップと、
攪乱子生成手段が、送信者を特定する固定値ＩＤｂと、乱数及び冗長平文ｍ’から攪乱子ｈを作成するステップと、
署名検証手段が、請求項５の復号ステップにより得られた署名σが攪乱子ｈに対する署名であるか否かを検証鍵ｐｋｓを用いて検証するステップと、
を行う。
【００２２】
本発明（請求項１０）は、暗号文の否認性が取り消された平文と署名の対に対する検証装置であって、
公開されている乱数種ｓから乱数ｒを生成する乱数生成手段と、
復号により得られた平文ｍを冗長化し、冗長平文ｍ’を得る冗長化手段と、
送信者を特定する固定値ＩＤｂと、乱数及び冗長平文ｍ’から攪乱子ｈを作成する攪乱子生成手段と、
請求項６の復号手段により得られた署名σが攪乱子ｈに対する署名であるか否かを検証鍵ｐｋｓを用いて検証する署名検証手段と、を有する。
【００２３】
本発明（請求項１１）は、コンピュータに、請求項１０記載の機能を実現させる検証プログラムである。
【００２４】
本発明（請求項１２）は、請求項１１記載の検証プログラムを格納したコンピュータが読み取り可能な記録媒体である。
【００２５】
上記のように、本発明では、受信者が公開鍵などの受信者を特定する識別子をＩＤb とする。平文ｍを冗長化した冗長平文ｍ’を作成する。十分長い乱数ｒを短い乱数種ｓから生成し、乱数ｒによって、ＩＤb 及び冗長平文ｍ’を攪乱して攪乱子ｈを作成し、ｈに対して署名σを付与し（ここで用いる署名方法は、適応的選択文攻撃に対して潜在的偽造不可能（ＥＵＦ−ＣＭＡ）な方法とする）、ｍ，ｒ，σの組を暗号化して（ここで用いる暗号化方法は、適応的選択暗号文攻撃に対して識別不可能（ＩＮＤ−ＣＣＡ）な方法）受信者に送信する。
【００２６】
また、攪乱子生成時に、（ｒ，ＩＤb ，ｍ’）から作成したｈに対して、同一のｈとなる異なる（ｒ’，ＩＤb ’，ｍ”）（但し、ｍ”も同じ冗長性を持つものとする）を作成することが容易である手段とする。
【００２７】
暗号文の否認可能性を取り消す場合には、乱数種ｓを公開する。
【００２８】
さらに、否認性が取り消された暗号文について、復号化を行った後、得られた平文−署名対に対して、平文ｍ、署名σを検証する際には、送信者と同じ乱数生成方法によって、公開された乱数種ｓから乱数ｒを復元し、冗長平文ｍ’を平文ｍから作成し、（ｒ，ＩＤb ，ｍ’）から攪乱子ｈを作成して、署名σが攪乱子ｈに対する正しい署名であるか否かを送信者の公開鍵ｐｋｓを用いて検証する。
これにより、送信者の署名は攪乱子に対して付与されており、攪乱子は、（ｒ，ＩＤb ，ｍ’）から作成した攪乱子ｈに対して、同一の攪乱子ｈとなる、異なる（ｒ’，ＩＤb ’，ｍ”）を作成することが容易であるので、結局、署名は、メッセージｍに対する証拠性を持たない。
【００２９】
一方、ＩＮＤ−ＣＣＡな暗号方式は、平文を知るものしかその暗号文を作成することができなという特徴を有する。よって、受信した暗号文を復号した結果、送信者Ａによる、受信者Ｂ宛の、第三者には偽造不可能な署名が得られたことにより、受信暗号文を復号できる正当な受信者だけは、得られた平文が送信者Ａによって作成されたものであることを納得することができる。
【００３０】
さらに、乱数種ｓが公開された場合、（ｒ，ＩＤb ，ｍ’）から作成した攪乱子ｈに対して、同一のｈとなる異なる（ｒ’，ＩＤb ’，ｍ”）を作成することは容易であるとしたが、乱数ｒ，ｒ’が十分長い場合には、任意のｍに対して冗長平文ｍ”が正しい冗長性を持つように、ｒ’を決めなくてはならないため、そのような特定のｒ’に対する乱数種ｓ’を求めることは困難であり、署名は（ｓ，ＩＤb ，ｍ）に対する証拠性を持つとみなすことができる。
【００３１】
【発明の実施の形態】
以下、図面と共に、本発明の実施の形態について説明する。
【００３２】
［第１の実施の形態］
以下の説明において、送信者の署名鍵ｓｋｓ、暗号化鍵ｐｋｒ、受信者の復号鍵ｓｋｒ、署名検証鍵ｐｋｓとし、署名検証鍵ｐｋｓと暗号化鍵ｐｋｒが公開鍵として公開されているものとする。また、受信者を特定する固有値をＩＤb とする。
図３は、本発明の第１の実施の形態における認証暗号化装置の構成を示す。
【００３３】
同図に示す暗号化装置１０は、平文ｍを冗長化し、冗長平文ｍ’を得る冗長化部１１、乱数種ｓから乱数ｒを生成する乱数生成部１２、ＩＤb 、乱数ｒ、冗長平文ｍ’から攪乱子ｈを生成する攪乱子生成部１３、攪乱子ｈに対する署名σを署名鍵ｓｋｓを用いて生成する署名生成部１４、ｍ‖ｒ‖σを暗号化鍵ｐｋｒを用いて暗号化し、暗号文ｃを得る暗号化部１５から構成される。
【００３４】
図４は、本発明の第１の実施の形態における認証復号装置の構成を示す。
【００３５】
同図に示す復号装置２０は、暗号文ｃが入力され、当該暗号文ｃを復号鍵ｓｋｒを用いて復号する復号部２１、平文ｍを冗長化し、冗長平文ｍ’を得る冗長化部２２、ＩＤb ，ｒ，ｍ’から攪乱子ｈを作成する攪乱子生成部２３、署名σが攪乱子ｈに対する送信者Ａの正しい署名であることを署名検証鍵ｐｋｓを用いて検証する署名検証部２４から構成される。
【００３６】
次に、上記の構成における動作を説明する。
【００３７】
以下に述べる動作の前提を説明する。
【００３８】
送信者Ａは、署名鍵ｓｋｓと暗号化鍵ｐｋｒを持ち、ｐｋｒは公開されているものとする。送信者Ｂは、復号鍵ｓｋｒと署名検証鍵ｐｋｓを持ち、ｐｋｓは公開されているものとする。
【００３９】
以下で、二項演算子ａ＋ｂは、ａ，ｂのビット毎の排他的論理和であり、ａ‖ｂは、結合したビット列を表す。｜ａ｜は、ａのビット数を表す。受信者を特定できる文字列（氏名、あるいは、公開鍵でもよい）。
【００４０】
送信者Ａから受信者Ｂに送信する文書ｍに対する暗号文は、認証暗号化装置１０で作成する。動作は以下の通りである。
【００４１】
図５は、本発明の第１の実施の形態における暗号化手順のフローチャートである。
【００４２】
ステップ１０１）  冗長化部１１によって、平文ｍを冗長化し、冗長平文ｍ’を得る。
【００４３】
ステップ１０２）  乱数生成部１２によって、乱数種ｓから乱数ｒを生成する。
【００４４】
ステップ１０３）  攪乱子生成部１３によって、ＩＤb ，ｒ，ｍ’から攪乱子ｈを作成する。
【００４５】
ステップ１０４）  署名生成部１４によって、攪乱子ｈに対する署名σを署名鍵ｓｋｓを用いて生成する。
【００４６】
ステップ１０５）  暗号化部１５によって、ｍ‖ｒ‖σを暗号化鍵ｐｋｒを用いて暗号化し、暗号文ｃを得る。
【００４７】
次に、送信者Ａから受信した暗号文が認証復号装置２０により復号される。復号の動作は以下の通りである。
【００４８】
図６は、本発明の第１の実施の形態における復号化手順のフローチャートである。
【００４９】
ステップ２０１）  復号部２１によって、入力された暗号文ｃを復号鍵ｓｋｒを用いて復号する。
【００５０】
ステップ２０２）  復号の過程で、不正な暗号文である場合には、処理を中止する。
【００５１】
ステップ２０３）  正当な暗号文である場合には、復号結果ｍ‖ｒ‖σを得る。
【００５２】
ステップ２０４）  冗長化部２２によって、平文ｍを冗長化し、冗長平文ｍ’を得る。
【００５３】
ステップ２０５）  攪乱子生成部２３によって、ＩＤb ，ｒ，ｍ’から攪乱子ｈを生成する。
【００５４】
ステップ２０６）  署名検証部２４によって、署名σが攪乱子ｈに対する送信者Ａの正しい署名であることを署名検証鍵ｐｋｓを用いて検証する。
【００５５】
ステップ２０７）  検証に合格か不合格かを判定し、合格の場合にはステップ２０８に移行し、不合格の場合にはステップ２０９に移行する。
【００５６】
ステップ２０８）  ｍを正当なメッセージを判断する。
【００５７】
ステップ２０９）  ｍは不正なメッセージであると判断する。
【００５８】
［第２の実施の形態］
本実施の形態では、乱数種ｓが公開され、暗号文の否認性が取り消された平文ｍと署名σに対して署名検証を行う場合について説明する。
【００５９】
図７は、本発明の第２の一実施の形態における否認性が取り消された場合の署名検証装置の構成を示す。
【００６０】
同図に示す署名検証装置３０は、復号部２１によって得られた平文ｍが入力されると、平文ｍを冗長化し、冗長平文ｍ’を得る冗長化部３１、公開されている乱数ｓから乱数ｒを生成する乱数生成部３２、ＩＤb ，ｒ，ｍ’から攪乱子ｈを生成する攪乱子生成部３３、署名σが攪乱子ｈに対する送信者Ａの正しい署名であることを署名検証鍵ｐｋｓを用いて検証する検証部３４から構成される。
【００６１】
上記の構成における否認性が取り消された平文ｍと署名σに対する署名検証の動作を説明する。
【００６２】
図８は、本発明の第２の実施の形態における否認性が取り消された平文ｍと署名σに対する署名検証手順のフローチャートである。
【００６３】
ステップ３０１）  冗長化部３１によって、平文ｍを冗長化し、冗長平文ｍ’を得る。
【００６４】
ステップ３０２）  乱数生成部３２によって、公開されている乱数種ｓから乱数ｒを生成する。
【００６５】
ステップ３０３）  攪乱子生成部３３によって、ＩＤb ，ｒ，ｍ’から攪乱子ｈを生成する。
【００６６】
ステップ３０４）  署名検証部３４によって、署名σが攪乱子ｈに対する送信者Ａの正しい署名であることを署名検証鍵ｐｋｓを用いて検証する。
【００６７】
ステップ３０５）  検証の結果が合格である場合には、ステップ３０６に移行し、不合格である場合にはステップ３０７に移行する。
【００６８】
ステップ３０６）  ｍを正当なメッセージであると判断する。
【００６９】
ステップ３０７）  ｍは不正なメッセージであると判断する。
【００７０】
【実施例】
以下、図面と共に、本発明の実施例を説明する。
【００７１】
［第１の実施例］
本実施例の装置構成は、前述の図３、図４、図７と同様である。但し、以下の実施例では、冗長化部１１、２２、３１をビット結合手段を用いるものとし、攪乱子生成部１３、２３、３３をビット結合手段と排他的論理和手段を用いて構成する。
【００７２】
図９は、本発明の第１の実施例の冗長化部の構成を示し、図１０は、本発明の第１の実施例の攪乱子生成部の構成を示す。
【００７３】
上記の構成を用いた場合の動作を説明する。なお、送信者Ａは、署名鍵ｓｋｓと、暗号化鍵ｐｋｒを持ち、ｐｋｒは公開されているものとする。また、受信者Ｂは、復号鍵ｓｋｒと署名検証鍵ｐｋｓを持ち、ｐｋｓは公開されているものとする。
【００７４】
送信者Ａから受信者Ｂに送信する文書ｍに対する暗号文は、以下の示す認証暗号化装置で作成する。
【００７５】
以下に、認証暗号装置１０での動作を説明する。
【００７６】
▲１▼  冗長化部１１であるビット結合部４１において、入力平文ｍに８０ビットの０…０を結合し、その結果を冗長平文ｍ’とする。
【００７７】
▲２▼  乱数生成部１２によって、乱数種ｓから｜ｍ’｜＋｜ＩＤb ｜ビットの乱数ｒを生成する。
【００７８】
▲３▼  攪乱子生成部１３である、ビット結合手段５１と排他的論理和手段５２により、ｈ＝（ｍ’｜ＩＤb ）×ｒ（但し、＋は、排他的論理和を示す）を計算する。
【００７９】
▲４▼  署名生成部１４によって、攪乱子ｈに対する署名σを署名鍵ｓｋｓを用いて生成する。
【００８０】
▲５▼  暗号化部１５によって、ｍ‖ｒ‖σを暗号鍵ｐｋｒを用いて暗号化し、暗号文ｃを得る。
【００８１】
次に、送信者Ａから受信した暗号文の復号処理について説明する。
【００８２】
▲１▼  復号部２１によって、暗号文ｃを復号鍵ｓｋｒで復号する。復号の過程で、不正な暗号文と判定された場合には処理を中止し、正当な暗号文である場合には、復号結果ｍ‖ｒ‖σを得る。
【００８３】
▲２▼  冗長化部２２であるビット結合手段４１により、入力平文ｍに８０ビットの０…０を結合し、その結果を冗長平文ｍ’とする。
【００８４】
▲３▼  攪乱子生成部２３であるビット結合部５１と排他的論理和手段５２により、ｈ＝（ｍ’‖ＩＤb ）×ｒ（但し、×は排他的論理和）を計算する。
【００８５】
▲４▼  署名検証部２４によって、署名σが攪乱子ｈに対する送信者Ａの正しい署名であることを署名検証鍵ｐｋｓを用いて検証する。検証に合格すれば、ｍを正当なメッセージとして受理し、不合格であればｍは不正なメッセージであると判断する。
【００８６】
次に、乱数種ｓが公開され、否認性が取り消された平文ｍと署名σに対して図８に示す手順により、検証する。
【００８７】
▲１▼  冗長化部３１であるビット結合手段４１により、入力平文ｍに８０ビットの０…０を結合し、、その結果を冗長平文ｍ’とする。
【００８８】
▲２▼  乱数生成部３２によって、乱数種ｓから｜ｍ’｜＋｜ＩＤb ｜ビットの乱数ｒを生成する。
【００８９】
▲３▼  攪乱子生成部３３であるビット結合手段５１と排他的論理和手段５２によって、ｈ（ｍ’‖ＩＤb   ）×ｒ（但し、×は排他的論理和）を計算する。
【００９０】
▲４▼  署名検証部３４によって、署名σが攪乱子ｈに対する送信者Ａの正しい署名であることを署名検証鍵ｐｋｓを用いて検証する。検証に合格すればｍを正当なメッセージとして受理し、不合格であれば、ｍは不正なメッセージであると判断する。
【００９１】
［第２の実施例］
次に、本実施例では、メッセージ長が長い場合に攪乱子生成部を用いて必要な乱数のビット長を短くする例を説明する。
【００９２】
図１１は、本発明の第２の実施例の攪乱子生成部の構成を示す。
【００９３】
同図に示す攪乱子生成部１３、３３は、ビット結合手段６１、ハッシュ手段６２、排他的論理和手段６３から構成され、ハッシュ手段６２を図１０の構成に付加したものである。
【００９４】
即ち、出力ビット数が１６０ビットのハッシュ手段６２を設け、乱数生成部１２、３２の出力を同様に１６０ビットとし、冗長平文ｍ’にＩＤb を結合した結果をハッシュ手段６２に入力して短縮し、そのハッシュ値と乱数ｒとの排他的論理和を攪乱子とする方法である。
【００９５】
この方法は、｜ｍ’｜＋｜ＩＤb ｜が１６０ビット以上になる場合に有効である。
【００９６】
なお、上記の実施の形態及び実施例における認証暗号化装置及び認証復号装置の構成をプログラムとして構築し、認証暗号化装置及び認証復号装置として利用されるコンピュータにインストールすることも可能である。
【００９７】
また、構築されたプログラムを認証暗号化装置及び認証復号装置として利用されるコンピュータに接続されるハードディスクや、フレキシブルディスク、ＣＤ−ＲＯＭ等の可搬記憶媒体に格納しておき、本発明を実施する際にインストールすることにより、本発明を実現できる。
【００９８】
なお、本発明は、上記の実施例に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【００９９】
【発明の効果】
上述のように、本発明によれば、送受信者が共に第三者に対して、通信内容の否認が可能であるが、正当な受信者は受信したデータの完全性を確認することができる。正当な送信者は、必要に応じて、任意に第三者にその送信文に対応する平文の認証を行えるようにすることが可能となる。
【図面の簡単な説明】
【図１】本発明の原理を説明するための図である。
【図２】本発明の原理構成図である。
【図３】本発明の第１の実施の形態における認証暗号化装置の構成図である。
【図４】本発明の第１の実施の形態における認証復号装置の構成図である。
【図５】本発明の第１の実施の形態における暗号化手段のフローチャートである。
【図６】本発明の第１の実施の形態における復号手順のフローチャートである。
【図７】本発明の第２の実施の形態における否認性が取り消された場合の署名検証装置の構成図である。
【図８】本発明の第２の実施の形態における否認性が取り消された平文と署名に対する署名検証手順のフローチャートである。
【図９】本発明の第１の実施例の冗長化部の構成図である。
【図１０】本発明の第１の実施例の攪乱子生成部の構成図である。
【図１１】本発明の第２の実施例の攪乱子生成部の構成図である。
【符号の説明】
１０  認証暗号化装置
１１  冗長化手段、冗長化部
１２  乱数生成手段、乱数生成部
１３  攪乱子生成手段、攪乱子生成部
１４  署名生成手段、署名生成部
１５  暗号化手段、暗号化部
２１  復号手段、復号部
２２  冗長化手段、冗長化部
２３  攪乱子生成手段、攪乱子生成部
２４  署名検証手段、署名検証部
３０  署名検証装置
３１  冗長化部
３２  乱数生成部
３３  攪乱子生成部
３４  署名検証部
４１  ビット結合手段
５１  ビット結合手段
５２  排他的論理和手段
６１  ビット結合手段
６２  ハッシュ手段
６３  排他的論理和手段
【図１】
0004000900.tif 000002
【図２】
0004000900.tif 000003
【図３】
0004000900.tif 000004
【図４】
0004000900.tif 000005
【図５】
0004000900.tif 000006
【図６】
0004000900.tif 000007
【図７】
0004000900.tif 000008
【図８】
0004000900.tif 000009
【図９】
0004000900.tif 000010
【図１０】
0004000900.tif 000011
【図１１】
0004000900.tif 000012