JPH10508955A - 情報保全システム及び方法 - Google Patents

情報保全システム及び方法

Info

Publication number
JPH10508955A
JPH10508955A JP8516035A JP51603596A JPH10508955A JP H10508955 A JPH10508955 A JP H10508955A JP 8516035 A JP8516035 A JP 8516035A JP 51603596 A JP51603596 A JP 51603596A JP H10508955 A JPH10508955 A JP H10508955A
Authority
JP
Japan
Prior art keywords
calculation
processing
encryption
array
mask
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.)
Ceased
Application number
JP8516035A
Other languages
English (en)
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 JPH10508955A publication Critical patent/JPH10508955A/ja
Ceased legal-status Critical Current

Links

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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • 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/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • 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/34Encoding or coding, e.g. Huffman coding or error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

(57)【要約】 少なくとも2つのマスクを提供する暗号化/解読装置であって、各マスクは暗号化される情報のロジック/数学計算に使用され、情報の秘密を保全する。この計算は排他的順序処理、加算処理、及び減算処理を含む。このマスク源はどのような通常のデータからのものであっても構わず、例えば、音楽CDのコードでもよい。送信者は受信者に対して秘密裏に使用マスクが特定CDの特定トラックからのもので、特定方式でサンプルされており、特定パスワードを使用していることを通知する。各マスクの要素の数の積は暗号化されているデータファイルの要素の数より大きくも、等しいものである必要もない。反復によって傍取者による解読は容易化しようが、エンコード用マスクレセプションの各セットの使用とシーケンス処理の制御用のパスワード文字アレイの使用によって、そのデータの秘密性は安全に保たれる。本発明は1回パッドとしての使用を含み、パソコンでの利用が可能である。

Description

【発明の詳細な説明】 情報保全システム及び方法 発明の分野 本発明は一般的に、秘密(機密)情報を保護する暗号記述あるいは暗号化(cr yptographic)装置及び方法に関する。特に、そのような秘密情報が他者によっ て入手が可能である場合や、情報が盗取(eavesdropping)可能な伝達媒体で伝 送される場合に適用される暗号化装置及び方法に関する。 発明の背景 秘密情報の秘密保全技術に対する需要は長年にわたって存在している。しかし 、長距離での、特に電波を利用した電子手段による大量の情報伝達が可能になる に至って、その情報を傍受して盗用する他者の能力が考慮されなければならなく なった。盗取者は暗号化(encrypted)された情報を解読(decipher)するため に強力なコンピュータを利用すると考えられる。本明細書においては、一般的に 暗号化を意味するエンクリプト(encrypt)、エンコード(encode)及びエンサ イファ(encipher)なる用語は、一般的に解読を意味するデクリプト(decrypt )、デコード(decode)及びデサイファ(decipher)なる用語の場合と同様に互 換性を有して使用されている。関連した分野において、大量の情報はデータバン クに保存され、電話回線を利用して意図されていない、あるいは非契約(unauth orized)他者であっても入手が可能となっている。他人に伝達されるものであっ て、あるいは他人に入手が可能な状態で秘密保全が必要とされる情報とは、例え ば、金銭情報、個人情報、法的情報、軍事情報及び商業情報等である。 1917年にバーナン(Vernan)は電信様式の暗号システム(cipher system )(米国特許第1,310,719号:1919年7月22日発効)を開発した 。これは、紙製テープの情報文字(message character)の値(value)にループ 状キーテープ(looped key tape)上の別文字の値を追加し、それらの値の総計 を暗号文字として伝達するものであった。この方法の安全性はキーテープの長さ に依存していることが間もなく判明した。後に、長過ぎるキーテープの使用を排 除す るため、モアハウス(Morehouse:1918年)は2台のバーナン式機械を接続し、 2つの別体となったループ状キーテープを使用して、一方の出力に他方の出力を 修正(modify)させ、結合された出力に情報テープを暗号化(encode)させて暗 号情報を創出させた。これら2本のループ状テープの長さを異ならせ、一方の文 字の全ての変換を他方の全ての文字と共に実行させた。従って、1本の大幅に長 いテープを2本の短いテープで置換可能にした。モーボーン(Mauborgne)はモ アハウスのシステムが、キーテープ(あるいは2本のテープの変換物)が暗号化 されるべきクリアテキスト(clear text)の長さに匹敵するものであり、1回の み使用される(1回パッド(one time pad))(下記参照)ときのみに暗号的に安 全であることを看過した。その情報内であっても、あるいは他の情報の暗号化に 使用する場合であっても、どのような種類のキーであろうがその反復はそのキー テープを無効化した。さらに、情報自体と同サイズではあるがコヒーレント(co herent)テキストから成る暗号キーの使用で作成された暗号テキストは解読可能 であるが、もしそのキーが完全にランダムな文字の集積であれば解読不能である ことも示した。1920年代において、外交用あるいは軍用コードに利用される 多数のコード群は、それらに大きな数値あるいはキーを付加することで偽装され た。1921年から1923年頃にかけて、ショーフラー(Schauffler)、ラン グロッツ(Langlotz)及びクンゼ(Kunze)はドイツの外交団のために、それぞ れ6群から成る8段に配分された48のランダムに選択された5数字群に分割さ れたコードシート(coding sheet)(50シート/パッド)から成るシステムを 開発した。これらのパッドはセットで作成され、1セットは暗号用であり、1セ ットは暗号解読用であって、諸々の場所に送られた。1ページが情報に使用され るとそのページは廃棄された。よってこれを「1回パッド」と呼ぶ。この1回全 長ランダムキーあるいは「パッド」は解読不能である。1967年にニューヨー ク州ニューヨーク市のマクミラン社が出版したデービッド・カーン(David Kahn )による「暗号盗取者・暗号記述の物語(THE CODE BREAKERS THE STORY OF SEC RET WRITING)」(394ページから403ページ)参照。 一般的に、暗号化(encryption)は生情報を暗号(encoded)情報に置換する キーによって提供される。これを暗号テキスト(cipher text)と呼ぶ。暗号テ キストが伝達相手である特定人物に伝達され、その人物が保有するキーで暗号テ キストを解読し、元の情報に戻す。当然ながら、暗号テキスト(適正に作成され た場合)は直接的には判読できない。暗号キー及び解読キーは定義的には関連し たものであるが、従来の暗号化思想は、複雑な暗号Gアルゴリズムを開発し、解 読キーなしでは解読することをほぼ不可能とすることに力点が置かれていた。複 雑な解読アルゴリズムを採用した高速で強力なコンピュータの出現により、暗号 化業界が一層に複雑な暗号化スキームを開発する方向で努力したのは当然の成行 きであった。 伝達情報を保護する1つの技術は、1983年9月20日に発行されたロナル ド・L.リベスト(Ronald L. Rivest)他の米国特許「暗号文による情報伝達シ ステム及び方法」(発明者達のイニシャルからRSAとして知られる)(マサチ ューセッツ州ケンブリッジのマサチューセッツ工科大学に譲渡)に記載されてい る。この特許は特殊な暗号化スキームを開示している。元の情報は、随意の累乗 数の底(base)(この場合は、2つの大きな素数(prime number)の積(product) で割った指数計算の剰余数(remainder))を使用した特定の累乗数(power)に処 理された一連の数字(通常は大きな二進数)(情報文字)で構成されると考えら れた。これらの計算の剰余数が送付される暗号テキストとなった。受信者はこの 暗号テキストを一連の大きな二進数に分割し、これらの数字を解読に必要な指数 に変換し、2つの大きな素数の積で割った指数の剰余数を得ることで暗号テキス トを解読した。この技術は「指数モジュロn(exponentation modulo n)」と呼 ばれる。RSA特許は、大きな数字が普通のコンピュータでは処理困難であるた め、区分された計算方法を提供しており、情報は部分的に暗号化される。この特 許はさらに、信頼できる「電子署名技術(electronic signing technique)」を 提供するハードウェアの適用と他の操作を解説している。この特許文献の欄2の 行10以降では、「暗号記述システムの能力は暗号化装置及び解読装置の複雑度 に依 存する」と述べられている。この文言は以降の暗号技術開発の方向を決定した。 別の発明者は「パブリックキー(public-key)」システムを開発した。この技 術は公開(public)された暗号キーを利用しており、解読キーは対象受信者のみ に知られている。暗号化は解読の論理的逆行程(logical inverse)あるいは計 算であり、よって、暗号キーを公開することは、パブリックキーで暗号化された 情報を解読する重要な出発点を盗取者に提供することにもなる。この「論理的逆 行程」とは、暗号情報から元の情報を導き出すことと定義する。しかしながら、 「パブリックキー」による暗号化スキームをたとえ承知していたとしてもその解 読を非常に困難にしている非常に複雑なシステムも開発されている。1976年 に発行されたIEEE情報理論報告書(IEEE Transactions on Information The ory)に記載されたディフィー(Diffie)とヘルマン(Hellman)の「暗号記述 の新方向(NEW DIRECTIONS IN CRYPTOGRAPHY)」参照。 RSA式暗号化及びそれに類似した技術は複雑である。この複雑性によりいく つかの問題が提起される。 まず、暗号化用のコンピュータはこれらの複雑な計算をタイムリーに実行する 優れた計算能力を備えていなければならず、高性能数値処理ハードウェアあるい は高性能ソフトウェアルーティン(routine)や、あるいはそれらの組み合わせ システムが購入されて設置されなければならない。 次に、さらに重要なことであるが、情報を暗号化して解読するには長時間(必 要とされるコンピュータ計算数に関連する)が必要である。この時間の問題は、 迅速で、ほぼリアルタイムの解読が不可欠なビデオや他の伝達手段のリアルタイ ム計算が必要な分野での利用を不向きにしている。もちろん、大型バッファーや 特殊ハードウェア処理器の使用でこの限定を排除することは可能であろうが、こ のような利用には高価で、迅速で、非常に大型なバッファーが必要である。従っ て、RSAタイプの暗号スキームは、適切なハードウェアとソフトウェアのシス テムが利用可能な場合にだけ採用が可能であった。よって、通常のパソコンを使 用して平均的なユーザーが利用し、理解できる単純で、迅速で、効果的な暗号化 システムが求められていた。 本明細書において、アレイ(array)(またはマスク(mask))とは要素あるい は元(element)の集合体として説明されている。このような要素はいかなる論 理群(logical grouping)であってもよく、例えば、ビット(bit)、ニブル(n ibble)、バイト(byte)、あるいはいかなる長さ(length)の文字(word)で あってもよい。さらに、本明細書では二進法(binary system)が使用されてい るが、モジュロ数(modulo numbering)システムあるいはアルファベットシステ ムであっても本発明に利用が可能である。 本発明の1目的は、前述の限定と問題とを解消する、高性能コンピュータでは もちろんのこと、普通のパソコンでも利用できる単純であるが効果的な暗号スキ ームを提供することである。効果的に暗号化(本発明の目的でもある)させると は具体的には、コンピュータのユーザーには一般的であるが、盗取者には決定が 実際上不可能である暗号マスク(アレイ)の利用を可能にすることである。 本発明の別目的は、長時間を要するサブルーティンを不要とし、高価なハード ウェアを不要とした暗号化スキームとそのシステムとを提供することである。 本発明のさらに別な目的は、多くのリアルタイムでの適用にて利用が可能な迅 速暗号化/解読スキームを提供することである。 発明の概要 前述の目的は、情報を暗号化して解読するために少なくとも2つのマスクと1 つのパスワードとが使用され、これらマスクが一般的なソース(source)から得 られる暗号化装置及び方法の提供で達成される。この暗号化装置は、暗号化する 情報をリトリーブ(retrieve)する手段を含む。この情報で、D要素から成るア レイ(array of D elements)と、長さがNの第1マスクアレイM1と、長さがN ’の第2マスクアレイM2と(通常において、M1とM2とは同一長であるが、 このことはアルゴリズムの条件ではない)、P要素から成るパスワードアレイ(p assword array of P elements)(このP要素は暗号ガイド(encryption guide)の 提供に利用される)と、D要素から成るアレイをエンコードあるいは暗号化する エンコ ーダ(この暗号化手段はD要素とM1の要素の第1計算を実行し、中間積(inter mediate product)R’を提供し、M2の要素で修正(modify)し、暗号テキストあ るいは暗号情報である暗号化されたR要素から成るアレイを提供する)とが定義 される。暗号文の解読はR要素をM2とM1とで論理的逆計算で処理し、解読さ れた情報であるD要素を得ることで達成される。 1好適実施例においては、前述した暗号化のための第1計算と第2計算とは、 「排他的順序処理(exclusive oring)(XOR処理)」、加算処理(ADD) 、及び/又は減算処理(SUB)である。解読とは暗号化の論理逆計算で実行さ れる。これらの計算処理において、XORの論理逆計算は別のXORであり、A DDの論理逆計算はSUBであり、SUBの論理逆計算はADDである。前述の 暗号化及びその解読においては、それら計算形態のいかなる2つ、3つ、あるい はそれ以上の組合せも利用が可能である。1好適実施例においては、XORとA DDとが使用されている。同一タイプのこれら2計算の使用(2つのXORまた は、2つのADD)は回避すべきである。なぜなら、これらの同一タイプの使用 は2つの異なるタイプの計算の場合のようにはシステム安全性の向上には貢献し ないからである。なぜなら、例えば、2つの連続的XORの使用は1つのXOR (異なる値であろうと)の使用と同じことだからである。計算の順序には関係が ない。盗取者は情報の解読に1つのXOR値を発見すれば済む。よって、この実 施例においては、連続したXOR計算を加算してもシステムの安全性は向上しな い。この場合、ADDとSUBは同一の計算であると考えられる。なぜなら、S UBは負数のADD処理だからである。 前記例において、M1内のN要素とM2内のN’要素との要素単位(piece-wi se)の組合せは、NxN’の長さのQ要素を提供する。以降、QはNxN’のサ イズとする。もしDがQよりも大きければ、Qの数の組合せが反復されてD要素 が暗号化される必要があろう。この不都合な結果はパスワードによって回避され る。Q組の組合せがパスワードアレイPの要素を利用して反復され、反復を暗号 化することなくRの要素を連続的に形成するためには要素D、M1及びM2をど のように組合せるべきかが指示される。もしPの最後の要素が使用されており、 処理すべきDの要素が残っていれば、反復はPの第1要素が再び使用されるとき に生じ、このシナリオは、Dの全要素が処理されるまで繰り返される。例えば、 1好適実施例において、もしPが32の異なる組合せを表しているなら、パスワ ードは32のQ要素でDの非反復的暗号化を実行させるであろう。32あるいは 64のバリエーションの選択はアルゴリズムの実行によって決定される。この好 適実施例においては、64のセットからの32の選択が使用される。32のうち のどのセットを使用するかは、パスワードストリング(password string)(T )のパリティ(parity)によって決定される。発生可能なシーケンス(sequence )のバリエーションには、D、M1あるいはM2のコンプレメント(complement )(8つの組合せを提供)、及び/又はM1とM2の値の交換(swapping)(別 な8つの組合せを提供:全体で16)が含まれる。ADD/XORあるいはXO R/ADDのペアとしての計算を実行することで別の16の組合せを得ることが でき、全部で32の組合せセットが得られる。SUB/XORとXOR/SUB とを使用すれば64の組合せに拡張される。この好適実施例においては、XOR /ADDでも、XOR/SUBの組合せであろうとも、64のうちで32の組合 せセットのみがどの一時においても(at any one time)使用されるであろう。こ れは、一定の条件下で、暗号テキストRの別部分から1の値だけ異なるRの暗号 テキスト内での反復を防止するために実行される。もし発生すれば、暗号テキス トの検査(inspection)を通じてNのサイズを決定することが可能であろう。 解読を困難にする別な可変要素(variable)は、マスクアレイM1とM2の長 さNを送信者と受信者以外には秘密にすることである。もしNが盗取者に知られ ていなければ、情報の適正な解読のためにはNを正しく推察しなければならない (例えば、D>Qであり、マスクアレイのソースとパスワードに関する全ての他 の情報が知られていると仮定)。 2つのマスクアレイM1とM2が、1つの大きなアレイの代わりに採用される 。なぜなら、 1)これらアレイの構築のためのサンプル方法が与えられていれば、2つのア レイを使用すれば、M1あるいはM2の一方の要素がたとえ0(null)であって も、クリアテキストの修正のための数段高い確率が提供される。これにより、ク リアテキストが非修正形態で暗号テキストの一部に配置される可能性が減少する 。 2)単純なXOR解読を利用不能にする。なぜなら、XOR処理が実行されて も、そのXOR計算を成功裏に解読したか否かを確認するためのクリアテキスト を有することにはならないからである。なぜなら、追加的なADDあるいはSU B計算が、正しいクリアテキストの回収のために実行されなければならないから である。 3)2つのアレイと2つの計算処理(XOR、ADD)の使用によって、マス クアレイ要素の自己置換(permuting against themselves)が実行される。よっ て、非反復性シーケンス(non-repetitive sequence)QはN2の長さ(M1の長 さxM2の長さ)である。従って、Dに対するNの小さな値は、Dよりも大きい であろうQの長さの非反復性暗号化シーケンス(non-repetitive coding sequen ce)を創出するであろう。例えば、10億バイトの情報Dを暗号化するには、N の値はたったの31,623バイト長でよく、もし正しい32の文字パスワード が採用されれば5,591バイトで達成可能である。即ち、(5,592)2x 32>1x109となる。 4)置換長(permutation length)Qを備えた2つのアレイを使用すると、少 なくともQの異なる独立計算がクリアテキストDに対して実行される。これによ りクリアテキスト内の文字の発生率あるいは頻度分布(frequency distribution )を決定するための頻度分布分析の利用が最小限に抑えられる。 M1とM2とのために使用されるソースのケア(care)と検査(inspection) は、一定値の長い反復を防止するのに有効である。デジタル音楽やサウンドファ イル同様、コンプレスされた(compressed)、あるいは”ジップされた(zipped )”ファイルは有効に利用できる。この暗号化/解読スキームに対してこの検査 は重要ではあるが決定的なものではない。なぜなら、例えば、ADDとXORの ご とき2つのアレイと2つの異なる論理計算(logical operator)が使用されるか らである。M1、M2あるいは信号DCF(図3のアイテム21)のエントリ( entry)の1つが非ゼロである限り、得られる暗号テキストは元のクリアテキス トとは異なるであろう。クリアテキストがコンプレメント処理されたものであっ ても、加算されたもの、あるいはXOR処理されたものであっても修正され、そ の修正はその結果からは判明しないであろう。 本発明の1つの重要な長所は、そこからマスクアレイの構築が可能なデータバ イト源の多様性である。実際、デジタル要素のいかなるグループ化でも利用が可 能であり、例えば、音楽コンパクトディスク(CD)の中身が利用可能である。 音楽はデジタル式にエンコードされたシーケンスであるため、CDのデジタルシ ーケンスのいかなるサンプリングでもマスク源として使用が可能である。典型的 な音楽選択の分析では、16ビットの数値の中央の8ビットの選択は可能な全バ イト値範囲にわたって充分に均等な結果を提供することが判明している。他の例 には、コンピュータに読み込みが可能なコンピュータフロッピーディスク、コン ピュータハードディスク、コンプレスされたファイル、バックアップディスク及 びテープ、ソフトウェアディストリビューションディスク、スキャンイメージ、 デジタルCAD画像、フォト−CDディスク、CD−ROMディスク(RED、 GREEN、YELLOW、あるいはORANGE基準及びCDのすべてのバリ エーションに対応)、デジタルサウンドウェーブ(wave)(*.WAV)ファイル、 あるいはすべての再生可能なデジタルデータ源が含まれる。 パスワードとM1及びM2アレイは情報の暗号化と解読とに必要であるため、 もし盗取者がこれらのいずれかを間違って入手していれば情報は適正に解読され ないであろう。さらに、M1及びM2あるいはパスワードに関する情報は暗号情 報には発見されないので、その情報を解読することは困難である。 1好適実施例においては、前記のアルゴリズムのバリエーションは予備データ 変換(preliminary data transform)を採用しており、修正データバイト(Modi fied Data Byte)(MDB)と、位置変換(positional transformation)と、 要 素DからRの通常暗号化変換(normal encoding transformation)とが創出され る。位置変換はRの要素の序数の再構成を指示し、Dの序数と順次的に(sequent ially)合致しないようにしている。ジャンブル(jumble)とは、採用されたパス ワードと利用可能な適用(application at hand)のファンクション(function )である。バッファ処理することなく連続情報(serial information)のみが処 理されるとするならば、そのシーケンスの再序列化指示あるいはジャンブル処理 は回避すべきである。なぜなら、進行した(advanced)、あるいは遅れた(reta rded)位置情報は、データがメモリバッファに保存され、再アレンジされないか ぎり補正できないからである。MDBを創出するのに使用される予備データ変換 は入力データバイト(incoming data byte)に対してカウンタのXOR処理によ って実行される。この暗号化スキームによって変換されたときにこのように創出 されたMDBは、このステップが実行されなかった場合よりも、理想的に均等な 分布(出力バイト値)から小さな統計偏差(statistical variance)を有してい る。 本発明の別な長所は暗号化と解読の速度である。この速度は、たいていのコン ピュータの固有な命令セット(native instruction set)に見られる少数のコン ピュータタイミングサイクルで迅速に処理される単純な論理計算の使用に直接的 に関係する。この速度能力は本発明を、例えば、ビデオやファックス伝達でのリ アルタイム伝達に適用させる。しかし、速度が群を抜いた1好適実施例では、単 純な論理/数学計算のハードウェアの実行によって、本発明を具現化している装 置の速度能力は改善するであろう。 本発明の別な長所は、1回パッド暗号化スキーム(あるいはそのバリエーショ ン)の容易な実行を可能にしていることである。これは、暗号キーのために利用 が可能な広範なデジタルデータと、暗号キーを構築するためにこれらソースがサ ンプルされる多様な様式と、採用が可能なパスワードの多様性とに負っている。 繰り返すが、当事者によって使用される当初値(initial value)はいかなる デジタル源からのものでも構わない。すなわち、伝達値、数式、プログラムコー ド、ソフトウェアディストリビューションディスケット、CD−ROM、あるい はい かなる他の再創出可能あるいは再現可能なデジタル源からのものであってもよい 。デジタルデータは二進ビットストリング(binary bit string)で表される。 これらのストリングは文字、整数、浮遊ポイント数(floating point number) あるいはビットのみを表すことができる。その形態は関係ない。なぜなら、それ らは全て修正、無修正に拘らず使用が可能だからである。その選択はユーザー自 身が行う。ビットストリングが浮遊ポイント数であるか、整数であるか、あるい は文字であるかは、その情報をユーザーがどのように翻訳したいかによって定ま る。ビットレベルではそれらはすべて互換可能である。 本発明の安全性は利用されるロジック/数学計算の安全性に依存するものでは なく(有益ではあろうが)、採用される暗号キーとパスワードの安全性に依存し ているからである。 本発明の他の目的、特徴及び長所は、添付の図面を基に説明した以下の好適実 施例の詳細な説明から明らかになるであろう。 図面の簡単な説明 図1は、情報伝達システムの機能ブロック図である。 図2は、1好適実施例による情報の暗号化及び解読に必要なステップを表わす ブロック図である。 図3Aは、その実施例のパスワードコマンドアレイの機能ブロック図であり、 暗号システムの操作の制御に使用される可変要素を提供するためにどのようにそ のアレイにアクセスするかを示している。 図3Bは、BPMと、ESOと、アレイ長レジスタ(Array Length Register )の機能ブロック図である。 図4Aは、第1マスクアレイとそのカウンタの機能ブロック図である。 図4Bは、第2マスクアレイとそのカウンタの機能ブロック図である。 図5は、マスクデータ修正ロジック(mask data modification logic)の機能 ブロック図である。 図6Aは、初期化シーケンス(initialization sequence)の機能ブロック図 で ある。 図6Bは、マスクアレイアドレス処理(mask array addressing)の機能ブロ ック図である。 図7は、暗号化セクションの概略ブロック図である。 図8は、解読セクションの概略ブロック図である。 図9は、修正データバイト(MDB)創出の1バリエーションの概略ブロック 図である。 図10は、出力シーケンス(output sequence)をスクランブル(scramble) するためのバッファポインタモディファイヤ(Buffer Pointer Modifier)(P BM)の発生(generation)と使用における1バリエーションの概略ブロック図 である。 図11は、バッファアドレススクランブル処理(buffer address scrambling )に対するバリエーションを示すブロック図である。 図12は、スクランブリングアドレス(scrambling address)の別バリエーシ ョンを示すブロック図である。 図13は、1つのマスクアレイの実施例のパスワードコマンドアレイの機能ブ ロック図であり、この暗号化システムの操作の制御に使用される可変要素を提供 するためにどのようにアレイにアクセスするかを示している。 図14は、1つのマスクアレイを使用した暗号化セクシションの概略ブロック 図である。 図15は、1つのマスクアレイを使用した解読セクションの概略ブロック図で ある。 図16は、異なる幅の2つのアレイを使用した暗号化要素と、同一の幅のアレ イを使用するが修正された適用を示す暗号化要素の概略ブロック図である。 図17は、可変幅計算/ロジック要素を使用した修正暗号化セクションの概略 ブロック図である。 好適実施例の詳細な説明 図1は本発明を使用した伝達システムの基本的ブロック図である。秘密情報は 無線によって送信者(SENDER)から受信者(RECEIVER)に送られているが、その 情報は盗取者(EAVESDROPPER)によっても傍受されている。情報はコンピュータ システム2でエンコードあるいは暗号化され、電波4で受信者5に伝送3される 。受信情報は解読され、さらに/あるいは受信箇所6でコンピュータに保存され 、送信先である受信者に提供される。しかし、このシステム図では暗号情報を傍 受する受信者7も存在する。傍受された暗号情報は強力な計算システム8に入力 され、情報の解読が図られるかも知れない。図示はしないが、情報を暗号化する のに本発明が適用される他の同様なシステムには、秘密情報が記録されるデータ ベースに対する電話回線アクセスが含まれる。このような場合には、盗取者は暗 号情報を自分のコンピュータシステムにダウンロードし、解読を図るであろう。 好適実施例の以下の説明においては、周知であるコミュニケーション及びデータ 保存/アクセス手段に対してではなく、本発明の暗号化及び解読スキームに重点 をおいて解説している。本発明で使用する個々の装置は周知であり、パソコン雑 誌あるいは通信文で一般的に散見される電子機器が利用される。これらコミュニ ケーションとデータベース手段は広義の周知用語で解説されている。 図2は本発明に従った情報の暗号化及び解読ステップのフローブロック図であ る。暗号化する情報をステップ9で選択し、その情報をコンピュータアクセス可 能なバッファメモリに入力する。その情報の長さが知られる。次に、2つのマス クアレイを構築するのに使用されるソースをステップ10で選択し、ステップ1 1でそれらマスクアレイの長さを選択し、そのソースファイルをどのようにサン プルするかを決定し、ステップ12でそのマスクアレイを構築する。この情報に 使用するパスワードをステップ13で選択し、送信する情報を暗号化するために ステップ14に進む。解読ステップは暗号化ステップに対応し、本質的には同一 であるステップ9’、10’、11’、12’、13’及び14’で示されてい る。「暗号化(エンコード)」なる用語が「解読(デコード)」で置き換えられ ているだけである。 これらのどの構成要素でも両者間で異なっていれば、情報は適正に解読されな いであろう。 図2のステップあるいはアイテム10で前述したように、マスクアレイの構築 に使用されるデータバイト源はいかなるものであっても構わない。すなわち、プ ログラムで数式からそれらを発生させることもできれば、デジタル化された音楽 ファイルであっても、スキャニングされた画像であっても、音楽CD−ROMで あっても、コンピュータ(ソースあるいは利用可能なもの)のプログラムファイ ルであっても、または情報が反復的に回収できるいかなる他のデジタル源であっ ても構わない。部分的に図2のアイテム11において、ユーザーは選択されたソ ースをどのようにサンプル処理するかを決定しなければならない。すなわち、ソ ースへの開始オフセット(starting offset)及びそのソースファイルの追加サ ンプリングポイント間の距離を決定しなければならない。これらのサンプリング はマスクアレイMSK1(図4Aのアイテム34)とMSK2(図4Bのアイテ ム35)の構築に使用される。これらの長さは選択可能であり、不法な暗号解読 に対するさらなる障害を提供している。このマスクアレイの長さはそれらマスク アレイの個々の長さの積に等しい組合せ長(combinatorial length)を提供する 。この好適実施例においては、アレイは同一長Nのものであり、反復前にN2の 要素組合せ(elemental combination)のシーケンス距離(sequence distance) Qを提供する。パスワード(アイテム13)は、データを修正することで効果的 な組合せシーケンス長(combinatorial sequence length)Qを拡張(expand) し、処理スキームにおいてフロー(flow)を制御するように選択される。このパ スワードは、パスワードの文字選択と長さとに基づいたQの32(64のうち) までのバリエーションのセットを可能にしている。よって、一定の入力値が与え られた場合、最大非反復性出力長(maximal non-repetitive output lenght)は 32Q(32N2)となるであろう。関与するバリエーションのため、解読テキ ストの検査ではKQ(K=2から32)のサイズと、KQの長さに等しい(当初 はさらに長い)Q’を決定することは困難である。従って、盗取者が暗号テキス トの検査からNを決定することは非常に困難な仕事となる。よって、暗号化プロ セスの制 御のためのパスワードの使用は、盗取者が暗号テキストの検査によってM1とM 2とのマスクアレイのサイズを推察することを困難にしている。 繰り返すが、図2の全ステップは、暗号化と、それに対応する解読との間で同 一でなければならない。さもなければ、情報は適正に解読されないであろう。特 に、マスクアレイ構築のためのソース、その長さ、及び採用するパスワードは同 一でなければならない。よって、情報の安全性を確実にするための本発明の主要 な保護はこれら3要因の不明性と選択肢の多様性とに依存する。マスクアレイの 構築に使用され得る材料は無限である。これらアレイのサンプリングはユーザー の想像力によってのみ制限される。よって、得られる保護スキームは非常に安全 である。 図2のアイテム10と11はアレイ解説ファイル(Array Description File) (ADF)で説明できよう。このADFは次のフォーマットを有している。 アレイ#1と#2はマスクアレイ構築のためのソースファイル(source file )を特定している。もし、B:*.*(PC DOSシステムに使用)のごときフ ァイルネーム用にワイルカード文字(wild card character)(*or?)が使用 されれば、その最初のマッチングファイル(matching file)が使用されるであ ろう。例えば、バックアップディスクの大セットからのディスケットが使用され れば、そのディスケットのファイルネームをユーザーは前もっては知らないであ ろうし、ワイルドカード指定(designation)*.*の使用でディスケットの読み込 みは可能になろう。もちろん、望むのであればファイルネームの明細(specific ation)を さらに限定的にすることもできる。1(0ではなく)にセットされたときポーズ フラッグ(pause flag)は活性化(active)し、処理前にユーザーに対してディ スケットのコンピュータへのローディング(loading)のための時間を提供する 。AFDを使用したマスクアレイのための他のデータソースは、マイクロソフト 社のエクセル(Excel)あるいはワード(Word)等の主流コンピュータ プログラムで提供されるソフトウェアディストリビューションディスケットでも よい。これらファイルは圧縮(compressed)されており、ユーザーにとっては非 常に利用が容易なソースである。ディスクバックアップディスケットが使用され る場合には、一定値ではない領域をユーザーが確実に特定できるよう、シマンテ ック社のノートンユティリティ(Norton Utility)のごときプロ グラムを使用して前もってそれらを検査すべきである。その名称から推察できよ うが、前記のSTARTING OFFSETとSAMPLING INDEX とはそれぞれ、データサンプリングが開始されるバイトの序数と、次のサンプリ ングポイントまでのバイトでの距離である。ソースファイルへの実際のインデッ クス(0からカウント)は以下のように計算される。 式1 SAMPLE BYTE INDEX =(SO+(I*SI))MODULO FL SO=サンプルオフセット SI=サンプリングインデックス FL=バイトでのソースファイル長 I=マスクアレイのためのi番目の要素(0からカウント) モジュロ(FL)計算(modulo operation)であるため、特定されたソースフ ァイル外でポイントをサンプルすることは不可能である。計算されたインデック ス値はファイルの開始部にラップアラウンド(wrap around)するだけであろう 。 例えば、ソースが取り出し不能メディア(non-removable media)で発見され る ファイルである場合、ADFはそれら両方のマスクアレイ源とサンプルシーケン スとを完全に記述するであろうから、ADFの安全性は重要である。このことは 2つの異なる方法で対処可能である。まず、ADFは使用されていないときには 物理的に安全に保管されていなければならないディスケットに存在させる。ある いは、何百または何千のADFを発生させる。そうすれば実際に使用されるもの を推察しなければならないであろう。さらに、ADFのファイルネームエントリ も前述のワイルドカード文字を使用して不明とすることができよう。 最後に、ファイルの暗号化に使用されるパスワード文字ストリングPは、別レ ベルの情報Dの安全性を提供する。これは、パスワードストリングPが暗号化/ 解読スキームを指示するのに使用され、当初の暗号化開始オフセット(Encrypti on Starting Offset)(ESO)(図3Bのアイテム30)、MSK1(図4A のアイテム26)とMSK2(図4Bのアイテム27)のアレイのアドレスレジ スタ/カウンタ(address register/counter)の値と、バッファポインタアドレ スモディファイヤ(Buffer Pointer address Modifier)(BPM)(図3Bの アイテム28)の値を提供するからである。これら全ては暗号化/解読スキーム の計算を制御する。 前述のADF法以外の追加的なサンプルスキームも、それが得られた情報の再 生の反復性とバリエーションを提供するかぎりにおいてデジタルソースへのアク セスと、マスアレイの構築とに使用が可能である。例えば、ランダム数発生機( random number generator)をSAMPLE BYTE INDEXのファイル への計算(ファイル長をモジュロ処理)に使用することが可能である。ランダム あるいはシュード(疑似)ランダム数発生機を理解するユーザーであればこの方 法を容易に利用することができよう。 解説した暗号化スキームをマルチ式に使用しても、1層(layer)あるいは暗 号の解読の困難性に較べれば情報の安全性をさほどには増強させない。この理由 は部分的には、暗号テキストに対比して情報バイトのデータのビット分布(bit distribution)が影響を受けないという事実による。すなわち、8ビットの暗号 情 報はクリアテキスト情報の8ビットのデータに相当するからである。これを回避 する唯一の方法は、暗号化された暗号テキストを提供しているビット数が、元の クリアテキストによって占められるものよりも大きなスペースにわたって広がっ ているような連続的暗号化過程で中間ステップ(intermediate step)を使用す ることである。これは、以下に説明するような単純な変換(可変要素の1つに式 2を使用)で可能である。 式2 W=(In(Bc−1)/In(2))の整数部分 Bは、新底数(number base)であり、Cは新底数で「バイト」を提供するよ うにグループ化される文字/数字の数であり、Wは変換(conversion)以前に新 底数内にシフトする情報データのビット数である。 このビットがレジスタにシフトされれば、逆順序でのこのレジスタの連続的割 り算(新底数での)の剰余数の書き込みと、これら剰余数のプリント可能なAS CII文字への変換(20(hex)−スペース文字−よりも大きな値を加える )は、ユーザーが利用可能な別レベルの暗号化を提供する。この計算の逆順序と は、その数字を逆に読み、プリントオフセット(printing offset)を取り除き (数字を底数Bに戻すように変換)、それらを二進数に戻し、得られたWビット をリカバーされた情報データファイルにシフトして戻すことである。 以上を要約すれば、選択された底数(BASE)を使用した二進数から全プリ ント可能文字のグループ(GROUP)への変換は、以下のように実行される。 1)Wを式2から計算。 2)バイトの暗号情報(Wビット幅)にアクセスし、これらバイトを数字(N UMBER)に変換。 3)NUMBERをBASEでGROUPの回数だけ割り、各剰余数を保存。 4)逆順序でステップ3の剰余数にアクセスし、プリント可能文字に変換(ル ックアップ表あるいはアルゴリズムを利用)。 5)得られたGROUP数の文字を出力し、望むならばグループ範囲を示すた めに「スペース」文字を追加(必須ではない)。 6)全二進数情報が変換されるまで必要に応じてステップ2から5を反復し、 必要に応じて0で全ての最終ビットもパッドアウト(pad out)処理。 最初の割り算の剰余数は、(BASE)0数であり、次の剰余数は、(BAS E)1数であり、さらに(BASE)2数(digits)・・・となる。 元のビットストリングは以下のようにして得られる。 1)可変SUMを0にセット。 2)2a)DIGIT=BASE数に戻された文字 2b)SUM=(SUM*BASE)+DIGIT をGROUP数だけ実行。 3)得られたSUMは取り出された数字。得られたバイト(Wビット幅)を出 力ファイル(最大の最初のビット)に取り出された二進数形態として伝送。 底数の変換はそれ自身で粗目の暗号化スキームとして使用が可能である。なぜ なら、Wと選択された底数との間にはいくらかの余裕幅(leeway)が存在するか らである。すなわち、限定された範囲において、いくつかの異なる底数は同値の Wを利用することができる。例えば、W=25ビットは底数33から36に直接 的に対応する。間違った底数の選択は暗号テキストを不適切に解読させる。 このメカニズムにより、元来の情報データビットはさらに大きなASCIIバ イトシーケンスに拡散(spread)される。この変換の別な効果は、暗号化された データファイルを全プリント可能文字に変換させることである。このことは、暗 号化されたバイトが伝達制御シーケンスバイト(transfer control sequence by te)を模倣し、暗号テキストの正しい伝達を妨害するかもしれないような条件下 では必要となろう。 暗号ファイルの全プリント可能文字への中間変換の使用で、ファイルはさらに その安全性を強化されて暗号化される。 以下は式2(5文字グループの36の底数(A−Z、以降0−9))を使用し て全プリント可能文字へと変換されたファイルの一部である。 図2の好適実施例の暗号化あるいは解読は、論理計算XOR、ADD、及びS UBを利用して実施される。他の好適実施例においては、解読計算が完全な元の 情報を再生する他の計算を使用することができる。この例においては、XORは XORの論理逆計算であり、SUBはADDの論理逆計算である。対応的に、A DDはSUBの論理逆計算である。選択された2つのマスクで、2つの論理計算 がリストされた3つの中から選択される。それらはXOR−ADD、XOR−S UB、ADD−XOR、SUB−XORのごときにグループ化される。この好適 実施例においては、XOR−ADDとADD−XORのペア、あるいはXOR− SUBとSUB−XORのペアのみが1時に使用される。本発明では、情報デー タバイトを1のコンプレメントされたもの(complemented)としているので、前 記の限定が課せられなければ、一定情報値で、MDB計算を無視して、1の値だ け長さQの別シーケンスから異なる長さQのシーケンスを暗号化させることは可 能であろう。これによって、アレイサイズNが提供される。これが可能な理由は 、たいていの二進計算システムにおいてはSUBTRACTION(減算)が減 算されている数の2のコンプレメントのADDITION(加算)によって実行 されるからである。2のコンプレメント数はその数の1のコンプレメントを取得 し、それに1を加算することで提供される(前述の限定)。この限定が使用され てもされなくとも、一般的な暗号化/解読スキームには影響しない。MDB(修 正データバイト)技術の使用によって、この限定はたいていの場合に緩められ、 64のバリエーションの組合せシーケンスQが使用可能となろう。 他の好適実施例においては、このようなマスクアレイのさらに複雑な使用形態 が可能である。いくらかの要素をインバート(invert)させたり、あるいはアレ イの要素の使用順序を変更させることができよう。このような技術はダブらせる ことなく長い情報の暗号化を可能にする。 この好適実施例における本発明の重要な長所は、入力情報データをXOR処理 し、他の暗号化計算が実行される前に修正データバイト(MDB)を創出させる カウンタの使用により提供される。この技術により、典型的な暗号情報内の文字 の分散度(多様性)が増大される。例えば、ローマ字”e”は他のどの文字より も頻繁に使用される。もしこの計算(操作)が実行されなければ、値スペース( 0から255)の暗号テキストのバイトの分散度はこの技術が採用されたときほ どにはならないであろう。この技術は、ここで採用される一般的な暗号化スキー ムに加えて、暗号情報内の文字の使用配分分散度を大きく増大させる。MDB技 術の別な長所は、たとえDCF、M1及びM2が全て0であろうとも、クリアテ キストが暗号テキスト内に無修正で入力される確率を0.5%以下とすることで ある。なぜなら、クリアテキストはアドレスカウンタ、あるいはアドレスカウン タのバリエーションによって修正されるからである。 図9に示すこのカウンタ技術の他のバリエーションは、暗号化される入力デー タバイトへの適用前に、カウンター値が定数の加算あるいは減算で修正されるか 、そのカウンタで他の値をXOR処理することで修正されるか、あるいは、これ らの計算の組合せで修正されるような場合に適用が可能である。暗号化のために 採用されるこれらの論理逆計算はデータを適正に解読するのに必要であろう。そ れが実行されると、シーケンスカウンタ値(sequential counter value)の使用 によって、可能な値の領域の暗号データバイトの分散度あるいは均等度は増加す るであろう。 図3Aに示すように、各パスワード文字の下部の5ビットはパスワードコマン ドアレイ(Password Command Array)24にデータ入力ライン15、アドレスラ イン15’及び制御信号39によって保存される。DのQ要素が処理されると、 このパスワードコマンドアレイのアドレスレジスタ/カウンタ16は図6Bに示 すステップあるいはアイテム80で次の位置にまで増分(increment)される。 これはQ度(times)ごとに発生する。レジスタ/カウンタ16はモジュロPを 計算する。Pはバイトによるパスワード長である。以下はこのパスワードコマン ドアレイの5つの出力ビットの解説である。 PSS 17 =パスワードシーケンスセレクタ(Selector)(Tビット22 と使用されるときはXOR、ADD、SUBのシーケンスを選択)PSSWV2 3参照。 DSF 18 =データスワップフラッグ(Data Swap Flag)(マスク要素M SK1 34 とMSK2 35 が交換されるべきか否かを指示)図5参照。 CF1 19 =コンプレメントマスク#1フラッグ(MSK1 34 に1 のコンプレメント処理を施すか否かを指示)。 CF2 20 =コンプレメントマスク#2フラッグ(MSK2 35 に1 のコンプレメント処理を施すか否かを指示)。 DCF 21 =データコンプレメントフラッグ(修正データバイトに1のコ ンフルメント処理を施すか否かを指示)。 Tビット22=パスワードストリングのパリティ(式3参照)。 PSSWV 23 =2ビット信号、PSSの2倍にTビットを加算。 PWC(i)はパスワードコマンドアレイ(アイテム24)のi番目のエントリ である。 CF1 20、CF2 19、及びDSF 18の使用は図5に図示。1ビッ ト幅の信号CF1 20 とCF2 19 は拡張(expand)され、暗号化スキ ームで論理”バイト”として処理された全ビットを修正する。この「バイト」は 8ビットだけに限らず、実施態様のユニット(unit)である(すなわち、2、4 、8、16、32ビット等)。 PSS 17 はTビット22と共に使用され、本発明のスキームの暗号化及 び解読シーケンスの制御に使用される0、2あるいは1、あるいは3のPSSW V 23 の値を計算する。 DCF 21 は1ビット信号であり、論理バイトにまで拡張されており、さ らに本発明の修正データバイト(MDB)でXOR処理されており、もしDCF 21 が1であるときにはその1のコンプレメントを創出する。DCF 21 がゼロであるとき、修正データバイトには変化は発生しない。 図3Bに示されているように、入力データライン15は情報を、コントロール 90を使用してBPMレジスタ28に、コントロール91を使用してESOレジ スタ30に、コントロール92を使用してアレイ長レジスタ32にロードするの に使用される。このアレイ長レジスタの値は各マスクアレイのバイト数である。 図3Bにおいて示すように、ESO 30とPBM 28の値は、暗号化あるい は解読に使用されるパスワードを提供するのに使用されるASCII文字の値か ら全て導かれている。ESO 30は暗号開始オフセット値(Encryption Starti ng Offset value)である。この値は、MSK1 34 とMSK2 35 の 両アレイにマスクバイトがロードされた後、それら両アレイのアドレスカウンタ の当初開始値(initial starting value)として使用される。BPM 28はバ ッファポインタ(アドレス)モディファイヤ(Buffer Pointer(Address)Modif ier)であり、そのビット幅はアドレスバッファのサイズに対応する。PC(パ ソコン)環境においては、保存の通常ユニットが典型的には2048バイトであ る理由から、1024バイトバッファが使用される。このバッファサイズは暗号 化/解読スキームの計算に決定的なものではなく、どのサイズでも使用できる。 例えば、256バイトのバッファサイズをファックス情報のスクランブルに使用 することが可能であろう。このBPMメカニズムが採用されると、バッファサイ ズは2の累乗(power of two)であるべきである。適用形態によっては、BPM =0とのみセットすることが望ましいであろう。BPM29の値を暗号化用のバ ッファアドレス値130でXOR処理140し、それぞれのデータバッファ13 4の実際の使用アドレスを創出する。これにより、暗号化するときに出力バッフ ァ138へとアドレスエントリ(address entry)のシーケンス134をスクラ ンブルし、あるいは、解読するときに入力バッファ200からエントリをサンプ ルするためのアドレスのシーケンス234をスクランブルするという効果が提供 される。バッファアドレスカウンタ出力130が入力データバイト102のXO R処理104に使用され、情報データの拡散度の増強のためにMDB106が創 出されるので、盗取者が情報を解読するときの困難性を増強させるには、暗号化 されたバイ トの得られた序数シーケンスを並び換えるのが有効である。 式5 BPM=ESO モジュロ 1024 ESOとBPMの値の計算に使用される公式はこの暗号化スキームに決定的な ものではなく、暗号化と解読との間で自己矛盾がなければよい。それら以外でも 、この暗号化/解読スキームが有効に利用できる限りにおいて、他の公式や数式 でもこれらの計算に使用が可能であろう。 式7 BPM=(ESOx19)モジュロ1024 望むなら、説明は省くが、これら2つのマスクアレイの各々に対して別々のE SO値を計算することも可能である。計算式が暗号化と解読に矛盾なく適用され るかぎり、この方法は有効であろう。全ESOは、通常は最初のエントリではな いマスクアレイのサンプルのための開始ポイントを提供し、その計算がモジュロ N(アレイ長)で実行されるかぎり、そのパスワードは独特な開始ポイントを提 供するであろう。同様に、BPMはアドレス値のスクランブルのためのマスクの 提供に使用され、入力/出力バッファの長さをモジュロ計算するのに使用される べきである。図10はBPM値を使用した別例の適用法を提供している。 図4Aは、第1マスクアレイ、アドレスカウンタ、及び長さカウンタの機能ブ ロック図である。コントロールライン93、データライン15、及びアドレスラ イン15’を介して第1マスクアレイがMSK1 34に構築される。マスクア レイが構築された後、このアレイ26のアドレスカウンタが、コントロールライ ン93を使用してESO値31(図3B)に初期化される。MSK1 34に構 築されたアレイのサイズはCOUNTER#1 36にロードされる。これは、 アレイ長レジスタ(Array Length Register)33の出力をコントロールライン 67を使用してそのカウンター内にロードすることで達成される。このステップ も図6Aに示す初期化計算に示されている。データ暗号化が開始されると、アド レスカウンタ26は各データバイトがアイテム58で処理された後に増分処理さ れる。このカウンタはモジュロN計算を実行するようにデザインされている。ア レイ長の値Nはアイテム33で与えられる。さらに、データバイトが処理された 後、COUNTER#1はアイテム60で減分(decremented)される。この詳 細は図6Bに示されている。COUNTER#1=0信号62はCOUNTER #237とMSK2アドレスカウンタ27のクロッキングの制御に使用される( 図6B)。この詳細は図6Bに示されている。MSK1アレイ34の出力は2つ のマルチプレキサ(multiplexer)44と50(図5)に送られ、マスクアレイ 値はさらに修正されるであろう。 図4Bは、第2マスクアレイ、アドレスカウンタ、及び長さカウンタのための 機能ブロック図を示している。コントロールライン94、データライン15、及 びアドレスライン15’の使用を介して第1マスクアレイがMSK2 35内に 構築される。このマスクアレイが構築された後、このアレイ27用のアドレスカ ウンタはコントロールライン94(図6A)を使用してESO値31(図3B) に初期化される。MSK2 35に構築されたアレイのサイズはCOUNTER #2 37にロードされる。これは、アレイ長レジスタ33の出力を知り、それ をコントロールライン78を使用してそのカウンタ内にロードすることで達成さ れる。このステップも図6Aに示される初期化計算で示されている。データ暗号 化が開始されると、アドレスカウンタ27は各データバイトが処理された後に増 分される。このカウンタはモジュロN計算を実行するようにデザインされている 。アレイ長の値Nはアイテム33で与えられる。COUNTER#2もまたアイ テム70で各データバイトが処理された後に減分される。この詳細は図6Bに示 されている。COUNTER#2=0信号72は、コントロールライン80(図 3A)を使用したパスワードモジュロPアドレスカウンタ16の増分制御に使用 される。MSK2アレイ35の出力は2つのマルチプレキサ44と50(図5) に送られ、マスクアレイ値はさらに修正されるであろう。 アドレスカウンタとマスクデータアレイ(図4Aと図4B)間のアドレスライ ン(アイテム95と96)は15バイト幅で示されている。この幅は説明の目的 にのみ採用されており、実際にはどのようなビット幅でも可能であろう。 図5は実用値M1 48 とM2 54 とがどのようにMSK1 34 とM SK2 35 の値、及び信号DSF 18、CF1 20 及びCF2 19 (図3A)から導かれるかを示している。M1 48 と M2 54 とは次の 計算式で説明される。 DSF 18 は2つのマルチプレキサ44と50の入力選択の制御に使用され 、一方、CF1 20とCF2 19は、それぞれXOR計算46と52を介し たマルチプレキサ45と51の出力の完全ビット幅の修正のために拡張された1 ビット信号である。DSF 18は1にセットされたとき、MSK1 34とM SK2 35の値を交換する。第1マルチプレキサ45の出力はCF1 20で XO R計算46されて値47を提供し、M1 48に保存する。この値はCF1の値 が0であるか1であるかによって、変更されないか、あるいはマルチプレキサ4 5の出力の1のコンプレメントとなる。同様に、第2マルチプレキサ51の出力 はCF2 19でXOR計算52されて値53を提供し、M2 54に保存する 。この値もCF2が0であるか1であるかによって、変更されないか、あるいは マルチプレキサ51の出力の1のコンプレメントとなる。 図6Aは、各暗号化あるいは解読に対して1度実行される必要がある初期化計 算のフローチャートである。2つの置換カウンタ(permutation counter)であ るCOUNTER#1,56とCOUNTER#2,57とにはマスクアレイ長 レジスタ33からの当初値がロードされる。この初期化は暗号化あるいは解読の 開始時に1回のみ実行される必要がある。さらに、初期化計算の一部として、E SO30の値は、ESOレジスタ31の出力とそれぞれコントロールライン93 と94とによってMSK1 26とMSK2 27の両アドレスカウンタ(ステ ップ69と71)にロードされる。 図6Bは、各データバイトが処理された後に実行されるシーケンスを示してい る。このシーケンスは以下の要素から成る。 1)第1マスクアレイアドレスカウンタMSK1 26を58で増分。 2)第2マスクアレイアドレスカウンタMSK2 27を68で増分。 3)アイテム60で1だけCOUNTER#1を減分。 COUNTER#1 36が0にカウントダウンされるときは(アイテム62 )、以下が発生する。 1)COUNTER#1の値はアイテム33と67とでNに再ロード。 2)MSK2アレイ27に対するアドレスレジスタはアイテム68で1だけ増 分。 3)COUNTER#2はアイテム70で1だけ減分。 MSK1アレイ26とMSK2アレイ27のアドレスレジスタ/カウンタはモ ジュロNカウンタであるため、COUNTER#1 36 がゼロ 62であると き、MSK2アドレスレジスタ/カウンタ27に向かうカウントパルス68の作 用で、MSK1アレイ34とMSK2アレイ35の値の全ての可能な置換がシー ケンス処理される。従って、シーケンスの組合せ長QであるN2が得られる。 COUNTER#2 37がゼロ 72に到達すると、以下が発生する。 1)COUNTER#2の値はアイテム33と78とでNに再ロード。 2)PWSアドレスレジスタはアイテム80で1だけ増分。 PWCアドレスレジスタの1(モジュロP)の増分処理(incrementing)は、 PWCアレイ24の次のエントリのビットパターン(bit pattern)により導き 出された(derived)DSF 18、CF2 19、CF1 20、DCF 21 及びPSSWV 23に対する新値を提供する。これらの可変要素は、PWCエ ントリが異なるものであるかぎり、たとえクリアテキストが一定値に留められて いても長さのマルチ型置換シーケンス(multiple permutation sequence of len gth)Qに暗号テキストの非反復型バリエーション(non-repetitive variation )を提供する。従って、D<32Q(Dの全エントリは一定値)であれば、32 の異なる文字のパスワードシーケンス(ASCII値モジュロ32)が与えられ ている場合に、暗号化された出力を反復させないことは可能である。例えば、N =31,623の値は非反復式に1,000,000,000バイト以上を暗号 化するであろう。もし32のファクターが採用されれば、これは320億にまで 増加される。よってQは、出力暗号シーケンスを反復させないで一定値の元のク リアテキストDの長さよりも小さなものとなり得る。 この暗号テキストの検査では使用されるマスクアレイのサイズの決定は困難で ある。なぜなら、同じ暗号化マスクアレイを使用するが、異なるパスワード制御 値を使用した置換シーケンスQを介してのマルチパス(multiple pas)は、大き なマスクアレイ長が1セットのみのパスワード制御可変要素(password control variable)で使用された場合と同一の結果を提供することができるからである 。 図6Aに示すように、別なバリエーションではN(各マスクアレイの長さ)よ りも小さなCOUNTER#1,56とCOUNTER#2,57を初期化する ための値を使用する。この場合には、別々の可変レジスタがCOUNTER#1 とCOUNTER#2をロードするのに使用される値で創出される。新可変要素 は図4Aと図4Bとに示すようにカウンタ26と27とにフィードされるであろ う。その効果により、Qの組合せが発生する前にパスワードアレイカウンタが増 分される。このことにより、盗取者が解読する必要が生じる別の可変要素が創出 される。 さらに別なバリエーションはCOUNTER#1とCOUNTER#2への異 なる長さのエントリを利用する。この異なる長さは、他のカウンタ(図示せず) から、あるいは他の可変要素から導き出しが可能であり、あるいはADD、XO R及びSUBをいかなる順序で、またはどのような組合せでも使用した計算から 得られるであろう。 図6Aと図6Bとに図示されているように、別なバリエーションは各マスクア レイエントリの非連続的アクセス(non-sequential accessing)を使用するもの である。これはADD、XOR、及びSUBを使用した他のカウンタの使用で達 成されよう。得られたアドレスがそのアレイのサイズ内に必ず納まるように注意 が必要である。 図7は好適なエンコーダの適用を示す機能ブロック図である。このマスクアレ イは適正に構築され、このアレイに対するアドレスレジスタ/カウンタは前述の ように適正に初期化されているものと想定する。 さらに図7で示すように、マスクアレイMSK1 34とMSK2 35の要 素は連続的(sequentially)に利用されて修正され、前述のようにM1 48と M2 54とを与える。49を介したM1 48の要素は4つのロジック/数学 計算ブロックであるADD110、SUB112、XOR114及びXOR11 6に入力される。55を介した要素M2 54は4つのロジック/数学計算ブロ ックであるXOR118、XOR120、ADD122及びSUB124に入力 される。この好適実施例においては、データ要素は全て8ビットバイトである。 残りの3つの計算(PSSWV 23=01、10、11)にも同様な説明が適 用されるが、以下の説明のためここでは、PSSWV 23=00とし、ADD を先に、XOR(110から118パス(path))計算を後に選択するものとする 。クリアテキストが1024バイト入力バッファ100にロードされれば、バッ ファアドレスカウンタ128は144を介して0にリセットされ、各バイトに対 して連続的にアクセスされる。カウンタ/レジスタ128によって供給されたバ ッファアドレス130で、データバイト101がそのバッファから取り出される 。このバイト101は102に保存され、103を介して10ビットアドレスカ ウンタ/レジスタ132の低部8ビットでXOR処理104され、修正データバ イト105,MDB,を提供し、106で保存される。その値107はDCF 2 1(データコンプレメントフラッグ)でXOR処理108され、中間データバイ ト108,IDP,が創出され、109を介して4つのロジック/数学計算11 0、112、114、及び116の各々に49を介したM1バイト48と共に提 供される。ADD110の結果111はXOR118に送られ、55バイトを介 してM2 54と組み合わされ、マルチプレキサ126への入力119が提供さ れる。49バイトを介したM2 48も他の3つのロジック/数学計算(それぞ れ120、122、124を介して)の各々に送られ、ロジック/計算出力12 1、123、及び125が得られ、全てMUX126に送られる。ADD110 の計算は、キャリー(carry)もボロー(borrow)も介さずに実行される。この ことはそれぞれ他のADDとSUB計算である112、123、及び124にも それぞれ適用される。この好適実施例においては、MUX136からのデータバ イトは出 力バッファ138に送られる。このバイトに対するそのアドレスは、29を介し たBPM28と、130を介したバッファアドレスカウンタ/レジスタ128の XOR140から得られた計算されたアドレスである。この実行によって入力バ ッファ100からの出力バッファ138へと序数シーケンス(ordinal number s equence)がスクランブルされる。多くの他の等価な機能が多様なバイトで実行 できることは明かである。 図示はしないが、別手法の実行では暗号データバイト136は出力バッファ1 38に送られる。そのアドレスはXOR140計算をスキップしてバッファアド レスカウンタ/レジスタ130から直接的に得られる。 図示はしないが、別手法のバリエーションでは、BPM28の低部8ビットと 、バッファアドレスカウンタ/レジスタ128の低部8ビットのXORの低部8 ビッドが使用され、XOR104を介してデータバイト102が修正される。こ れは出力バッファ138に直接送られるバッファアドレス130値の修正の有無 に拘らず使用が可能である。図示はしないが、論理逆処理が解読段階で使用され るかぎり、このような手法に沿った他のバリエーションも採用が可能である。他 の好適実施例においては、暗号化/解読されるデータバイトの他のバリエーショ ンが、アドレスカウンタ、一定値で修正されたアドレスカウンタ、ある値のXO Rで修正されたアドレスカウンタ、ある一定値で修正され、あるBPM値でXO R処理されたアドレスカウンタのいずれを使用しても、あるいは、どのようなそ れらの組合せを使用しても提供される。図示はしないが、別なバリエーションは 、BPM28の低部8ビットと、バッファドレスカウンタ/レジスタの低部8ビ ットのXORの低部8ビットを使用してXOR104を介してデータバイト10 2を修正するものである。これは、出力バッファ138へのバッファアドレス1 30の値を修正しても無修正であっても使用が可能である。バッファアドレスを 修正する他のバリエーションには、XORとあるBPM値、ある一定値の加算/ 減算、あるいはこれら計算の自由な組み合せが含まれる。図9と図10は修正さ れたデータバイト(MDB 106)を創出するための一般的バリエーションと 、 バッファアドレススクランブリング技術に関する一般的バリエーションとを示し ている。 第8図に、第7図のエンコーダに対応するデコーディング機能/ブロック図を 示す。この場合も、マスク配列が適切に構築され、この配列のためのアドレス・ レジスタ/カウンタが前述のように適切に初期設定され、前に暗号化されたデー タ・バイトが入力バッファ200に入れているものとする。この好ましい実施例 では、別々のバッファ・メモリ、カウンタ、および論理ブロックを使用するが、 当業者なら多くの異なる構成要素または同じ構成要素を使用してこのようなデコ ーディング装置および方法を多くの異なる方法で実施することができるであろう 。 第8図を参照すると、前述のようにしてマスキング配列MSK1 34および MSK2 35の要素が順次に構築され、修正されてM1 48およびM2 5 4が得られる。M1 48は49を介して4個の論理/算術演算ブロックSUB 218、ADD220、XOR222、XOR224に入力される入力である。 要素M2 54は55を介して4個の論理/算術演算ブロックXOR210、X OR212、SUB214、ADD214に入力される入力である。この好まし い実施例では、要素はすべて8ビット・バイトであり、入力データ・バイトの4 つの組合せがすべて行われ、マルチプレクサ226への入力となるものとする。 好ましい実施例では、ADD演算とSUB演算はすべて借りも桁上げもなしに行 われる。説明のために、PSSWV23=00であるものとし、XOR演算を選 択してからSUB演算を選択する(210から218までの経路)ものとするが 、同様の説明は他の3つの演算(PSSWV23=01、10、11)にも適用 される。バッファ・アドレス・カウンタ/レジスタ228は244を介して0に 初期設定され、29値を介したBPM28とバッファ・アドレス・カウンタ22 8の出力230とのXOR240をとることによってスクランブル・バッファ・ アドレス234が作成される。この結果、暗号化データ・バイト201(EDB) が得られ、208に格納される。EDBは次に209を介して4個の論理/算術 演算回路XOR210、XOR212、SUB214、ADD216のすべてに 渡 される。それと同時に、マスク・バイトM2 54も55を介してこれらの同じ 演算回路に渡される。マスク・バイトM1 48は49を介して同様に4個の論 理/算術演算回路SUB218、ADD220、XOR222、XOR224に 渡される。ここで、PSSWV23=00の場合だけを見ると、209を介した EDB208と55を介したM2 54とのXOR210の結果211がSUB 218に送られ、そこでこの結果から49を介したM1 48が引かれてMUX 226への入力バイト219が得られる。MUX226はこれらの演算の結果を その出力227に送り、そのバイトと拡張DCF信号とのXOR204がとられ て修正データ・バイト205(MDB)が得られ、206に格納される。すなわ ち、DCFとMUX227の出力の8ビットすべてとのXORが取られる。MD Bバイト207の出力はバッファ・アドレス・カウンタ232からの下位8個の アドレス・ビットとの間でXOR228を取ることによってさらに修正される。 このXOR演算の結果236は回復されたクリア・テキスト・バイトであり、2 30を介してカウンタ/レジスタ228によって直接アドレスされる出力バッフ ァ238に入れられる。同じ演算が他のXOR(212および220)、SUB (214および222)、およびADD(216および224)演算にも適用さ れる。これらの他の演算221、223、225のそれぞれの結果はすべてMU X226の他の入力221、223、225に供給され、それぞれ値01、10 、11を持つPSSWV23によって選択される。 第3A図に関して前述したように、パスワード・コマンド配列24には制御バ イトとフラグが含まれる。この好ましい実施例では、DCF21、CF1 20 、CF2 19はすべて8ビットに拡張される。当然ながら、他の実施態様では 他の幅のフラグを使用することができ、そのビットは処理されるすべてのビット と並列して供給される。他の好ましい実施例では、演算は、1ビット・フラグが 前述したのと同じタスクを行うが、そのようなフラグ・ビットによってたとえば XORのための他の周知のバイトが可能になるソフトウェアで行われる。 メッセージがシリアル通信チャネルを介して伝送される好ましい実施例では、 暗号メッセージ・テキストは、妥当なセキュリティを維持するために、メッセー ジの暗号化に使用されるADFおよびパスワードとは別に送らなければならない 。 データ・バイトを修正してコード化/デコードする他の態様としては、アドレ ス・カウンタ、定数値によって修正されたアドレス・カウンタ、値のXORによ って修正されたアドレス・カウンタ、定数値によって修正されBPM値とのXO Rがとられたアドレス・カウンタ、またはこれらの手続きの任意の組合せを使用 する態様がある。 第9図に、他の様々な値MDB MOD1 300およびMDB MOD2 306を使用して修正データ・バイト(MDB 106)を作成し、修正データ ・バイトの作成に使用されるビット・パターンを変化させる他の態様を示す。M DB MOD1はカウンタ・アドレス値130にシステマティック・オフセット を与える効果があり、MDB MOD2 306はMDBの作成に使用されるパ ターンを変化させる効果がある。MDB MOD1およびMDB MOD2の値 はBPM、ESO、またはその他の変数または変数の組合せとすることができる 。選定する値は、でコーディングのために逆の順序で再生することができるよう な値でなければならない。暗号解読は暗号化に使用された論理の逆を使用する。 第10図に、コード化のための一般的なアドレス・スクランブリング方式を示 す。この場合、BPM MOD310およびBPM28は、デコードのために逆 の順序で再生可能である限りは任意の値とすることができる。バッファ・アドレ ス・カウンタ128の出力130を、BPM MOD値310を加える(312 )ことによって修正する。BPM MOD値は、デコードのために逆の順序で計 算することができる限り、定数、変数、または値の任意の組合せとすることがで きる。ADD313の出力は、さらに29を介したBPM値28との間でXOR 140をとって、スクランブルされたアドレスである134とし、出力バッファ 138に送る。 図示していないその他の態様では、ADD312をXORに置き換え、XOR 140をADDに置き換える。アドレス・スクランブリング・シーケンスを導き 出す際に、ADD、SUB、およびXORの他の組合せを任意の順序または組合 せで使用することができる。 第11図に、位置アドレス・スクランブルの可能な態様を示す。コード化のた めに上図と下図のいずれの一方でも使用することができるが、デコードのために は他方の図が使用されることになる。入出力バッファ400、404、410、 および414のサイズは2の累乗であるものとし、アドレス値406、408、 416、および418はバッファの合計アドレス空間をカバーするのに適当であ るものとする。また、スクランブル論理によってアドレス・カウンタの出力の修 正が得られ、修正された場合でもアドレス・カウンタの出力の可能なすべての値 をカバーするものとする。 第11図を参照し、上図の態様について説明すると、アドレス・カウンタ40 5の順次出力406は入力バッファ400とスクランブリング論理回路407の 両方に送られる。スクランブリング論理回路の出力408は出力バッファ404 に送られる。入力バッファ400からの406によって線形にアドレスされるク リア・テキスト・データ・バイト401がコード化論理回路402に送られ、そ の値が修正される。コード化論理回路402の出力403は非線形シーケンスで 出力バッファ404に入れられ、修正されたアドレス408によってアドレスさ れる。これによって、出力の通常の位置が入力の位置から変化する。これは、第 7図と第8図の両方で使用されるアドレス指定方法である。 第11図を参照し、下図の態様について説明すると、アドレス・カウンタ41 5の出力416はスクランブル論理回路417に送られ、修正されたアドレス4 18が作成され、それによって入力バッファ410が非線形方式でサンプリング される。入力バッファ410の出力411はコード化論理回路412に供給され 、そこでその値が修正される。コード化論理回路の出力413は線形の順次方式 で出力バッファ414に入れられる。これは、このバッファのアドレス416が アドレス・カウンタ415から直接送られるためである。 上述の方法のいずれの一方もコード化に使用することができるが、デコードの ためにはそれに対応する反対の方法が使用されることになる。 第12図に、位置アドレス・スクランブリングの他の態様を示す。この場合、 入力と出力の両方のシーケンスが非線形になる。スクランブリング論理回路の両 方のセット426および427が、シリアル・カウンタ425の出力と、他の変 数、カウンタ、XOR、ADD、SUBに任意の順序または組合せで作用して、 入力バッファ420と出力バッファ424に転送されるアドレス値を修正する。 コード化に使用された修正の論理反転をデコードに使用しなければならない。ア ドレス・スクランブリングのために、全バッファを処理しなければならない。バ ッファの未使用部分はランダムに選択された文字によって処理される。 マスク配列の1つがゼロで満たされた場合は、ただ1つの配列マスクを使用す るのと同様である。第13図ないし第15図に、パスワード・コマンド配列24 に加える必要がある変更と、単一マスク配列コード化/符号化方式を実施するた めの第7図および第8図のコード化部分およびデコード部分を示す。 第13図に、データ・スワップ・フラグ(DSF)18およびコンプリメント ・フラグ#2、CF2、19の項目をなくした縮小パスワード・コマンド配列2 4を示す。これらをなくした結果、(MDB演算を無視し、定数入力データ値を 使用した)Qの最大非反復長は8Nになっている。この場合もTビット22を使 用して、前述のようにXOR/ADDまたはXOR/SUBの組合せを選択する 。この場合も第4A図の最初(この場合は唯一になった)のマスク配列のアドレ ス指定とアクセスのための論理回路を使用するが、ユーザはN以下の値をカウン タ#1(配列長カウンタ)36に入力することができるようにする変更を実施し て、その結果、パスワード・コマンド配列が各N回よりも頻繁に更新されるよう にし、別のコード化変数の導入を可能にすることもできる。この変数は、マスキ ング値シーケンスに不連続性を生じさせる効果がある。第6A図の前半はマスク 配列アドレス・カウンタを初期設定するために維持されるが、ステップ68から 第6B図の終わりまではステップ80のみに置き換えられる。第5図の左半分は 項目45から49まで維持される。MSK1 34の出力はMUX44を介さず に直接 45に送られることになる。したがって、カウンタ#1が減少してゼロになると 、ユーザ指定値またはNにリセットされ、パスワード・コマンド配列・アドレス 24が80を介して増加させられる。第9図ないし第12図に記載の修正および 態様はすべて、第14図および第15図でも使用することができる。 第14図に、単一マスク配列エンコーダの機能ブロック図/実施態様略図を示 す。マスク配列は適切に構築され、配列のすべてのアドレス・レジスタ/カウン タが適切に初期設定されているものとする。XOR論理要素114および116 が結合されて114のみとなっている。単一マスキング配列MSK1 34を順 次に構築し、修正して、前述のようにM1を得る。49を介した要素48が、A DD110、SUB112、およびXOR114の3つの論理/算術演算ブロッ クに入力される。この例では、すべてのデータ要素が8ビット幅であり、すべて のADDおよびSUBが桁上げまたは借りなしで実施される。説明のために、P SS=0でTビット=0であるものとし、ADD演算を行うものとする。同様の ことがSUB演算(PSS=0、Tビット=1)にも適用される。第7図で前述 したように、カウンタ・アセンブリによって、入力バッファがアドレスされ、デ ータ・バイトが除去され、修正されて、修正されたデータ・バイト(MDB)が 作成され、これがさらにフラグDCF21によって修正されて、中間データ・バ イト(IDB)108が作成される。IDBは109を介して3つの論理/算術 要素ADD110、SUB112、およびXOR114のすべてに送られ、そこ で49を介したM1 48と組み合わされる。ADD11の出力は新しいMUX 500(Tビット22によって選択される)に送られ、その出力501が(MU X126に代わる)別の2入力MUX503に送られ、その出力504(暗号化 データ・バイトEDBとなっている)が出力バッファ138に送られる。1つの 配列と1つの修正演算しか使用しないため、MDB修正と(BPMおよびXOR 140を介した)出力シーケンスのスクランブリングの意味が重要性を増す。P SS=1の場合、XOR114の出力115がMUX503を介して504で出 力バッファ138に送られる。 図示していない別の実施態様では、MUX500をなくし、MUX503を2 入力MUXから3入力MUXに変更して、ADD演算とSUB演算の両方とXO R演算を同時に行うことができるようにする。このようにした場合、パスワード ・コマンド配列でPSSを2ビットに拡張して3つの入力の選択を可能にする必 要がある。拡張されたPSSがとることができる4つの値を3つの入力の選択に 対応づける際にも注意が必要になる。(126と類似した)4入力MUXを使用 し、ADD、SUB、またはXORのうちの1つの演算を(MUXへの通常の接 続に加えた)追加の入力に割り当てると容易になると考えられる。同様にして、 第15図に示すデコード方法の変更も実施する必要がある。 第15図に、第14図のエンコーダに対応するデコーディング機能/ブロック 図を示す。この場合も、マスク配列MSK1 34は適切に構築され、この配列 のためのアドレス・レジスタ/カウンタが前述のように適切に初期設定され、入 力バッファ200には前に暗号化されたデータ・バイトが入っているものとする 。この実施例では、別々のバッファ・メモリ、カウンタ、および論理ブロックを 使用するが、当業者なら異なる構成要素または同じ構成応訴を使用してこのよう なデコーディング装置および方法を多くの異なる方法で実施することができるで あろう。 第15図を参照すると、前述のように、マスキング配列MSK1 34の要素 が順次に構築され、修正されて、M1が得られる。49を介した要素M1 48 は、XOR210、ADD214、およびSUB216の3つの論理/算術演算 ブロックへの入力である。この単一マスク配列の実施例では、要素はすべて8ビ ット・バイトであり、入力データの3つの組合せがすべて行われ、マルチプレク サ510および509に入力されるものとする。また、ADD演算とSUB演算 はすべて桁上げまたは借りなしで行われるものとする。説明のために、PSS= 0でTビット=0であり、SUB演算を選択するものとするが、同様の説明はA DD演算(Tビット=1の場合)にも適用される。バッファ・アドレス・カウン タ/レジスタ228は244を介してゼロに初期設定され、29を介したBPM 28とバッファ・アドレス・カウンタ228の出力230とのXOR240を取 ることによってスクランブル・バッファ・アドレス234が作成される。この結 果、暗号化データ・バイト(EDB)201が得られ、208に格納される。E DBは次に、49を介したマスク・バイトM1 48と共に、XOR210、S UB214、およびADD216の3つの論理/算術演算回路のすべてに送られ る。ここで、PSS=0でTビット=0の場合を見ると、SUB214の結果2 15は新しい2入力MUX510(Tビット=0によって選択される)に送られ 、その出力511が別の2入力MUX509(PSS=0によって選択される) に送られ、その出力がXOR204に送られてDCF21によって修正される。 その結果205は修正データ・バイト(MDB)であり、206に格納される。 出力バッファ238のスクランブルされていないアドレス230によって、結果 のクリア・テキスト・バイト236の格納場所が決まる。Tビット=1でPSS =0の場合、ADD216の結果217はTビット=0の場合と同様に処理され る。PSS=1の場合、49を介したM1 48とEDB209とのXOR21 0の結果211がMUX509に送られ、次に505を介してXOR204に送 られて前述のように処理される。 第16図は、幅の異なる2つの配列を使用したコード化要素(上図)と、幅は 同じだが論理/算術演算の修正された実施態様を示すコード化要素(下図)の概 略/ブロック図である。 第16図の上図を参照すると、この場合、M1は16ビット幅であるが、M2 は8ビット幅しかない。この2つのマスクの幅は任意のビット幅とすることがで き、必ずしも8ビットの倍数ではない。これは、コード化(およびデコード)が 2つのマスキング配列について同じビット幅を持つという制約を必要としないこ とを示すために過ぎない。中間データ・バイト550は16ビット幅であり、入 力バッファから16ビットのデータを入手した結果であるか、または8ビット・ データの2回のフェッチから16ビットを形成した結果である。551を介した IDB550と49を介したM1 48はそれぞれ16ビット幅であり、この2 つが16ビット加算器554で加算される。このADD演算の結果の上位4ット (557)と下位4ビット(555)は、それ以上修正を加えられずに(レジス タ内の上位および下位4ビットのそれぞれの場所を維持したまま)暗号化データ ・バイト・レジスタ562に直接送られる。XOR560は、ADD554から の中央8ビット(556)と55を介したM2入力54とをとって修正された8 ビット(561)を作成し、これによってEDBレジスタ562の脱落中央8ビ ットが形成される。EDBレジスタ563の出力は16ビット幅として示されて いるか、2つの8ビット・バイト(MSH、LSH)の形で容易にアクセスして 出力バッファに入れることができる。この上図は、ADDとXORを使用する一 例を示したに過ぎず、XOR、ADD、およびSUBの他の組合せも容易に使用 することができる。 次に第16図の下図を参照すると、2つのIDB演算の結果(この場合はM1 はM2と同じ幅である)が16ビット・シフト・レジスタ570に格納される。 この図に示す2つの演算はADD110であるが、図示していない他の実施態様 では、他の論理/算術演算を含めることもできる。しかし、16ビットのIDB が修正されてシフト・レジスタ570に格納され、この図の上部に関して説明し たのと同様にして16ビットの一部のみがXOR574によって修正される。こ のXOR(574)は、576の下位半分のIDBバイト(8ビット)の上位4 ビットと、576の上位半分のIDBバイトの下位4ビットを修正する効果があ る。シフト・レジスタ576の出力577は、EDB579に送られる時点で8 ビット移動され、その出力580は前述のように通常の方式で出力バッファに入 れられる。 図示していない他の実施態様では、M2の8ビット値を16幅ビット空間全体 に(任意の順序またはグループ化で)展開し、したがって最初の演算結果の16 ビットすべてをカバーすることになる。この展開操作によって残されたビット空 間は、任意の順序または組合せでカウンタ、変数、XOR、ADD、SUBのい ずれかによって導き出された0、1、または0と1の組合せで埋めることができ る。同様の展開操作をM1マスク値および第1段の演算と共に使用することもで きる。(M1とM2の2つの代わりに)1つのマスク配列Mしか使用しない、よ り限定された場合にも所望であればこれを使用することができる。上述の説明は 、8ビットまたは16ビットの論理幅には限定されない。演算をより大きなビッ ト空間にわたって展開するために任意のビット幅を使用することができる。 XOR、ADD、およびSUBでこれらの様々な論理/算術態様を実施する1 つの方法は、パスワード・コマンド配列24の幅を拡張して、これらのオプショ ンを使用可能にしたり不能にしたりする制御変数をより多く入れることができる ようにすることであろう。また、これらのオプションは、生成された制御シーケ ンスをデコードのために逆の論理順序で回復することができる限り、実施者の選 択に応じて、修正されたカウンタ・シーケンスかまたは入力値の任意の組合せに よって制御することができる。 第16図の下図の目的は、IDBデータ境界を超える論理/算術演算を示すこ とである。M2論理/算術演算がADDまたはSUBの場合、その結果の全幅に わたって桁上げまたは借りを伝播させることができる。これによって結果が第1 段の暗号化/暗号解読の結果による修正データ値のプロセスの順序に左右されや すくなることにより、傍受者にとってはコード化要素とデータの判別が複雑にな る。また、入力または出力あるいはその両方のシーケンスのスクランブルが暗号 化結果に大きな効果を及ぼすことができるため、傍受者による暗号解読をさらに 複雑になる。第16図には、XOR560および574のビット幅がADD55 4および570よりも小さく図示されているが、必ずしもそうである必要はない 。これらは同じ幅とすることもでき、その場合も同様に暗号解読の困難さが増す 。 要約すると、第16図の目的は、配列マスクを同じ幅にする必要がないことと 、データ要素境界を超えて論理/算術演算を行うことができることを示すことに なる。 第17図は、可変幅の算術/論理要素を使用した修正コード化部を示す概略/ ブロック図である。この図には、M1値およびIDB値を使用して最初のデータ 修正の結果を修正する可変幅要素が図示されているが、当業者は所望の場合はこ の最初の演算も修正するように構成することができる。第17図には注目すべき 興味深い特徴が2つある。 第1に、2番目の演算は前のIDB、M1論理/算術演算の複数の結果にわた って行われる。したがって、2番目の演算は複数の前にコード化されたデータ・ バイトに作用することができる。入力または出力あるいはその両方のバッファ・ アドレス・スクランブリングを使用した場合、データ・バイトとマスク配列バイ ト(この場合はM1)の両方のオカレンスのシーケンスがきわめて重要になる。 さらに、正しいマスク配列バイトによる正しく暗号化されたデータ出力の処理に よって、正しい結果が得られない可能性が高くなる。暗号解読されたものがどれ だけクリア・テキストに近くなるかは、選定した論理/算術演算とデータ自体と によって決まる。 第2に、第17図には興味深い修正、すなわちシフト・レジスタ581に累積 した修正IDBの下位5ビット(583)を直接または他の値(変数、カウンタ など)と組み合わせて、シフト・レジスタ592に累積したM2値の演算の幅の 変化を制御することができる。これによって傍受者にとって暗号解読の複雑さの レベルがさらに増すため、これは重要である。正しいデータを推測しなければな らないだけでなく、正しいマスク配列値をと正しい論理/算術演算と、演算の正 しい幅も推測しなければならない。この幅は静的である必要はないため、以下の 要因の結果として変化する可能性がある。 1)データ自体 2)論理カウンタ 3)パスワード・コマンド配列24内の文字 4)算出された変数 5)上記の任意の組合せ 下位5ビット583は通常、シフト・レジスタ590に送られる下位5ビット5 88と同じになり、そのシフト・レジスタ590には2番目の演算の結果589 と5ビット588が、出力バッファに入れるために591を介してEDBレジス タ579にシフトされる前に格納される。これらのビットを修正なしで入れる理 由は、この5ビットの修正の際に情報が失われないように注意して、正しいデコ ードを行うことができるようにしなければならないためである。注意を払い、あ らかじめ考慮すれば、この5ビットも修正することができ、結果の暗号テキスト をコード化に使用したのと逆の論理で暗号解読することができる。5ビットを変 更しないままにする選択はこの例では任意であり、この方式や他の方式と共に他 のビット幅を使用することもできる。(この例の)下位5ビットを修正する方を 選択した場合は、これらの5ビットを修正するために生成された制御シーケンス をデコードのために逆の論理順序で回復することができる限り、任意の順序およ び組合せのカウンタ、変数、XOR、ADD、SUBの組合せを使用することが できる。 基本的な論理/算術演算XOR、ADD、SUBの実施の複雑さは、ユーザの 選択に任されるに過ぎない。一般に、演算速度と複雑さとの兼ね合いがあるが、 これも実施をどのように実現するかによって決まる。 第16図および第17図に示す変更および修正はすべて、論理の流れの中で任 意の順序および位置で、単一配列方式(第14図および第15図)にも第7図お よび第8図に示す2配列方式に適用することができるが、論理のこれらの変更は 、セキュリティの真の基礎となるマスキング配列内の項目のランダムさを増すの には影響がない。 図示していない他の好ましい実施例では、前述のように、入力バッファ(8ビ ット・バイト)選択のスクランブリングと出力バッファ(8ビット・バイト)配 置のスクランブリングと共に、8ビットのデータおよびマスク・バイトと32ビ ットの論理/算術演算を使用する。この実施態様では、マスク配列と(スクラン ブルされた)入力バッファを両方とも4回サンプリングしてから、結果の32ビ ットに論理/算術演算を適用し、処理が完了したらそれをそれぞれが異なるアド レスを持つ4つの別々の8ビット・バイトとして出力バッファに入れる。これは 、 (マスク配列の長さが同等であると仮定して)マスク配列の組合せを多少増やす ことができ、データ・バイトの処理が順序の影響を若干受けるようになる点で、 直接32ビット実施態様とは多少異なる。 ビット論理実施態様のこれらの多様性はすべて、選択鍵のランダムさの増大に は影響を及ぼさない。したがって、使用する論理の畳込みに関係なく、すべての ワンタイム鍵が等しく安全である。 以下に、本発明によるワンタイムパッドの実施例を示す。 関数E(U,V,P)は、ファイルVとパスワードPを使用するUの暗号化を 示すものとする。 関数D(U,V,P)は、ファイルVとパスワードPを使用するUの暗号解読を 示すものとする。 C(M,U)は、ファイルUの先頭へのメッセージMの上書きを示すものとする 。 X(U)は、ファイルUからのメッセージの回復(抽出)を示すものとする。 T(U)はファイルUの送信を示すものとする。 R(U)はファイルUの受信を示すものとする。 (注:Uを使用することによって、マスキング配列の要素がファイルUのサ ンプリングによって作成されることを意味する。) ワンタイムパッド方式の一態様は以下のように実施される。 パーティAとBは、最初のメッセージをデコードするためにファイルHを使用す ることに前もって合意しているものとする。これは、特定のファイルとするか、 またはプログラムまたはサンプリング方式を使用して一連の数字/バイトを生成 する方法とすることができる。また、パーティAとBはメッセージを送信すると きに異なるパスワードP1とP2を使用するものとする。 上記の例では、前のメッセージを使用して現在のメッセージのコード化とデコ ードを行うが、使用するパスワードは別々である。上記のように、メッセージを 送信するたびに異なる1組のマスク配列を使用してメッセージのコード化/デコ ードを行う。これは、各メッセージに異なる乱数「パッド」を使用するのと同じ であるが、上記にはいくつかの弱点がある。すなわち、 A)コード化バイトが常に(なんらかの方式で)メッセージと共にまたはメッセ ージの前に送信される。 B)メッセージとコード化バイトの大配列の両方に同じコード化方式を使用する 。 これらの制限は、メッセージに異なるサンプリング/コード化方式を使用し、乱 数の大配列を変化させることによってなくすことができる。したがって、使用す る鍵配列はメッセージと同じようには変形されず、新しい数の集まりを真に表す ことになる。もう1つの制限は、コード化鍵をメッセージと共に送信することで ある。他の2つの例を以下に示す。 第1の例では、疑似乱数または任意の数値シーケンスを生成する方法と使用す るパスワード(P1、P2、およびP3)について、パーティAとBが前もって 伝えているものとする。この例は、以下のように、メッセージと暗号化鍵配列に 異なる変形(パスワード)を使用する。 上記の例では、初期鍵はAとBの両方のパーティによってローカルで生成され、 両パーティ間で送信していない。その後、両パーティはそれぞれローカルで鍵の バージョン(y2、y3、y4など)を更新し、両方とも新しい暗号鍵の作成に 同じ内部変形を使用しているため鍵情報が送信されることはない。 第2の例では、疑似乱数または任意の数値シーケンスを生成する方法または両 パーティが読み取るディジタル源と使用するパスワード(P1およびP2)を、 パーティAとBが前もって伝えているものとする。 上記の例では、コード化/デコード・バイトYは偽メッセージZでコード化さ れ、実際のメッセージと共には送信されていない。また、両パーティは実際のメ ッセージに異なるパスワードを使用している。 使用する方式および方策は送信者と受信者の想像力によってのみ制限され、サ ンプリング方式の情報源としてその中から選択するディジタル情報が膨大にある と考えれば、考慮と立案により本発明によって真のワンパッド・コード化メッセ ージを容易に作成することができる。本発明のセキュリティは、(役に立つと考 えられるが)使用する論理/算術演算にあるのではなく、使用する鍵とパスワー ドがわからないことにある。 以上の例の他の態様および使用も可能である。 以上で、当業者なら上記の開示の文面および精神と矛盾なく、本発明の範囲内 で他の実施例、改良、詳細、および使用を行うことができるであろう。本発明は 請求の範囲によってのみ限定され、均等の原則を含む特許法に従って解釈される 。

Claims (1)

  1. 【特許請求の範囲】 1.暗号化及び解読装置であって、 D要素のアレイを定義するエンコード対象の情報をリトリーブする手段と、 M1要素の第1マスクアレイと、M2要素の第2マスクアレイと、 暗号化を指示して制御するための情報を提供するようにアレンジされたP要素 のパスワードアレイと、 そのパスワード情報に基づいてD要素のアレイをエンコードするエンコーダと 、 を含んでおり、 そのエンコードする手段は、D要素とM1要素との第1計算を実行してR要素 の中間アレイを提供する手段を含んでおり、前記エンコーダはM2要素を使用し てR要素の第2計算を実行してエンコードメッセージを提供するものであり、本 装置はさらに、 該エンコードメッセージにアクセスする手段と、 前記パスワード情報に基づいてそのエンコードメッセージからオリジナルメッ セージを再生するデコーダと、 を含んでおり、 該デコーダは前記エンコーダの論理逆計算を実行してそのオリジナルメッセー ジを再生させるものである、 ことを特徴とする暗号化及び解読装置。 2.前記第1計算は「排他的順序処理(exclusive oring)」であり、前記第2 計算は「加算処理」であり、「加算処理」に対応する論理逆計算は「減算処理」 であり、「排他的順序処理」に対応する論理的逆計算は「排他的順序処理」であ ることを特徴とする請求項1記載の暗号化装置。 3.前記第1計算は「加算処理」であり、前記第2計算は「排他的順序処理」 であり、「加算処理」に対応する論理逆計算は「減算処理」であり、「排他的順 序処理」に対応する論理逆計算は「排他的順序処理」であることを特徴とする請 求項1記載の暗号化装置。 4.前記第1計算は「排他的順序処理」であり、前記第2計算は「減算処理」 であり、「減算処理」に対応する論理逆計算は「加算処理」であり、「排他的順 序処理」に対応する論理逆計算は「排他的順序処理」であることを特徴とする請 求項1記載の暗号化装置。 5.前記第1計算は「減算処理」であり、前記第2計算は「排他的順序処理」 であり、「減算処理」に対応する論理逆計算は「加算処理」であり、「排他的順 序処理」に対応する論理逆計算は「排他的順序処理」であることを特徴とする請 求項1記載の暗号化装置。 6.前記第1計算は「加算処理」であり、前記第2計算は「減算処理」であり 、「加算処理」に対応する論理逆計算は「減算処理」であり、「減算処理」に対 応する論理逆計算は「加算処理」であることを特徴とする請求項1記載の暗号化 装置。 7.前記第1計算は「減算処理」であり、前記第2計算は「加算処理」であり 、「減算処理」に対応する論理逆計算は「加算処理」であり、「加算処理」に対 応する論理逆計算は「減算処理」であることを特徴とする請求項1記載の暗号化 装置。 8.前記第1及び第2計算は「加算処理」であり、その対応する理論理逆計算 は「減算処理」であることを特徴とする請求項1記載の暗号化装置。 9.前記第1及び第2計算は「減算処理」であり、その対応する理論理逆計算 は「加算処理」であることを特徴とする請求項1記載の暗号化装置。 10.前記第1及び第2計算は「排他的順序処理」であり、その対応する理論理 逆計算は「排他的順序処理」であることを特徴とする請求項1記載の暗号化装置 。 11.1つあるいは複数のカウンタで成り、エンコード処理とデコード処理の最 中にマスクアレイ組合せ数をカウントするアレイ組合せカウンタをさらに含むこ とを特徴とする請求項1記載の暗号化装置。 12.前記マスクアレイの組合せ長よりも小さな値が使用されてエンコード計算 とデコード計算とを制御することを特徴とする請求項11記載の暗号化装置。 13.前記エンコードメッセージの発信以前に、エンコード情報の序数シーケン スを修正し、受信したエンコードメッセージに対して論理逆計算を実行するよう にアレンジされて構成されたカウンタをさらに含むことを特徴とする請求項1記 載の暗号化装置。 14.前記カウンタを修正するようにアレンジされた一連の値をさらに含んでお り、その修正には、前記エンコード情報の発信以前にその序数シーケンスを修正 し、受信したエンコードメッセージに対して論理逆計算を実行するための「加算 処理」、「減算処理」あるいは「排他的順序処理」のうち少なくとも1つの処理 が含まれることを特徴とする請求項13記載の暗号化装置。 15.前記の定義に従ったエンコード処理以前に、情報の値を修正し、受信した エンコードメッセージに対して論理逆計算を実行するようにアレンジされて構成 されたカウンタをさらに含んでおり、前記修正は、得られたエンコードメッセー ジをエンコードバイトの可能値範囲にわたってさらに拡散あるいは均等化するも のであることを特徴とする請求項1記載の暗号化装置。 16.前記カウンタを修正し、受信したエンコードメッセージに対して論理逆計 算を実行するようにアレンジされた一連の値をさらに含んでおり、そのカウンタ はセクエンシャルカウンタを含んだものであり、その修正には、前記値の「加算 処理」、「減算処理」あるいは「排他的順序処理」のうちの少なくとも1つが含 まれ、エンコード処理以前に情報を処理し、その修正はエンコードバイトの可能 値範囲にわたってさらに拡散あるいは均等化するものであることを特徴とする請 求項15記載の暗号化装置。 17.情報のエンコード処理以前に、その情報の序数シーケンスを修正し、受信 したエンコードメッセージに対して論理逆計算を実行するようにアレンジされて 構成されたカウンタをさらに含むことを特徴とする請求項1記載の暗号化装置。 18.前記カウンタを修正し、受信したエンコードメッセージに対して論理逆計 算を実行するようにアレンジされた一連の値をさらに含んでおり、その修正には 、前記エンコード情報の発信以前にエンコード情報の序数シーケンスを修正する ための「加算処理」、「減算処理」あるいは「排他的順序処理」のうちの少なく とも1つが含まれていることを特徴とする請求項17記載の暗号化装置。 19.エンコード処理以前に入力バッファをサンプルするためのスクランブル入 力アドレスを創出するために「加算処理」、「減算処理」あるいは「排他的順序 処理」を使用するようにアレンジされて構成された第1カウンタと、出力バッフ ァにエンコード情報を配置させるためのスクランブルアドレスを創出させるため に「加算処理」、「減算処理」あるいは「排他的順序処理」を使用するようにア レンジされて構成された第2カウンタとをさらに含んでおり、受信したエンコー ドメッセージに対して論理逆計算を実行することを特徴とする請求項1記載の暗 号化装置。 20.前記マスクアレイM1とM2とは、リトリーブされたデジタル信号が反復 的にリトリーブ処理されるようなあらゆるデジタル源から選択されていることを 特徴とする請求項1記載の暗号化装置。 21.前記パスワードはビットから成るアレイであり、 計算のエンコード処理及びデコード処理順序を決定するビットと、 前記マスクアレイM1とM2の各々の要素の使用順序を決定するビットと、 そのマスクビットをコンプレメントするビットと、 前記マスクの開始オフセットを決定するビットと、 パリティを決定するビットと、 を含んだビットのアレイであることを特徴とする請求項1記載の装置。 22.前記2つのマスクアレイは独立的にアクセスされ、シリーズカウンタ(se rial counter)、可変要素、順序及び組合せ自由である「排他的順序処理」、「 加算処理」及び「減算処理」の組合せによって非線形式(nonlinear)に決定さ れることを特徴とする請求項1記載の装置。 23.少なくとも第1及び第2カウンタをさらに含んでおり、第1カウンタの出 力は第1マスクアレイの要素を選択し、第2カウンタの出力は第2マスクアレイ の要素を選択することを特徴とする請求項1記載の装置。 24.少なくとも第1及び第2アドレスレジスタをさらに含んでおり、各レジス タの出力は第1マスクアレイの要素を選択するアドレスを提供し、第2アドレス レジスタは第2マスクアレイの要素を選択するアドレスを提供するものであり、 さらに、 前記両レジスタをロードして増分する手段、 を含んでおり、各レジスタの出力は非線形シーケンスを提供することを特徴とす る請求項1記載の装置。 25.異なる時間に前記アドレスレジスタの内容を修正するために使用される順 序自由な一連の定数の他の複数のカウンタを含んでおり、そのアドレスレジスタ の出力は非線形シーケンスを提供することを特徴とする請求項24記載の装置。 26.1つあるいは複数の追加マスクアレイをさらに含んでおり、各追加アレイ の内容はエンコード処理手段によって使用され、その計算の結果を先行のマスク アレイで修正することを特徴とする請求項1記載の装置。 27.各前記マスクアレイは両方共1つのアレイの要素として存在することを特 徴とする請求項1記載の装置。 28.メッセージの暗号化及び解読方法であって、 エンコードするD要素のアレイをリトリーブするステップと、 M要素のマスクアレイを定義するステップと、 暗号化情報を提供するようにアレンジされたP要素のパスワードを創出するス テップと、 D要素のアレイを前記パスワード情報に基づいてエンコードするステップと、 を含んでおり、 そのエンコード処理にはD要素とM要素との計算が含まれており、エンコード メッセージを提供し、 そのエンコードメッセージにアクセスするステップと、 前記パスワード情報に基づき、アクセスされたエンコードメッセージをデコー ド処理してオリジナルメッセージを再生させるステップと、 をさらに含んでおり、 そのデコード処理は前記エンコード処理の論理逆計算の実行である、 ことを特徴とする暗号化及び解読方法。 29.前記計算は「減算処理」であり、「減算処理」に対応する論理逆計算は「 加算処理」であることを特徴とする請求項28記載の暗号化方法。 30.前記計算は「加算処理」であり、「加算処理」に対応する論理逆計算は「 減算処理」であることを特徴とする請求項28記載の暗号化方法。 31.前記計算は「排他的順序処理」であり、「排他的順序処理」に対応する論 理逆計算は「排他的順序処理」であることを特徴とする請求項28記載の暗号化 方法。 32.エンコーダに計算の組合せを連続的に実行するように指示し、デコーダに オリジナルメッセージを再生するための対応する論理逆計算を実行するように指 示するステップをさらに含んでおり、その計算の組合せを前記パスワードの内容 から導き出すことを特徴とする請求項28記載の暗号化方法。 33.エンコードメッセージの発信以前にエンコード情報の序数シーケンスを修 正し、受信したエンコードメッセージに対してその修正の論理逆処理を施すこと を特徴とする請求項28記載の暗号化方法。 34.前記修正ステップは定数あるいは他の可変要素の「加算処理」、「減算処 理」あるいは「排他的順序処理」のうちの少なくとも1つを含んでおり、そのエ ンコードメッセージの発信以前にエンコード情報の序数シーケンスを修正するこ とを特徴とする請求項33記載の暗号化方法。 35.エンコード処理以前に情報の値を修正するステップをさらに含んでおり、 その修正は、得られたエンコードメッセージをエンコードバイトの可能値範囲に わたってさらに拡散あるいは均等化することを特徴とする請求項28記載の暗号 化方法。 36.前記修正ステップはエンコード処理以前に情報の値を修正するための定数 あるいは他の可変要素の「加算処理」、「減算処理」あるいは「排他的順序処理 」のうちの少なくとも1つを含んでおり、その修正は、得られたエンコードメッ セージをエンコードバイトの可能値範囲にわたってさらに拡散あるいは均等化す ることを特徴とする請求項35記載の暗号化方法。 37.エンコード処理以前に、定数あるいは他の可変要素の「加算処理」、「減 算処理」あるいは「排他的順序処理」のうちの少なくとも1つによってその序数 シーケンスを修正するステップをさらに含むことを特徴とする請求項28記載の 暗号化方法。 38.前記修正ステップはエンコード処理以前に、その序数シーケンスを修正す るための定数あるいは他の可変要素の「加算処理」、「減算処理」あるいは「排 他的順序処理」のうちの少なくとも1つを含んでおり、その修正は、得られたエ ンコードメッセージをエンコードバイトの可能値範囲にわたってさらに拡散ある いは均等化することを特徴とする請求項37記載の暗号化方法。 39.第1非線形式に前記マスクアレイのM要素にアクセスするステップをさら に含むことを特徴とする請求項28記載の方法。 40.前記非線形式とは、シリーズカウンタと、「加算処理」、「減算処理」及 び「排他的順序処理」で組合わされた可変要素の使用を含むあらゆる順序の組合 せによる計算によって決定されることを特徴とする請求項39記載の方法。 41.マスクアレイを前記レトリーブされたデジタル信号が反復的にレトリーブ 処理されるようなあらゆるデジタル源から選択するステップを含むことを特徴と する請求項28記載の方法。 42.エンコード処理とデコード処理の最中に使用されたマスクアレイの組合せ 、あるいは要素の数をカウントするステップをさらに含むことを特徴とする請求 項28記載の方法。 43.M要素を1回以上、アレイMの1箇所以上でサンプリングするステップと 、 エンコード処理あるいはデコード処理の最中に使用されたマスクのM要素をカ ウントするステップと、 をさらに含むことを特徴とする請求項28記載の方法。 44.暗号化方法であって、 メッセージを表す二進ファイルをプリント可能な文字に変換するステップと、 その二進ファイルにNビット単位でビット連続式にアクセスするステップと、 このNビットを一連の数字に変換し、これら数字をプリント可能な文字に変換 するステップと、 これらプリント可能な文字を伝達するステップと、 これらステップの逆計算を逆順序で実行してメッセージを再生させるステップ と、 を含むことを特徴とする暗号化方法。 45.エンコード処理とデコード処理の最中に使用されたマスクアレイのM要素 をカウントするステップをさらに含むことを特徴とする請求項28記載の方法。 46.エンコード処理とデコード処理のための可変幅ロジック/数学計算要素の 使用をさらに含むことを特徴とする請求項1の装置。 47.エンコード処理とデコード処理に供されるデータよりも広いビット幅を有 しており、その広い幅によって他のバイトでの計算結果を修正するための1バイ トからの計算が可能であることを特徴とする請求項46記載の装置。 48.エンコード処理とデコード処理のための可変幅ロジック/数学計算要素の 使用をさらに含むことを特徴とする請求項28記載の方法。 49.エンコード処理とデコード処理に供されるデータよりも広いビット幅を有 しており、その広い幅によって他のバイトでの計算結果を修正するための1バイ トからの計算が可能であることを特徴とする請求項48記載の方法。 50.異なるビット幅の2つ以上のマスクアレイM1、M2等の使用を含むこと を特徴とする請求項1記載の装置。 51.エンコード処理とデコード処理とに供されるデータよりも広いビット幅を 有した固定幅ロジック/数学計算要素の使用をさらに含んでおり、その広い幅に よって他のバイトでの計算結果を修正するための1バイトからの計算が可能であ ることを特徴とする請求項1記載の装置。 52.前記固定幅はマスクアレイ幅よりも広く、マスクアレイエントリはさらに 広いビット距離にわたって広がることができることを特徴とする請求項51記載 の装置。 53.エンコード処理とデコード処理とに供されるデータよりも広いビット幅を 有した固定幅ロジック/数学計算要素の使用をさらに含んでおり、その広い幅に よって他のバイトでの計算結果を修正するための1バイトからの計算が可能であ ることを特徴とする請求項28記載の方法。 54.前記固定幅はマスクアレイ幅よりも広く、マスクアレイエントリはさらに 広いビット距離にわたって広がることができることを特徴とする請求項53記載 の方法。
JP8516035A 1994-11-09 1995-09-29 情報保全システム及び方法 Ceased JPH10508955A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/336,766 1994-11-09
US08/336,766 US5717760A (en) 1994-11-09 1994-11-09 Message protection system and method
PCT/US1995/012403 WO1996015604A1 (en) 1994-11-09 1995-09-29 Message protection system and method

Publications (1)

Publication Number Publication Date
JPH10508955A true JPH10508955A (ja) 1998-09-02

Family

ID=23317561

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8516035A Ceased JPH10508955A (ja) 1994-11-09 1995-09-29 情報保全システム及び方法

Country Status (5)

Country Link
US (1) US5717760A (ja)
EP (1) EP0795240A4 (ja)
JP (1) JPH10508955A (ja)
CA (1) CA2204878A1 (ja)
WO (1) WO1996015604A1 (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6201869B1 (en) * 1995-09-05 2001-03-13 Mitsubishi Denki Kabushiki Kaisha Data transformation apparatus and data transformation method
US6373884B1 (en) * 1997-03-11 2002-04-16 Motorola, Inc. Method and apparatus for transmitting data
DE69717505T2 (de) * 1997-03-21 2003-10-02 Canal & Technologies Paris Verfahren zum fernladen von daten in einen mpeg-empfänger/-dekoder
EP1125189A4 (en) * 1998-10-28 2001-11-28 Datamark Technologies Pte Ltd DIGITAL STEGANOGRAPHY METHODS FOR MULTIMEDIA DATA
US6549622B1 (en) * 1998-11-23 2003-04-15 Compaq Computer Corporation System and method for a fast hardware implementation of RC4
CA2371446A1 (en) * 1999-05-18 2000-11-23 Richard C. Satterfield Multiple number base encoder/decoder using corresponding xor
US7191309B1 (en) * 1999-09-01 2007-03-13 Intel Corporation Double shift instruction for micro engine used in multithreaded parallel processor architecture
WO2001016702A1 (en) 1999-09-01 2001-03-08 Intel Corporation Register set used in multithreaded parallel processor architecture
EP1236092A4 (en) * 1999-09-01 2006-07-26 Intel Corp BRANCH COMMAND FOR A PROCESSOR
US6760440B1 (en) * 1999-12-11 2004-07-06 Honeywell International Inc. One's complement cryptographic combiner
US20020114451A1 (en) * 2000-07-06 2002-08-22 Richard Satterfield Variable width block cipher
JP2002055604A (ja) * 2000-08-11 2002-02-20 Trinity Communication Inc データ防護処理装置、モデム装置、データ通信システム、データ防護処理方法、その方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
US7681018B2 (en) * 2000-08-31 2010-03-16 Intel Corporation Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set
US7277543B1 (en) 2000-11-14 2007-10-02 Honeywell International Inc. Cryptographic combiner using two sequential non-associative operations
US7020871B2 (en) * 2000-12-21 2006-03-28 Intel Corporation Breakpoint method for parallel hardware threads in multithreaded processor
US7216204B2 (en) 2001-08-27 2007-05-08 Intel Corporation Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment
US6868476B2 (en) 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
US7487505B2 (en) 2001-08-27 2009-02-03 Intel Corporation Multithreaded microprocessor with register allocation based on number of active threads
US7225281B2 (en) * 2001-08-27 2007-05-29 Intel Corporation Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms
JP2003216037A (ja) * 2001-11-16 2003-07-30 Yazaki Corp 暗号キー、暗号化装置、暗号化復号化装置、暗号キー管理装置及び復号化装置
US7610451B2 (en) * 2002-01-25 2009-10-27 Intel Corporation Data transfer mechanism using unidirectional pull bus and push bus
US7337275B2 (en) * 2002-08-13 2008-02-26 Intel Corporation Free list and ring data structure management
US6941438B2 (en) 2003-01-10 2005-09-06 Intel Corporation Memory interleaving
US7465114B2 (en) * 2004-08-11 2008-12-16 Elc Management Llc Vibrating mascara applicator, suitable compositions and method of use
US7602905B2 (en) * 2004-09-01 2009-10-13 Texas Instruments Incorporated Processes, circuits, devices, and systems for encryption and decryption and other purposes, and processes of making
FR2882506B1 (fr) * 2005-02-25 2007-05-18 Oreal Procede de maquillage au moyen d'un applicateur vibrant
US20080195859A1 (en) * 2007-02-12 2008-08-14 Joseph Frank Johns Safe, Alert, Biz, Gold and Com2 software
JP5198572B2 (ja) * 2008-10-07 2013-05-15 富士通株式会社 暗号化装置
US8625802B2 (en) * 2010-06-16 2014-01-07 Porticor Ltd. Methods, devices, and media for secure key management in a non-secured, distributed, virtualized environment with applications to cloud-computing security and management
US8738908B2 (en) * 2011-05-10 2014-05-27 Softlayer Technologies, Inc. System and method for web-based security authentication
CN104298905B (zh) * 2014-10-13 2015-08-19 桑永朋 一种基于两级转换的口令输入方法及系统
US9577669B2 (en) * 2014-11-03 2017-02-21 Ixia Methods, systems, and computer readable media for optimized message decoding
US11626970B2 (en) * 2014-12-08 2023-04-11 Cryptography Research, Inc. Multiplicative masking for cryptographic operations
US9807204B2 (en) 2015-03-06 2017-10-31 Ixia Optimized message processing
RU2656578C1 (ru) * 2016-11-22 2018-06-05 Общество с ограниченной ответственностью "ЛАН-ПРОЕКТ" Способ формирования ключей шифрования
US11088744B1 (en) 2020-02-07 2021-08-10 Keysight Technologies, Inc. Methods, systems, and computer readable media for 5G digital beamforming testing

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2756637C2 (de) * 1977-12-16 1979-12-13 Gretag Ag, Regensdorf, Zuerich (Schweiz) Kryptogrammwandler
US4249180A (en) * 1978-09-20 1981-02-03 Northern Telecom Limited Past dependent microcomputer cipher apparatus
US4853962A (en) * 1987-12-07 1989-08-01 Universal Computer Consulting, Inc. Encryption system
GB8807020D0 (en) * 1988-03-24 1988-08-24 Racal Guardata Ltd Data-processing apparatus
US5008935A (en) * 1989-06-30 1991-04-16 At&T Bell Laboratories Efficient method for encrypting superblocks of data
US5077793A (en) * 1989-09-29 1991-12-31 The Boeing Company Residue number encryption and decryption system
US5113444A (en) * 1990-09-05 1992-05-12 Arnold Vobach Random choice cipher system and method
US5283832A (en) * 1991-10-22 1994-02-01 Motorola, Inc. Paging message encryption
US5307412A (en) * 1992-09-30 1994-04-26 Vobach Arnold R Random coding cipher system and method
SG42847A1 (en) * 1993-05-05 1997-10-17 Zunquan Liu Device and method for data encryption

Also Published As

Publication number Publication date
US5717760A (en) 1998-02-10
EP0795240A1 (en) 1997-09-17
EP0795240A4 (en) 2001-05-09
CA2204878A1 (en) 1996-05-23
WO1996015604A1 (en) 1996-05-23

Similar Documents

Publication Publication Date Title
JPH10508955A (ja) 情報保全システム及び方法
US5799088A (en) Non-deterministic public key encrypton system
US9054857B2 (en) Parallelizeable integrity-aware encryption technique
US7079651B2 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
US6185304B1 (en) Method and apparatus for a symmetric block cipher using multiple stages
US6185679B1 (en) Method and apparatus for a symmetric block cipher using multiple stages with type-1 and type-3 feistel networks
US6961426B2 (en) Cascaded stream cipher
US6125182A (en) Cryptographic engine using logic and base conversions
KR100994841B1 (ko) 다중키를 이용한 스트림 암호 생성 방법 및 기록 매체
JP2008516296A (ja) 擬群を用いる、暗号法の基本要素、エラーコーディング、及び擬似ランダム数改善方法
EP1260052A2 (en) Cryptographic communication process and apparatus
US6128386A (en) Multiple number base encoder/decoder using a corresponding exclusive or function
AU750408B2 (en) A method of combining a serial keystream output with binary information
AU750323B2 (en) A method of generating a key for a public key encryption system
EP1179243A1 (en) Cryptographic engine using base conversion, logic operations and prng in data arrays to increase dispersion in ciphertext
KR20000066440A (ko) 엘.에프.에스.알을 이용한 확장 알.씨.4 암호화 방법
WO2002025862A2 (en) Cryptographic encoder/decoder with segmentation and dynamically varying number bases
Back The RSA Algorithm and PGP
EP1183819A1 (en) Multiple number base encoder/decoder using corresponding xor

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050524

A313 Final decision of rejection without a dissenting response from the applicant

Free format text: JAPANESE INTERMEDIATE CODE: A313

Effective date: 20051003

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20051108