JP5121930B2 - 暗号値のテキスト表示を提供する方法 - Google Patents

暗号値のテキスト表示を提供する方法 Download PDF

Info

Publication number
JP5121930B2
JP5121930B2 JP2010516332A JP2010516332A JP5121930B2 JP 5121930 B2 JP5121930 B2 JP 5121930B2 JP 2010516332 A JP2010516332 A JP 2010516332A JP 2010516332 A JP2010516332 A JP 2010516332A JP 5121930 B2 JP5121930 B2 JP 5121930B2
Authority
JP
Japan
Prior art keywords
text
public key
value
computer
bit string
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010516332A
Other languages
English (en)
Other versions
JP2010533878A (ja
Inventor
スコット エー. バンストーン,
ダニエル アール. ブラウン,
Original Assignee
サーティコム コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by サーティコム コーポレーション filed Critical サーティコム コーポレーション
Publication of JP2010533878A publication Critical patent/JP2010533878A/ja
Application granted granted Critical
Publication of JP5121930B2 publication Critical patent/JP5121930B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/30Compression, e.g. Merkle-Damgard construction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • H04L2209/608Watermarking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Document Processing Apparatus (AREA)
  • Storage Device Security (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

(発明の分野)
本発明は、概して暗号技術の分野に関し、特に、本発明は、暗号値をテキスト形式で表示することに関する。
(発明の背景)
公開鍵暗号技術は、数学的に関係のある公開鍵と秘密鍵とを利用する。該関係は、公開鍵が秘密鍵から容易に計算され得るが、公開鍵からの秘密鍵の計算は、実行不可能であると考えられる。秘密鍵は、従って、非公開に維持される。鍵は、様々な周知のプロトコルで用いられることにより、メッセージを隠蔽するかまたはメッセージに署名する。
暗号値としての公開鍵またはその表示は、概してユーザによって容易に管理できない。一般的には、暗号アルゴリズムは、ランダムな値か、または特定の空間内のランダムな文字と区別がつかない値を含んでいる。人は概して、英文字および数字のランダムな集合と似ている文字の長いストリングを管理することに苦労する。適正なセキュリティを提供するために、そのような空間のサイズは、しばしば現行技術のコンピュータによる網羅的サーチが実行不可能になるように決められる。280の空間が、今日届く範囲を超えていると考えられる。そのような空間で暗号値を表示することは、概して少なくとも80ビットまたは10バイトを必要とする。10バイトの値は、20個の16進数字に対応する。楕円曲線公開鍵およびハッシュ値などの一部の暗号値は、概して等しいセキュリティレベルを有するために、これの倍の長さでなければならない。最小のセキュリティレベルは、40個の16進数字の表示に関係する。計算パワーまたは計算技術が進歩するにつれて、より長い表示が望ましいかまたは必要になる。DSAおよびRSAの鍵などの他の暗号値は、同じセキュリティレベルを維持するために、よりいっそう長い表示を有し、256個の16進数字を有している。
そのようなサイズのランダムな値は、ただ20個の16進数字の長さでさえも、ユーザがエラーなしで管理することはまったく困難である。特に、ユーザは、
1.そのようなランダム値を助力なしで思い出すこと
2.たとえ前に見た場合でもそのようなランダム値を認識すること
3.そのような値を音声によって他のユーザに伝達すること
4.そのような値を印刷またはディスプレイを介して転記すること
が難しいかもしれない。
これらの困難のために、暗号プロトコルへのユーザインタフェースは、暗号値へのアクセスをユーザに対してめったに与えない。このことは、そのようなアクセスが無益であろうと一般に信じられているためであり得る。時折、暗号値は、ユーザに選択的にアクセス可能にされる。ユーザが出会いそうな最も一般的な暗号値は、公開鍵である。多くのプロトコルは、証明証において公開鍵の表示をユーザに選択的にディスプレイする。
例えば、ウェブブラウザのSSLまたはTLSクライアントが、信頼できる証明機関(「CA」)によって署名されていないサーバ証明証を受信するときには、SSLまたはTSLクライアントは、一般的に警告をユーザにディスプレイする。警告メッセージは一般に、証明証が信頼され得ないことをユーザに通知し、証明証の所有者および発行者と称するものの名前をディスプレイする。しばしば、該証明証を信頼しないか、該証明証を1回信頼するか、または該証明証をいつも信頼するかに関しての選択肢がユーザに与えられる。一部のクライアントはまた、16進形式またはBase64形式で公開鍵をユーザにディスプレイする。ユーザは概して、ディスプレイされた公開鍵を利用し得ない。なぜならば、ユーザが確証となるものを全く有しないからである。ユーザが公開鍵を検証する一部の認証された情報源を有する場合でさえも、16進表示またはBase64表示は、検証を有害なものにし得る。
これらの警告メッセージは、ユーザに危険をもたらす。ユーザが、よく訪れるセキュアであるが証明証のないサイトを再び訪れようとして、ウェブアドレスの綴りを偶然に誤ったと仮定する。攻撃者は、誤ったアドレスでウェブサイトを作り出し得る。攻撃者は、正しいウェブサイトと同一に見えるウェブページを作り出し得る。攻撃者はまた、ウェブサイトに対してサーバ証明証を作り出し得る。攻撃者は、信頼できるCAによって証明されたサーバ証明証を得ることができないことがあり得る。なぜならば、信頼できるCAが、サーバ証明証を発行する前にそのような攻撃に対して相当の注意をはらい得るからである。しかしながら、攻撃者は、それ自体に証明証を発行し得る。
ブラウザクライアントは、そのような証明証に出会うときには、証明証が信頼できるCAによって証明されていないことを認識し、それに応じてユーザに警告するであろう。それにもかかわらず、一部のユーザは、警告メッセージを無視し、サイトに接続し得る。他のユーザは、警告にかかわらずウェブサイトを拒絶し得る。ユーザの第三のクラス(おそらく大多数)は、警告メッセージで提示された証明証の名前を一見し、(1つのセッションに対して)証明証を1回受け入れることに決定し得る。
ユーザのこの第三のクラスは、名前を検査するであろう。証明証が攻撃者によって発行されたので、攻撃者は、有効な名前(正しいサイトに対する名前)を選び得る。ブラウザがURLに対する名前と一致する場合には、攻撃者は、一致したURLを用い得る。しかしながら、偽のURLが真のURLに非常に近いので、ユーザが違いに気づかないことがあり得る。(一部のブラウザは、警告メッセージ内に正しく一致したURLを再ディスプレイしないことがあり得る。なぜならば、正しく一致したURLがブラウザのアドレス行においてすでにディスプレイされているからである)。
従って、ユーザのこの第三のクラスが、少なくとも1つのセッションに対して証明証を受け入れる可能性がある。このことは、多くの合法的ウェブサイトが、信頼できるCAからサーバ証明証を購入する余裕がないという事実によって、さらに可能性があるが、それでも暗号化を望んでおり、従って、その代わりとして彼ら自体の証明証をただ発行するだけである。多くのユーザは、そのようなサイトに慣れており、証明証を受け入れる可能性がより大きい。
攻撃者の証明証を受け入れる負の結果は、真のウェブサイトと通信しているとユーザが考え得ることである。ユーザは、偽の情報を偽のウェブサイトから取得し得る。ユーザはまた、偽のウェブサイトに情報を入力し得る。特に、ユーザはパスワードを入力し得る。攻撃者は、パスワードを取得し、それを用いて、真のウェブサイトでユーザを詐称し得る。真のウェブサイトがオンラインバンキングサイトである場合には、攻撃者は、資金をユーザの銀行預金口座から引き出すことができるかもしれない。
従って、テキスト表示において暗号値を受信者に伝達することが望ましく、テキスト表示は、よりランダムでない形式を有する傾向のものである。解決策は、経験を積んだ(salted)従来のパスワードのハッシュであるワンタイムパスワードの状況において提案されてきた。1つのシステムにおいて、64ビットのストリームは、セグメントの1つが11ビットにパディングされる11ビットの6つのセグメントに分割される。各セグメントは次に、2048単語の辞書からとられた単語として表現(render)される。選ばれた単語は、それらを、よりタイプしやすくする目的で、4つの英文字またはより少ない英文字を有しており、それによって、キー操作の数が限定される。その目的は、16進データまたはBase64データに対してよりも低くエラー率を保持することである。なぜならば、選ばれた単語が有効な英語の単語だからである。
しかしながら、英単語のリストを用いることにおいて、多くのセキュリティ不足が存在している。スピーチのオーディオ記録は、単語リストを形成するために、再接合され得る。従って、スピーチが認証のために用いられる場合には、代替の表示が有利であり得る。原文のレベルにおいて、単語リストは、多くの効率のよさを提示しないことがあり得るか、または電子メールアドレスなどの既存のテキスト形式に十分によく適合しないことがあり得る。
上記された欠点のうちの少なくとも1つを緩和するか、または除去することが本発明の目的である。
(発明の概要)
本発明の一局面において、暗号値を受信者に伝達する一般的方法が提供される。該方法は、語彙を選択するステップと、該暗号値をビット列として表示するステップと、該ビット列をテキストに変換するステップとを含む。該テキストは、可逆関係に従って該語彙から選択された単語から形成される。
本発明の別の局面において、暗号値を人のユーザに伝達する方法が提供される。該方法は、語彙を選択するステップと、該暗号値をビット列として表示するステップと、所定の可逆関係に従って該語彙から選択された単語を用いて該ビット列をテキストに変換するステップと、該テキストを該人のユーザに伝達するステップとを含む。
本発明の別の局面において、上記方法は、語彙を選択するステップと、上記暗号値をビット列として表示するステップと、該ビット列を該語彙から選択された単語から形成される文法的に正しいテキストに変換するステップと、該文法的に正しいテキストを上記ユーザに伝達するステップとを含む。
本発明のなお別の局面において、ユーザによってメッセージに署名する方法が提供される。該方法は、該メッセージのハッシュ値を計算するステップと、本明細書中に記載された変換方法を用いて該ハッシュ値をテキストに変換するステップと、オーディオ記録を受信するステップであって、該オーディオ記録は、該テキストを朗読する該ユーザによって生成された音声信号を捕捉する、ステップとを含み、該オーディオ記録は、該ユーザによって署名された該メッセージの署名として用いられる。
本発明の別の局面において、暗号化されたメッセージを伝送する方法が提供される。該方法は、本明細書中に記載された変換方法を用いて該暗号化されたメッセージをテキスト形式でカバーテキスト(covertext)に変換するステップと、埋め込みテキストを選択するステップと、ステガノグラフィック(steganographic)メッセージを生成するために、該埋め込みテキストに該カバーテキストを埋め込むステップと、該カバーテキストを含んでいる該ステガノグラフィックメッセージを伝送するステップとを含む。
本発明のなお別の局面において、本来のテキスト(proper text)内に秘密のテキストを隠蔽する方法が提供される。該方法は、選択のリストを生成するために、該本来のテキストの修正可能な部分を識別するステップであって、該修正可能な部分は、該選択のリストに基づいた、該本来のテキストへの文法および語彙の変更を含み、該変更は、該本来のテキストの意味に影響しない、ステップと、該選択のリストをビット列に変換するステップと、暗号値を該ビット列に割り当てるステップと、本明細書中に記載された変換方法を用いて該暗号値をテキストに変換するステップと、透かし入りの本来のテキストを取得するために、該テキストからの単語を用いて該修正可能な部分を修正するステップとを含む。
一実施形態において、公開鍵または公開鍵の証明証などの暗号値は、最初に圧縮され、次に人に読み取り可能なテキストに符号化される。別の実施形態において、公開鍵などの暗号値は、文法的に正しいようであるが必ずしも何らの意味も伝えない段落に変換される。
他の局面において、本発明は、上記された局面の様々な組み合わせおよびサブセットを提供する。例えば、本願発明は以下の項目を提供する。
(項目1)
暗号値を人のユーザに伝達する方法であって、該方法は、
語彙を選択することと、
該暗号値をビット列として表示することと、
該ビット列を所定の可逆関係に従って該語彙から選択された単語を用いるテキストに変換することと、
該テキストを該人のユーザに伝達することと
を包含する、方法。
(項目2)
前記暗号値を前記ビット列として表示するステップは、
(a)秘密の値を選択するステップと、
(b)暗号操作を該秘密の値について実行して、該暗号値を生成するステップと、
(c)該暗号値に対応する試験用ビット列が所定の基準を満たしているか否かを決定するステップと、
(d)該試験用ビット列が該所定の基準を満たすまで、該ステップ(a)〜ステップ(c)のシーケンスを繰り返すステップと、
(e)該試験用ビット列を該ビット列に割り当てるステップと
を包含する、
項目1に記載の方法。
(項目3)
前記語彙は、複数の擬似単語を含んでいる、項目1に記載の方法。
(項目4)
受信者の公開鍵をIDベース暗号(「IBE」)システムのユーザに伝達する方法であって、該方法は、
語彙を選択することと、
該公開鍵をビット列として表示することと、
該ビット列を該語彙から選択された単語を利用する逆演算符号化アルゴリズムに従うテキストに符号化することと、
該テキストを該受信者のIDとして該受信者に伝達することと
を包含する、方法。
(項目5)
前記公開鍵は、次数nの楕円曲線上で規定され、かつジェネレータgによって規定された秘密鍵/公開鍵の対に属し、該公開鍵を表示するステップは、
(a)該公開鍵および対応する秘密鍵を初期化することであって、該秘密鍵は、[1,n)から無作為に選択される、ことと、
(b)該公開鍵が圧縮基準を満たしているか否かを決定することと、
(c)該圧縮基準が満たされない場合には、該秘密鍵を1だけインクリメントし、該公開鍵をgだけインクリメントし、該圧縮基準が満足されるまで、ステップ(b)〜ステップ(c)を繰り返すことと
を包含する、
項目4に記載の方法。
(項目6)
暗号値をユーザに伝達する方法であって、該方法は、
語彙を選択することと、
該暗号値をビット列として表示することと、
該ビット列を該語彙から選択された単語から形成される文法的に正しいテキストに変換することと、
該文法的に正しいテキストを該ユーザに伝達することと
を包含する、方法。(項目7)
前記ビット列を変換するステップは、
(a)該ビット列を少なくとも第一の区画、第二の区画および第三の区画に分割するステップと、
(b)該第一の区画の値に基づいて文タイプを選択するステップと、
(c)該第二の区画の値に基づいて動詞の型を選択するステップと、
(d)該第三の区画の第一の部分の値に基づいて文法的に正しい文を構築する単語を選択するステップと、
(e)該選択された文タイプ、該選択された動詞の型、および該選択された単語から該文法的に正しい文を構築するステップと
を包含する、
項目6に記載の方法。
(項目8)
前記ビット列を変換するステップは、
第二の部分を取得するために、前記第一の部分を前記第三の区画から減算するステップと、
該第二の部分が正の長さを有すると決定されると、該第二の部分を追加の文法的に正しいテキストに変換するために、前記ステップ(a)〜前記ステップ(e)を繰り返し、該追加の文法的に正しいテキストを該ステップ(a)〜該ステップ(e)で形成された該文法的に正しいテキストに付加するステップと
をさらに包含し、
該繰り返されるステップ(a)〜ステップ(e)において、該第二の部分は、該ビット列の代わりに用いられる、
項目7に記載の方法。
(項目9)
ユーザによってメッセージに署名する方法であって、
該メッセージのハッシュ値を計算するステップと、
項目1〜項目8のうちのいずれか一項に記載の変換方法を用いて該ハッシュ値をテキストに変換するステップと、
オーディオ記録を受信するステップであって、該オーディオ記録は、該テキストを朗読する該ユーザによって生成された音声信号を捕捉する、ステップと
を包含し、
該オーディオ記録は、該ユーザによって署名された該メッセージの署名として用いられる、
方法。
(項目10)
前記ハッシュ値は、セキュアなハッシュ関数を用いて計算される、項目9に記載の方法。
(項目11)
暗号化されたメッセージを伝送する方法であって、
項目1〜項目8のうちのいずれか一項に記載の変換方法を用いて該暗号化されたメッセージをテキスト形式のカバーテキストに変換するステップと、
埋め込みテキストを選択するステップと、
ステガノグラフィックメッセージを生成するために、該カバーテキストを該埋め込みテキストに埋め込むステップと、
該カバーテキストを含んでいる該ステガノグラフィックメッセージを伝送するステップと
を包含する、方法。
(項目12)
秘密のテキストを本来のテキスト内に隠蔽する方法であって、 選択のリストを生成するために、該本来のテキストの修正可能な部分を識別するステップであって、該修正可能な部分は、該選択のリストに基づいた、該本来のテキストへの文法および語彙の変更を含み、該変更は、該本来のテキストの意味を保存する、ステップと、
該選択のリストをビット列に変換するステップと、
暗号値を該ビット列に割り当てるステップと、
項目1〜項目8のうちのいずれか一項に記載の変換方法を用いて該暗号値をテキストに変換するステップと、
透かし入りの本来のテキストを取得するために、該テキストからの単語を用いて該修正可能な部分を修正するステップと
を包含する、方法。
(項目13)
前記秘密のテキストは、前記本来のテキストを一意に識別する文字ストリングである、項目12に記載の方法。
(項目14)
前記文字ストリングは、シリアル番号である、項目13に記載の方法。
本発明の一実施形態または複数の実施形態が、限定の目的ではなく説明の目的のために、ここで添付の図面を参照しながら例としてさらに詳細に説明される。
図1は、公開鍵のテキスト表示を生成するプロセスで使用する擬似単語を生成するステップを概略的に例示している。 図2は、テキストを符号化するステップを概略的に例示している。 図3は、公開鍵として用いられ得るテキストにビット列を復号化する、図2に示されたプロセスの逆のプロセスのステップを概略的に例示している。 図4は、公開鍵などのビットストリームを文法的に正しいテキストに変換するステップを例示している。 図5は、図3および図4に例示されたような方法を用いてテキスト形式にさらに変換され得る公開鍵を圧縮する方法のステップを例示している。 図6は、テキスト形式にさらに変換され得る公開鍵の証明証を圧縮する方法のステップを例示している。
(実施形態の詳細な説明)
以下の説明およびそこに記載された実施形態は、本発明の原理の特定の実施形態の例または複数の例を示す目的で提供される。これらの例は、限定する目的のためではなく、それらの例の原理および本発明を説明する目的のために提供される。以下の説明において、同様な部分が、本明細書および図面にわたって同じそれぞれの参照番号によって示される。
よりよく管理できる公開鍵などの暗号値を生成する1つのアプローチは、実在の単語または文により似ている形式か、または少なくともランダムな文字の集合であるように見えない形式で暗号値を表示することである。下記された方法は、公開鍵などの暗号値をランダムな文字の集合であるように見えない形式に変換するユーザインタフェースを提供する。ユーザインタフェースは、証明機関によって用いられ得ることにより、例えば、公開鍵の証明証を擬似単語の集合に変換するか、または無意味であるように見え、おそらく擬似単語だけから成り得るが、それにもかかわらず見たところ文法的に正しい擬似文にさえも変換する。インタフェースはまた、対応する秘密鍵を誰にも露出することなく公開鍵をユーザに対してよりよく管理できる形式で変換するために用いられ得る。公開鍵の変換に頻繁に言及されるが、インタフェースは、公開鍵を変換することに限定されないことが理解されるであろう。それどころか、インタフェースと、その内に組み入れられた方法とは、特に、公開鍵、秘密鍵、署名または暗号文か否かにかかわらず、任意の暗号値に適用され得る。
有利なことに、読みやすい表示で公開鍵をユーザにディスプレイするユーザインタフェースは、ユーザが、
・公開鍵を印刷ソース、筆記ソース、または口語ソースから取得し、タイプすることと、
・遠隔地から精神的な記憶(mental storage)を有するように、公開鍵をメモリから呼び戻し得ることと
を可能にする。
そのように取得された読みやすい公開鍵は、適正にフォーマットされる場合には、電子メールまたはウェブサイトに対するアドレスとして用いられ得る。この態様において、ウェブサイトアドレスまたは人の電子メールアドレスは、ウェブサイトまたは人によって用いられる公開鍵と一致する。例えば、ウェブサイトは、そのアドレスを入手可能に広告し、それによって、同時にその公開鍵をユーザに提供し得る。
読み取り可能な形式で公開鍵を表示することは、代替のIDベース暗号(「IBE」)システムの基礎を形成し得る。そのようなIBEシステムにおいて、各ユーザは、当人の秘密鍵/公開鍵の対の選択および生成に責任がある。ユーザの秘密鍵は、どのようなものにもさらされない。ユーザの公開鍵は、その通常の形式(ランダムな文字の集合であるように見えることがある形式)で表示されない。それどころか、公開鍵は変換され、そして読みやすい表示で表現される。この形式における公開鍵は、ユーザのIDの一部分となり得るか、またはユーザのIDとして用いられ得る。
公開鍵全体を表現するときには、公開鍵のコンパクトさが望ましい。なぜならば、読みやすく表現されたにしても、ユーザは概して、少ないデータ量だけを管理することができる傾向があるからである。従って、楕円曲線暗号技術は、その小さな公開鍵サイズによって、特に、「Method of Compressing a Cryptographic Value」と題され、同一人に譲渡された同時係属中の出願に記載されるようなポイント(point)圧縮によって、この技術に対してより適切であると考えられる。
本明細書中に記載された方法は、記録および再接合により大きな抵抗を示すように次の特徴、
1.単語の任意のリストの代わりに、連続的な文法的に正しい文が用いられる。この特徴の利点は、単語が接続されており、互いに接合することがより困難であるということであること
2.比較的短い普通の単語の短い辞書を用いる代わりに、よりまれな単語のより大きな辞書が用いられる。ユーザは、これらの単語を用いる可能性がより少なく、従ってそれらを言うことが、記録される可能性がより少ないこと
3.有効な英単語を用いる代わりに、擬似単語が構築され、該擬似単語は、日常的なスピーチで用いられるのではないが、ユーザにとって管理できるようにする有効な英単語への十分な類似性を有する特性を有していることと
を組み込む。
テキスト解凍方法は、公開鍵などの暗号値を読みやすくする1つの方法である。このアプローチの要件は、解凍されるテキストが、いつも成功裡に圧縮されるべきであるということである。なぜならば、公開鍵が正確に一致しなければならないからである。換言すると、テキスト圧縮は、テキスト解凍が行ったことを正確に元に戻さなければならず、すなわち、圧縮は可逆でなければならない。
一般的には、方法は、人が公開鍵に出現してほしいと望む多様な大量のサンプルテキストをとることによって起動し、次にこのテキストに対してテキスト圧縮アルゴリズムを開発する。次に、テキスト解凍アルゴリズムを公開鍵に適用して、公開鍵のテキストを取得する。テキスト圧縮は、テキスト文字列に対応する数値を見出すための逆のプロセスである。以下において、方法は、サンプルテキストとして擬似単語の集合を生成するプロセスを最初に記載し、次に圧縮アルゴリズムと、対応する解凍アルゴリズムとを記載することによって説明される。
一実装において、サンプルテキストとして擬似単語の大きな集合を築くことによって起動する。有効な単語の大きな集合、例えば、80,000語以上の有効な英単語のデータベースが、開始点として選択され得る。擬似単語を築くために、少なくとも5つの英文字のランダムな単語が選ばれて、擬似単語の第一の4つの英文字を作る。擬似単語の第五の英文字を決定するために、データベースから別の単語が選ばれ、第二、第三および第四の英文字が擬似単語の現在の英文字のそれらと一致させる。第二の単語の第五の英文字が、擬似単語の第五の英文字を決定する。第二の単語が単に4つの英文字を有する場合には、擬似単語は第二の単語の第四の英文字で完成する。単語の終わりは、仮想英文字とみなされている。擬似単語が完成しない場合には、第六の英文字は、第三、第四および第五の英文字とオーバーラップするランダムな第三の単語によって決定される。これは、擬似単語が終了するまで続く。上記の原理に従って表1の擬似単語が生成される。
Figure 0005121930
このように、擬似単語のすべての4英文字のセグメントは、データベース内の単語の対応する4英文字のセグメントと一致する。これは、最初のデータベース内にないことがあり得るが、擬似単語を有効な単語として非常にもっともらしいように表示する。実際には、擬似単語が有効な単語の1つとして終わる場合には、所望に応じて、擬似単語は拒絶され得る。擬似単語のもっともらしさは、ユーザがより管理しやすくする。選択的に、擬似単語は、重み付け確率によって生成され得る。普通の確率の組がデータベース内の単語に割り当てられた場合には、生成された擬似単語は、より自然であるように見える傾向がある。
このプロセス100は、図1でさらに説明される。最初に、ステップ110で、単語の集合が選択される。上記されたように、単語の集合は、有効な英単語のデータベースであり得る。理解されるように、単語の他のデータベースまたは文字のグループがまた用いられ得る。初めの候補単語は、ステップ120で擬似単語の初めのセグメントが選択された集合から選択される。次に、次の単語と一致するためのスライディング(sliding)ウィンドウが、ステップ130で選択される。スライディングウィンドウは、3つの連続的な文字、4つの連続的な文字、単一の文字、1つおきの文字、または他のグループであり得る。初めのセグメントは、初めの候補単語とスライディングウィンドウとから決定される。この例において、スライディングウィンドウは、3つの連続的な文字から成り、初めの候補単語の第二の文字から開始する。初めのセグメントは、第一の候補単語の第一の4つの英文字から成る。
次に、ステップ140で、第二の単語が集合から選択され、そしてステップ150で初めの候補単語と比較される。これらの2つの単語は、それらが共通のセグメントを有すること(すなわち、スライディングウィンドウ内の2つの単語のそれぞれの英文字が一致するか否か)を決定するために比較される。それらが一致しない場合には、プロセスは、一致する単語が見出されるまで、ステップ140に戻って、次の単語を選択する。ステップ160で、一致する単語が検査されて、それがスライディングウィンドウを超える少なくとも1つの英文字を有しているか否かを決定する。有している場合には、共通のセグメントの外の一致する単語から選択された、スライディングウィンドウに続く最初の英文字などの英文字が、擬似単語の終わりに追加され、該擬似単語は、この時点で初めのセグメントから成る。スライディングウィンドウは次に、ステップ170で1つの英文字ずつ右に移動されて、まさに追加された新しい英文字を含む。プロセスは次いでステップ130に戻って、スライディングウィンドウ内の擬似単語の英文字が選択された単語の英文字と一致するような単語が見出されるまで、集合から次の単語を選択する。一致する単語がスライディングウィンドウを超える英文字を全く有しない場合か、または擬似単語が事前選択された単語の長さに達する場合には、プロセスは終了する。そのように形成された擬似単語が、ステップ180における出力である。選択的に、生成された擬似単語が、ステップ180で集合内の単語と比較され得ることにより、擬似単語が既存の単語との正確な一致であるか否かを決定する。正確な一致である場合には、生成された単語は拒絶され、プロセスはステップ120に戻って、「有効な」単語のうちの1つではない単語を形成する。
そのように生成された擬似単語の数は、オーバーラップするセグメントの長さに依存して、最初のデータベース内の有効な単語の数を超えてかなり拡大し得る。結果として、そのように形成された擬似単語は、有効な単語よりも多くの情報を伝達するために用いられ得る。
擬似単語の大きな集合を生成すると、次に、圧縮/解凍のアルゴリズムを開発する必要がある。各擬似単語は、ビット列に対応するように作られ得る。マッピングは1対1でなければならず、それにより、任意の擬似単語がビット列から回復され、そしてその逆もまた同様に回復され得る。演算符号化(arithmetic encoding)が、そのような1対1のマッピングを決定するために用いられ得る。演算符号化は、可能性として最もコンパクトな圧縮を形成する能力のあることが知られている。従って、それは、圧縮されたテキストが非常に小さな構造を持つという特性を有し、任意のランダムなビット列を実質的に解凍可能であることを意味している。特に、それは、公開鍵のようなテキスト解凍のランダムデータに対してかなり影響を受けやすい。この技術を用いて、人は第一の4つの英文字を用いて、例えば、半広の単位間隔[0,1)のサブ間隔(subinterval)内に第一の区分を決定する。これは、単語をサブ間隔に割り当てるステップである。サブ間隔の中のどのサブ間隔に、単語が割り当てられるべきかが、決定論的関係を用いて決定され、その例は以下で詳細に記載される。サブ間隔自体は次いで、より小さなサブ間隔へとさらに分割される。次の4つの英文字が、サブ間隔のサブ間隔内への次の区分を決定する。各4英文字のセグメントは、それをより小さなサブ間隔へと移動する。このコーディングは適応的である。なぜならば、第二から第五までの英文字から成る4英文字のセグメントの確率分布が、第一から第四までの英文字に依存するからである。もちろん、4英文字のセグメントがこの例で用いられるが、他のグループ、例えば、英文字の対または3英文字のセグメントがまた用いられ得る。さらに、演算符号化が例として用いられるが、ハフマン符号化などの他の圧縮/解凍アルゴリズムがまた用いられ得る。
このプロセスの例が図2でさらに例示され、以下においてかなり詳細に記載される。最初のステップは、サンプル集合内の連続する4英文字のグループの頻度を作表することである。サンプル集合は、図1に示された手順に従って生成されるようなプールされたテキストかまたは擬似単語の集合であり得る。一旦頻度が作表されると、頻度が確率に、すなわち、半広の単位間隔[0,1)内の数字に変換される。4英文字のグループに基づいたこの頻度または確率の作表が例示の便宜のためであることは理解されるであろう。他のグループがまた用いられ得る。例えば、頻度は、単一の英文字、3つの英文字のグループ、単語、または他のパターンに基づき得る。また、テキスト圧縮は、適応的な演算コーディングを用い得、そこでは、頻度が変化し、圧縮されるテキストに適応しさえする。
次に、単位間隔200または半広の範囲[0,1)は、0を含むが1を含んでおらず、頻度に比例する確率のそれぞれに対応する長さのサブ間隔202に分割される。これらのサブ間隔は、オーバーラップしない。各サブ間隔は、それが下限の値を含むが、上限の値を含まないという点において半広である。サブ間隔の集合全体が、完全に単位間隔[0,1)を満たす。4英文字の各グループは、一意のサブ間隔を範囲[0,1)で割り当てられる。各サブ間隔が4英文字のグループに一意にマッピングされる限り、どのサブ間隔が4英文字の特定のグループに割り当てられるかは重要ではない。
擬似単語などのテキスト文字列をビット列に割り当てるために、最初にテキストを4英文字の連続するグループに分割する。最後のテキストは、必要に応じて4英文字までパディングされる。最初のビット列に符号化されたテキストを成功裡に解凍するためには、同一のパディング規則が、圧縮プロセスと解凍プロセスとの両方に対して用いられなければならない。第一のグループが、第一のサブ間隔204を決定し、第一のサブ間隔204は、範囲a〜bまたは[a,b)を有し、その範囲は、aを含むがbを含まない。従って、テキストは、サブ間隔204内の数または範囲[a,b)に対応する。
次に、サブ間隔204は、頻度または確率の同一の割り当てに基づいて単位間隔[0,1)にさらに再分割される。すなわち、マッピング206において、間隔[a,b)が、再分割される単位間隔[0,1)にマッピングされる。次の4英文字が、次のサブ間隔208、すなわち範囲[c,d)を決定する。換言すると、テキストの数は、
a+(b−a)*c
を超えるが、
a+(b−a)*d
未満の数に対応することがこの時点で決定され得る。テキストがより多くの残りの文字を有する場合には、次の4英文字が検査され、それは、さらなるマッピング210を介して数を、範囲[a+(b−a)*c,a+(b−a)*d)内のより微細なサブ間隔212[e,f)に移動させる。このプロセスは、テキスト内のすべての文字を使い果たして最終的な範囲が見出されるまで、必要に応じてさらなるマッピング214、216を介して繰り返される。従って、4英文字の各グループは、数をより小さなサブ間隔に限定する。本質的に、これは不均衡な語根の拡張である。一旦最終的な範囲またはサブ間隔が決定されると、テキストは、この範囲の数に対応するように設定され得る。数を最初のテキストに変換するときに、対応する規則が用いられる限り、任意の規則が、この範囲で数を選択するために用いられ得る。1つの可能性は、範囲の開始点を最終的な数として選択することである。
好ましくは、以下で記載されるように、数は、2進の拡張に基づいて選択され得る。サブ間隔が小さくなるにつれて、最終的な範囲は、0と1との間の数に近づくことが認識されるであろう。このサブ間隔内の任意の数の2進の拡張は、形式0.b...であり、ここで、各ビットbは、b∈{0,1}である。実際に、サブ間隔がかなり小さいので、あるnに対する最初のnビットの値は、サブ間隔内のすべての数字に対して同じになるであろう。すなわち、サブ間隔内のすべての数字は、形式0.b...b+Δで表現され得、ここで、Δ< である。これらのビット、b...bが、テキストの圧縮された値を形成する。
テキストの解凍は、単に上記のプロセスを逆にする。それは、ビット列を間隔0〜1内の数に変換し、次いで対応するサブ間隔を決定し、これらのサブ間隔を本来のテキストに変換する。
図3は、ビット列を解凍し、それをテキストに変換するプロセス300のステップを詳細に例示している。プロセスを初期化するために、すべての可能な連続する4英文字のグループの頻度が作表され(ステップ310)、上記のように、4英文字の各グループが、単位間隔[0,1)内のサブ間隔212[e,f)を割り当てられる(ステップ320)。次に、ビット列b...bが、数x=0.b...bとして表現される(ステップ330)。
ビット列b...bから第一の4文字を見出すために、数xが位置するサブ間隔または範囲[a,b)が、文字のグループとサブ間隔との間のマッピングから最初に決定される(ステップ340)。これは、第一の4文字を決定する。次の4文字を見出すために、決定された4文字の寄与が数から除去される(ステップ350)。そうするためには、範囲の下限の値が数から減算され、差分が範囲によって除算され、
=(x−a)/(b−a)
となる。寄与の除去は、場合に応じてビット列b...bかまたはビット列の残りのビットからの最上位ビットの除去と等しい。プロセスは、数xが位置する次のサブ間隔または範囲[c,d)を見出すために、ステップ340から繰り返される。プロセスが繰り返すときに、ビット列b...bからのビットがもう残っていない時点が存在する。この状態は、プロセスを終了させるために、ステップ360で試験される。最後のグループが任意のパディング文字を含んでいる場合には、パディング文字が除去される。4文字のこれらのグループは、それらが決定された順序で配列されており、解凍されたテキストを形成する。解凍されたテキストは、最終ステップ、ステップ370で出力される。この方法でビット列から解凍されたテキストは、公開鍵、公開鍵の証明証または暗号文などの暗号値のよりよく管理できる表示として用いられ得る。
選択的に、ユーザによってなされた一部の小さなエラーが訂正され得るように、何らかのフォールトトレランスを含むことは有利である。(これは選択的である。なぜならば、通常、電子メールおよびウェブアドレスが何らの有意なフォールトトレランスを含まないからである)。フォールトトレランス、エラー検出またはエラー訂正のコードを含むことが、テキスト解凍の前に公開鍵に適用され得る。テキスト解凍の際に、公開鍵のテキストは、スペル訂正などの特定の冗長性を含み得る。従って、ユーザが公開鍵のテキストを入力するときに、公開鍵のテキストは最初にスペルが訂正され得、次いで圧縮され、次にエラーが訂正される。そのような対策は、わずかなコストを招くが、システムをより使用可能にする結果につながる。
暗号値を読みやすく表現することへの別のアプローチ(いわゆる「文法段落方法(Grammatical Paragraph Method)」)は、文法的に正しいテキストを作ることである。一般的に言えば、文法的に正しい文は、一般的な圧縮技術によって、また適応的な演算コーディングによってさえも容易に検出されない特定の冗長性を有している。さらに、従来のサンプルテキストに基づくテキスト圧縮アルゴリズムは、最適であるよりも効率的でないことがあり得る。このことは、サンプルテキストが意味的に正しく、従って特別な冗長性を有しているためである。意味的に理解されない文は、おそらくユーザインタフェースとして暗号値に使用可能である。意味のない文がそれほど冗長性を有していないので、意味のない文は、より小さな表示を提供し得る。
Figure 0005121930
表2は、数字を段落に変換する例示的な実装の結果を示している。数字は、ビットストリームとして扱われる。ビットストリーム内の初めのビットが、初めの文を決定する。初めの文は、ストリームのいくつかのビットを消費し、それは、演算コーディングを介して低減される。演算コーディングにおいて、ビットストリームは、無限とみなされるので、終了条件が各文に対して試験される。ストリームがまだ終了されない場合には、別の文が生成される。ストリームが文の中間で終了する場合には、残りのビットは、最後の文が終了するまで、0に設定されるか、または復号化にも用いられる他のビットパターンによってパディングされる。
図4は、文法的に正しいが、必ずしもどのような意味も伝えないテキストにビットストリームを変換する適応プロセス400のステップ例を詳細に示している。便宜上、第一のステップ、ステップ410は、構築される文について特定の選択を行うために、初めのビットを用いることである。すなわち初めのビットは、構築される文を文レベルで決定するために用いられる。例えば、第一のビットは、文が陳述文、疑問文または命令文のいずれになるかを決定するために用いられ得る。さらに、これらの第一のビットはまた、文が重文または単文のいずれになるかを決定するために用いられ得る。ビットの実際の数と、これらのビットの値がどのように文のタイプに割り当てられるかとは、設計選択である。認識されるように、文レベルでの文についての他の選択がまた、この時点に行われ得、それは、より多くの初めのビットを消費するであろう。
次に、ステップ420で、次のビットが、文の動詞についてのいくつかの選択を決定するために消費される。例えば、それらのビットは、特に、本動詞が他動詞または自動詞のいずれになるか、動詞の時制が何であるか、そして文が肯定または否定のいずれであるかを決定するために用いられ得る。一旦これらの選択が行われると、実際の動詞が、ステップ430で動詞の語彙から選択される。好ましくは、これらの候補の動詞は、インデックスを付けられ、ビットの次のグループに対応するインデックスの動詞が選択される。動詞とビットのグループとの間の他の対応が用いられ得る。あるいは、動詞はまた、ストリームの何らのビットも消費しない決定論的アルゴリズムで選択され得る。動詞選択の他の微細化が行われ得る。例えば、単語を選ぶ前に、規則動詞または不規則動詞を用いるか否かを決めることが実装され得る。なぜならば、このことは、実装を少しより容易にするからである。
同一の対応(例えば、ビットのグループと動詞の時制との間の対応)が逆のプロセスに用いられる限り、上記の選択がどのように行われるかは重要でないことが認識されるであろう。さらに、これらの選択が行われる順序もまた重要ではない。例えば、文の態または動詞の時制が最初に選択されるか否かにかかわらず、生成された文または構築プロセスにも影響しない傾向がある。それでも、特定の順序が好適であり得る。例えば、最初に文のタイプを選択すること(すなわち、文が陳述文、疑問または命令文のいずれになるかを最初に決定すること)は、特定の他の選択を行うことが不要になり得る。例えば、文が命令文である場合には、動詞の特定の時制が用いられないことがあり得るか、またはより可能性が小さくなり得る。
次にステップ440で、文の主語が決定される。いくつかのビットは、主語が単数または複数のいずれであるかを決定するために消費される。主語の人称がまた決定される。主語が一人称でも二人称でもない場合には、さらなるビットが、名詞を選択するために消費される。同様に、文の目的語が、ステップ450で決定されるが、ビットストリームからより多くのビットを消費する。
文がステップ460で構築される。この構築ステップは、上記のステップで決定されたすべての構成要素を合わせて単に集めるよりも多い。文は文法的に構築される。例えば、疑問文が構築される場合には、適切な助動詞が最初に決定され、文の最初に配置される。認識されるように、文法的に正しい文は、一般的な圧縮技術によって、また適応的な演算コーディングによってさえも容易に検出されない特定の冗長性を有している。意味的に理解されない文は、おそらくユーザインタフェースとして暗号値に使用可能である。さらに、単語が連続的な文法的に正しい文で接続されるので、単語を互いに接合することは概してさらに困難であり、従って、暗号値のそのようなテキスト表示をセキュリティ攻撃に対してより大きな抵抗力があるようにする。
文が構築された後に、ビットストリーム内に余分の残りのビットがまだ存在する場合には(ステップ470)、プロセスは、次の文を構築するために、ステップ410に戻る。すべてのビットが消費された場合には、構築された文が最後の文になり、構築されたすべての文が、出力に送信される(ステップ480)。最後の文の構築の間に、ビットストリーム内の残りのビットが十分でない場合には、最後の文が構築され得るまで、ビットストリームはパディングされる。もちろん、テキスト表示がビット列に戻るように変換されるときには、同一のパディングされたビットが、復号化プロセスの間に除去される。
コーディングが適応的であることは認識されるであろう。従って、ストリームの末尾への変更は、コーディングの末端を変更するだけである。表3は、このことを例示している。表2および表3の数字は、ボールド体で示される、後に続く部分においてだけ異なっている。最初の3つの文は、前に表2に示された最初の3つの文と同一である。両方の例において、第四の文は、否定文で、かつ一人称である。第二の数字内の後に続く10進のゼロが、後に続くゼロのビットをもたらす。これらの後に続くビットが、残りの文に影響を及ぼし、本動詞「to be」を有する第四の文、第六の文および第七の文にも関与する。
Figure 0005121930
認識されるように、文の構築プロセスは、より多くの様々な文を含むように修正され得、その結果として、段落がより「現実的」に見えることがあり得る。例えば、生成された段落が、受動態、前置詞、複合語、従属節、または比較を用い得る。これらの追加機能を付加することによって、より多くのビットが、文についての選択を提供するために必要とされ、出力テキストが、よりいっそう短くなる傾向がある。
この符号化方法は、暗号値(例えば、公開鍵、鍵証明証またはデジタル署名)を圧縮する一般的な方法と非常にうまく組み合わされる傾向がある。以下の例は、暗号値を圧縮する方法を例示する。
図5は、公開鍵を圧縮する方法を例示している。圧縮プロセス500は、暗号値(この例では公開鍵)に対する圧縮基準を選択することによって、ステップ510から始まる。基準は、例えば、単語または擬似単語の所定の集合から選択されることをすべての公開鍵に要求することによる規則ベースであり得る。基準はまた、例えば、選択された暗号値が40個の後に続くゼロを必要とすることによるパターンベースであり得る。基準はまた、後に続く文字の所与の数または暗号テキストの全体に対して、例えば、電子メールアドレスまたはウェブサイトアドレスに対応するように、特定のストリングまたはテキストを選択することであり得る。基準はまた、暗号値をよりよく管理できるようになし得る任意の他のユーザ選択要件に基づき得る。もちろん、基準はまた、別のプロセスで事前決定されるか、またはシステムに従った要求などのサードパーティによって決定され得る。基準の目的は、暗号値の特定のビットが、伝送および記憶の間に省略され、次いで、さらなる暗号操作(例えば、解読)が、その暗号値において実行される前に再構築され得ることである。例示のために、基準は、圧縮された公開鍵が40個の後に続くゼロを有しなければならないことを必要とする。
公開鍵システムにおいて、公開鍵は、その対応する秘密鍵と数学的に関係がある。例えば、楕円曲線公開鍵は、その対応する秘密鍵の一定の倍数であり、乗数は、次数nの選択された楕円曲線のジェネレータ(generator)gである。図5に示されたプロセス500は、網羅的なサーチの間に違った形で必要とされる乗算操作を避けるために、秘密鍵と公開鍵との間の倍数的に増加する関係を利用する。プロセス500の残りのステップは、次のように、
1.秘密鍵/公開鍵の対(d,Q)を初期化、すなわち、最初に任意の秘密鍵d∈[1,n−1]を生成し、そしてインデックスiを0に設定し(ステップ520)、次いで、対応する公開鍵Q=dgを計算する(ステップ530)
2.ループ内で、公開鍵Qが圧縮基準を満たしているか否か、すなわち、公開鍵Qが40ビットの0で終わるか否かを最初に評価する(ステップ540)
3.Qが圧縮された形式でない場合には、
(a)秘密鍵をインクリメントする。di+1=d+1(ステップ550)
(b)公開鍵をインクリメントする。Qi+1=Q+g(ステップ560)
(c)iを1によってインクリメントする
(d)ループの始め(すなわち、ステップ540)に戻る
4.圧縮された鍵Qが見出されるときには、秘密鍵/公開鍵の対(d,Q)を出力する(ステップ570)
となる。
このプロセスは、約240回繰り返す。一旦圧縮された鍵が取得されると、圧縮された鍵は、それのテキスト表示を取得するために、図3と関連して記載された方法を用いて「符号化」され得る。
上記のように、暗号値は、公開鍵に限定されない。以下の例は、公開鍵の証明証内のCAデジタル署名の圧縮を例示する。公開鍵システムにおいて、公開鍵の証明証は、少なくとも2つの部分、データ部分および署名部分から成るデータ構造である。データ部分は、証明される少なくとも公開鍵と、公開鍵の所有者のID(identity)を表す情報の一部分とを含む平文データを含んでいる。署名部分は、データ部分に関するデジタル署名から成る。デジタル署名は、証明機関のデジタル署名であり、それによって、鍵所有者のIDを保証された鍵と結び付ける。
証明機関は、選択されたその公開鍵Qおよび秘密鍵dをすでに有しており、概して、公開されたその公開鍵をすでに有している。従って、対象エンティティの公開鍵の証明証が、2つの異なる方法で圧縮され得る。それは、(a)対象エンティティの適切な公開鍵が、上記のように圧縮されるように適切に選択され、(b)CAの署名が圧縮される。両方の圧縮方法が、1つの証明証に適用され得る。図6は、実施形態の例において、公開鍵の証明証が、どのように圧縮され得るかを概略的に例示している。この例において、圧縮基準は、40個の後に続くゼロを有する証明証を見出すことである。
CAは、データ部分を初期化することによって、プロセス600を初期化する。初期化610の間に、CAは、対象の初めの短命な秘密鍵kを選択し、対応する初めの短命な公開鍵Rを計算する。CAはまた、ID情報Iを選択して、証明証に含める。ステップ620で、CAは、その確定された静的な秘密鍵dと、その短命な秘密鍵kとを用いて初めのデータ部分に署名することにより、初めの署名Sを取得する。ECDSA署名に対して、署名Sは、(r,s)として計算され、rは、Rのx座標から導き出され、sは、(H(m)+dr)/k mod nとして計算される。ここで、Hは、ハッシュ関数であり、nは、ECDSAに対して用いられている楕円曲線群の次数である。計算された署名Sは、ステップ630で評価されて、署名Sが40個の後に続くゼロを有しているか否か、すなわち、署名が圧縮基準を満たしているか否かを決定する。
概して、任意の初めの短命な公開鍵は、圧縮された証明証には至らない。CAは次いで、ステップ640で新しい鍵の対を発見する。有利にも、CAは、短命な秘密鍵をインクリメントし、対応するインクリメントを追加することによって、対応する短命な公開鍵を、
i+1=k+1
i+1=R+g
として計算し得る。次に、プロセスはステップ620に戻り、新しい公開鍵に対応するデジタル署名が計算される。新しい署名は、ステップ630で評価されて、新しい署名が基準を満たしているか否かを決定する。基準を満たしている場合には、CAは、プロセスを終了させ、ステップ650で対象エンティティに鍵の対と圧縮された公開鍵の証明証とを提供する。署名が基準を満たしていない場合には、ステップ620、ステップ630、およびステップ640が、圧縮された証明証が見出されるまで、繰り返される。そのように取得された公開鍵の証明証は、その署名部分が圧縮されることにおいて圧縮される。
圧縮された証明証は、例えば、図3で例示されたプロセスを用いて、よりユーザフレンドリなテキスト表示にさらに変換され得る。同様に、テキスト表示への変換はまた、図5および図6に示された圧縮プロセスの一部分として実行され得る。概して、暗号値(例えば、公開鍵または鍵証明証)をさらに圧縮するほど、暗号値は、ユーザフレンドリなインタフェースによって表現されると、さらに管理できるようになる。
テキスト表示アルゴリズムのさらなる適用が上記されたように、本発明者らは、以下のことを考慮する。文書(または、一見したところランダムな文字を含み得る任意のテキストを含む任意のメッセージ)に言語で署名するために、ユーザは、文書のハッシュ値をハッシュ関数あるいはSHA−1またはSHA−256などのセキュアなハッシュ関数を用いて計算する。そのようなハッシングは、通常ECDSAおよびRSAなどの公開鍵署名に対しても行われる。なぜならば、メッセージが公開鍵よりしばしば長いからである。結果としてもたらされるハッシュは、ビット列であり、かつ暗号値である。選択的に、ユーザが、ECCなどの公開鍵インフラの一部である秘密鍵を有する場合には、ユーザは、ユーザの秘密鍵(および暗号デバイスまたはトークン)を用いて公開鍵署名を生成し得る。いずれの場合にも、ユーザは、暗号値が、署名されるメッセージの単にハッシュまたは公開鍵署名であるか否かにかかわらず、暗号値を有している。本明細書中に記載された方法は、暗号値をテキストに変換するために用いられ得る。ユーザはここで、ユーザがテキストを朗読するオーディオ記録またはビデオ記録を作成する。この記録は、メッセージの言語署名である。最もよいセキュリティのために、テキストは、普通でない単語、またはどのような他の状況でもユーザが発しそうにない擬似単語さえも利用する連続的な文法の言語を含むべきである。このことは、攻撃者がユーザの他の記録をとり、言語署名として表すようにそれらを互いに接合することを妨げる。
テキスト表示のまた別の適用としては、ユーザが暗号化されたメッセージ、例えば、電子メールを、暗号化が利用されているという注意を電子メールのオブザーバに対して引き付けることなく送信することを望むことが想定される。この試みに対する一般的用語は、ステガノグラフィー(steganography)である。関連する問題は透かしであり、そこでは、ユーザが所有権を証明するために、1つのメッセージを別のものに埋め込む。既存のステガノグラフィーと透かしを入れる技術は、概して画像データおよび音声データに適用され、そこには、感知できない修正、および検知さえもできない修正の余地がある。本発明は、テキストに適用され得る。ステガノグラフィーの場合において、メッセージの暗号文が、暗号化を用いて生成され、次いで、本発明が、暗号文のそのテキスト表示を生成するために適用される。そのテキスト表示は、カバーテキストと呼ばれる。透かしの場合には、以下で記載されるように、もっと洗練されたテキスト表示方法が必要である。
透かしにおいて、それが適用されるときに、人は、秘密のテキスト(透かし)をより大きなテキスト(本来のテキスト)内に隠蔽することを望む。本発明は、本来のテキストを文法的かつ意味的に分析することによって、このことを提供し得る。文法への特定の変更および(同義語による置換えなどの)語彙への特定の変更でさえも、テキストの意味を変更しない。従って、プロセスは、修正が小さな文法的変更または小さな語彙の変更であるか否かにかかわらず、意味を変更することなく修正され得る本来のテキストの部分を識別することである。例えば、本来のテキスト内の単語は、いくつかの同義語を有し得る。単語を置換するために同義語の1つを選択することは、1つのそのような小さな語彙の変更であり得る。そのような小さな変更のリストは、文法的または語彙的にかかわらず、編集され得る。そのような小さな変更のリストは、ビット列に変換され得、逆もまた同様である。例えば、本来のテキスト内の1つの特定の単語が、4つの同義語のリストの中にあった場合には、4つの単語(例えば、1、2、3または4)のこのリスト内の単語のインデックスが、00、01、10または11として、一対のビットにそれぞれ変換され得る。ここでまた、演算符号化が、これらの小さな文法および語彙の選択が典型的なテキストで行われる方法に基づいて、普通の重み付き確率によって用いられ得、それによって、結果としてもたらされるランダムなビット列の符号化が完全に普通に現われ、普通の本来のテキストがランダムなビット列を符号化する。従って、結果としてもたらされるビット列は、透かしを含む任意の暗号値を割り当てられ得る。
透かしは、実際には、ある大きなメッセージのハッシュか、またはある他のメッセージの暗号化であり得る。埋め込まれた暗号値は、それが埋め込まれた本来のテキストと何らの関係も有する必要がない。しかしながら、埋め込まれた暗号値は、本来のテキストと関連し得る。一実施形態において、埋め込まれた暗号値は、本来のテキストの識別子と関連する。このことは、例えば、シリアル番号を本来のテキストに埋め込むために用いられて、本来のテキスト(すなわち、平文データ)を合法的に購入された平文データのコピーとして識別し得る。従って、このことは、許可を受けて配布された平文データのすべての認可コピーと、無許可で再配布された平文データの無認可コピーとを追跡し、識別する方法を提供する。
本発明の様々な実施形態が、これまでに詳細に記載されてきた。当業者は、多くの修正、適合および変形が、本発明の範囲を逸脱することなく実施形態に対して行われ得ることを認識するであろう。上記された最良の形態に対する変更および/または追加が、本発明の本質、精神または範囲を逸脱することなく行われ得るので、本発明は、それらの詳細に限定されないが、添付の特許請求の範囲にのみ制限される。

Claims (10)

  1. コンピュータによって生成された暗号値を人のユーザに伝達する、コンピュータに実装された方法であって、該方法は、 複数の疑似単語からなる語彙を選択することと、
    該暗号値をビット列として表現することと、
    該ビット列内の個々のビットの値に基づいて、所定の可逆関係に従って該語彙から選択された疑似単語を用いて、該ビット列をテキストに変換することと、
    該テキストを該人のユーザに伝達することと
    を包含する、コンピュータに実装された方法。
  2. 前記暗号値を前記ビット列として表現するステップは、
    (a)秘密の値を選択するステップと、
    (b)秘密の値に対して暗号操作を実行することにより、該暗号値を生成するステップと、
    (c)該暗号値に対応する試験用ビット列が所定の基準を満たしているか否かを決定するステップと、
    (d)該試験用ビット列が該所定の基準を満たすまでステップ(a)(c)のシーケンスを繰り返すステップと、
    (e)該試験用ビット列を該ビット列に割り当てるステップと
    を包含する請求項1に記載のコンピュータに実装された方法。
  3. コンピュータによって生成された受信者の公開鍵をIDベース暗号(「IBE」)システムのユーザに伝達する、コンピュータに実装された方法であって、該方法は、
    複数の疑似単語からなる語彙を選択することと、
    秘密鍵から該公開鍵を計算し、該公開鍵をビット列として表現することと、
    該ビット列内の個々のビットの値に基づいて、該語彙から選択された疑似単語を利用する逆演算符号化アルゴリズムに従って、該ビット列をテキストに符号化することと、
    該テキストを該受信者のIDとして該受信者に伝達することと
    を包含する、コンピュータに実装された方法。
  4. 前記コンピュータによって生成された公開鍵は、次数nの楕円曲線上で規定され、かつジェネレータgを用いて規定された秘密鍵/公開鍵の対に属し、該公開鍵を計算し、該公開鍵を表現するステップは、
    (a)[1、n-1]の範囲内で無作為に選択された秘密鍵を生成し、該秘密鍵から該公開鍵を計算することと、
    (b)該公開鍵が圧縮基準を満たしているか否かを決定することと、
    (c)該圧縮基準が満たされない場合には、該秘密鍵を1だけインクリメントし、該公開鍵をgだけインクリメントし、該圧縮基準が満足されるまで、ステップ(b)(c)を繰り返すことと
    を包含する請求項に記載のコンピュータに実装された方法。
  5. コンピュータによって生成された暗号値を人のユーザに伝達する、コンピュータに実装された方法であって、該方法は、
    複数の疑似単語からなる語彙を選択することと、
    該暗号値をビット列として生成することと、
    該ビット列を該語彙から選択された疑似単語から形成される文法的に正しいテキストに変換することと、
    該文法的に正しいテキストを該ユーザに伝達することと
    を包含する、コンピュータに実装された方法。
  6. 前記ビット列を変換するステップは、
    (a)該ビット列を少なくとも第一の区画、第二の区画第三の区画に分割するステップと、
    (b)該第一の区画の値に基づいて文タイプを選択するステップと、
    (c)該第二の区画の値に基づいて動詞の型を選択するステップと、
    (d)該第三の区画の第一の部分の値に基づいて文法的に正しい文を構築する疑似単語を選択するステップと、
    (e)該選択された文タイプ、該選択された動詞の型該選択された疑似単語から該文法的に正しい文を構築するステップと
    を包含する請求項に記載のコンピュータに実装された方法。
  7. 前記ビット列を変換するステップは、
    前記第一の部分を前記第三の区画から減算することにより、第二の部分を取得するステップと、
    該第二の部分が正の長さを有すると決定されると、該第二の部分を追加の文法的に正しいテキストに変換するために、前記ステップ(a)(e)を繰り返し、該追加の文法的に正しいテキストを先のステップ(a)(e)で形成された該文法的に正しいテキストに付加するステップと
    をさらに包含し、
    該繰り返されるステップ(a)(e)において、該第二の部分は、該ビット列の代わりに用いられる請求項6に記載のコンピュータに実装された方法。
  8. ユーザによってメッセージに署名する、コンピュータに実装された方法であって、該方法は、
    該メッセージのハッシュ値を計算するステップと、
    請求項1〜請求項のうちのいずれか一項に記載の変換方法を用いて該ハッシュ値をテキストに変換するステップと、
    オーディオ記録を受信するステップであって、該オーディオ記録は、該テキストを朗読する該ユーザによって生成された音声信号を捕捉する、ステップと
    を包含し、
    該オーディオ記録は、該ユーザによって署名された該メッセージの署名として用いられる、コンピュータに実装された方法。
  9. 前記ハッシュ値は、セキュアなハッシュ関数を用いて計算される、請求項に記載のコンピュータに実装された方法。
  10. 暗号化されたメッセージを伝送する、コンピュータに実装された方法であって、
    請求項1〜請求項のうちのいずれか一項に記載の変換方法を用いて該暗号化されたメッセージをテキスト形式のカバーテキストに変換するステップと、
    埋め込みテキストを選択するステップと、
    カバーテキストを該埋め込みテキストに埋め込むことにより、ステガノグラフィックメッセージを生成するステップと、
    該カバーテキストを含該ステガノグラフィックメッセージを伝送するステップと
    を包含する、コンピュータに実装された方法。
JP2010516332A 2007-07-17 2008-07-11 暗号値のテキスト表示を提供する方法 Active JP5121930B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US95021307P 2007-07-17 2007-07-17
US60/950,213 2007-07-17
PCT/CA2008/001268 WO2009009871A1 (en) 2007-07-17 2008-07-11 Method of providing text representation of a cryptographic value

Publications (2)

Publication Number Publication Date
JP2010533878A JP2010533878A (ja) 2010-10-28
JP5121930B2 true JP5121930B2 (ja) 2013-01-16

Family

ID=40259242

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010516332A Active JP5121930B2 (ja) 2007-07-17 2008-07-11 暗号値のテキスト表示を提供する方法

Country Status (5)

Country Link
US (1) US8964971B2 (ja)
EP (1) EP2174445B1 (ja)
JP (1) JP5121930B2 (ja)
CA (1) CA2693234C (ja)
WO (1) WO2009009871A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8156414B2 (en) * 2007-11-30 2012-04-10 Seiko Epson Corporation String reconstruction using multiple strings
FR2951289B1 (fr) * 2009-10-14 2011-11-04 Ingenico Sa Procede de simplification de la saisie, par un utilisateur, d'une sequence numerique de grande longueur, dispositif et produit programme d'ordinateur correspondants.
JP2011135275A (ja) * 2009-12-24 2011-07-07 Mitsubishi Electric Information Systems Corp 証明書発行装置、認証局システムおよび携帯端末
WO2011128867A1 (en) * 2010-04-15 2011-10-20 Ramot At Tel Aviv University Ltd. Multiple programming of flash memory without erase
DE102010055699A1 (de) * 2010-12-22 2012-06-28 Giesecke & Devrient Gmbh Kryptographisches Verfahren
US9306940B2 (en) 2014-09-08 2016-04-05 Square, Inc. Mitigating risk of account enumeration
US10037433B2 (en) * 2015-04-03 2018-07-31 Ntt Docomo Inc. Secure text retrieval
US10614456B2 (en) * 2016-08-18 2020-04-07 Visa International Service Association Dynamic cryptocurrency aliasing
JP7087674B2 (ja) * 2018-05-24 2022-06-21 日本電気株式会社 Id発行装置、id発行方法、及びプログラム
WO2020073112A1 (en) * 2018-10-12 2020-04-16 Zeu Crypto Networks Inc. Biocrypt digital wallet
US11722464B2 (en) * 2019-02-28 2023-08-08 Vmware, Inc. Symmetric account authentication
US11651764B2 (en) * 2020-07-02 2023-05-16 Tobrox Computing Limited Methods and systems for synthesizing speech audio

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03236084A (ja) 1990-02-14 1991-10-22 Toshiba Corp 秘密鍵情報入力装置
US5822436A (en) * 1996-04-25 1998-10-13 Digimarc Corporation Photographic products and methods employing embedded information
JPH09114785A (ja) 1995-10-20 1997-05-02 Brother Ind Ltd パスワード生成方法及び装置
US7599491B2 (en) * 1999-01-11 2009-10-06 Certicom Corp. Method for strengthening the implementation of ECDSA against power analysis
DE19910621C2 (de) * 1999-03-10 2001-01-25 Thomas Poetter Vorrichtung und Verfahren zum Verbergen von Informationen und Vorrichtung und Verfahren zum Extrahieren von Informationen
JP2001249684A (ja) * 2000-03-02 2001-09-14 Sony Corp 音声認識装置および音声認識方法、並びに記録媒体
DE60129682T2 (de) 2000-03-29 2008-04-30 Vadium Technology Inc., Seattle Einmalige pad-verschlüsselung mit zentralschlüsseldienst und schlüsselfähigen zeichen
JP2002207426A (ja) * 2001-01-10 2002-07-26 Sony Corp 公開鍵証明書発行システム、公開鍵証明書発行方法、および電子認証装置、並びにプログラム記憶媒体
US7194618B1 (en) * 2001-03-05 2007-03-20 Suominen Edwin A Encryption and authentication systems and methods
KR100395158B1 (ko) 2001-07-12 2003-08-19 한국전자통신연구원 유한 비가환군을 이용한 공개키 암호 시스템
US6720894B2 (en) * 2002-05-29 2004-04-13 Broadcom Corporation Method of and system for performing differential lossless compression
US7601225B2 (en) * 2002-06-17 2009-10-13 Asm International N.V. System for controlling the sublimation of reactants
KR100803285B1 (ko) * 2003-10-21 2008-02-13 한국과학기술원 역 산술 부호화와 타입 추론 엔진을 이용한 질의 가능 엑스-엠-엘 압축 방법
CN100535962C (zh) 2004-05-12 2009-09-02 松下电器产业株式会社 加密系统、加密装置、解密装置和集成电路
US7434061B2 (en) 2004-08-02 2008-10-07 Moseley Brett E Method and system for generating passwords
JP4624235B2 (ja) 2004-10-28 2011-02-02 三洋電機株式会社 コンテンツ利用情報提供装置およびコンテンツ利用情報送信方法
US7730309B2 (en) 2005-07-27 2010-06-01 Zimmermann Philip R Method and system for key management in voice over internet protocol
US8332209B2 (en) * 2007-04-24 2012-12-11 Zinovy D. Grinblat Method and system for text compression and decompression

Also Published As

Publication number Publication date
EP2174445A4 (en) 2011-10-19
CA2693234A1 (en) 2009-01-22
CA2693234C (en) 2016-09-13
US20090022309A1 (en) 2009-01-22
JP2010533878A (ja) 2010-10-28
US8964971B2 (en) 2015-02-24
WO2009009871A1 (en) 2009-01-22
EP2174445A1 (en) 2010-04-14
EP2174445B1 (en) 2016-09-07

Similar Documents

Publication Publication Date Title
JP5121930B2 (ja) 暗号値のテキスト表示を提供する方法
US8073139B2 (en) Method of compressing a cryptographic value
US7315866B2 (en) Method for incremental authentication of documents
Satir et al. A Huffman compression based text steganography method
Naqvi et al. Multilayer partially homomorphic encryption text steganography (MLPHE-TS): a zero steganography approach
US8392713B2 (en) Secure offline activation process for licensed software application programs
US20090265558A1 (en) Document verifying apparatus, document verifying method, and computer product
JP5471444B2 (ja) コンテンツの公開システム及び該システムにおける公開コンテンツの保証方法
CN115380503A (zh) 生成表情符号序列标识以识别区块链钱包的钱包地址
Chen et al. Distribution-preserving steganography based on text-to-speech generative models
CN101060400B (zh) 数据生成装置、数据分析装置、控制方法和数据处理系统
Usama et al. Chaos-based simultaneous compression and encryption for Hadoop
JP2009530906A (ja) コールサインを用いたエンドポイント検証
CN117640069A (zh) 基于马尔可夫链的多方区块链隐蔽通信生成模型
Tutuncu et al. New approach in E-mail based text steganography
Vishwakarma et al. Efficient dictionary for salted password analysis
CN114065269B (zh) 无绑定型非同质化代币的生成方法和解析方法和存储介质
RU2259639C2 (ru) Способ комплексной защиты распределенной обработки информации в компьютерных системах и система для осуществления способа
CN110706100B (zh) 一种保障隐私同时公开透明的区块链认证方法
Jois et al. Pulsar: Secure Steganography through Diffusion Models
Wai et al. Syntactic bank-based linguistic steganography approach
Wai et al. Modified linguistic steganography approach by using syntax bank and digital signature
Ahmad et al. A novel random email-based steganography
Al-Aidroos et al. A comparative study between RIPEMD160 and SHA256 hash functions on digital Holy Quran integrity verification
Zhang et al. An improved secure cloud storage auditing protocol based on distributed string equality checking

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120530

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120809

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120926

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121023

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151102

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5121930

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250