(57)【要約】【課題】本発明の目的は、暗号文が完全秘匿性を持ち、秘密鍵が完全秘匿性若しくは計算量的完全秘匿性を持つ暗号処理の装置及び方法を提供することである。【解決手段】暗号鍵を使い捨て変数を用いて生成するに当たり、その過程に秘匿するべき変数（秘匿変数）を設け、その秘匿変数を入力値側からは推測不能とし、出力値である暗号鍵側からは情報理論的に逆算不能とすることによって完全秘匿することにより、そのために、一様かつ周期性がなく初期値鋭敏性を持つ擬似ランダムビット生成器と、その擬似ランダムビット生成器を用いて作られた非線型の置換装置および／または内積による置換装置を用いることによる。【選択図】図１
2009288758.tif 000002
【特許請求の範囲】
【請求項１】
暗号処理の装置に関する系の全体は、
変数ＶｉとＭ−１０００暗号化モデュールと
平文Ｍｉと
暗号文Ｅｉと
Ｍ−２０００公開変数添付モデュールと
送信文Ｔｉと
から構成され、
Ｍ−１０００暗号化モデュールは、
Ｍ−１１００暗号鍵生成モデュールと
暗号鍵Ｋｉと
Ｍ−１２００暗号文生成モデュールと
から構成され、
Ｍ−１１００暗号鍵生成モデュールは
Ｍ−１１１０秘匿変数生成モデュールと
2009288758.tif 000332
Ｍ−１１２０不可視化処理モデュールと
から構成され、
2009288758.tif 000333
成し、その暗号鍵ＫｉをＭ−１２００暗号文生成モデュールに入力して暗号文Ｅｉを生成し、その暗号文ＥｉをＭ−２０００公開変数添付モデュールに入力して送信文Ｔｉを得るようにし、
Ｍ−１１１０秘匿変数生成モデュールにおいて秘匿変数を推測不能とし、
且つ
Ｍ−１１１０秘匿変数生成モデュールを非線型化をすることによってＭ−１１１０秘匿変数生成モデュールに含まれる秘密鍵を秘匿するか
若しくは
Ｍ−１１２０不可視化処理モデュールを非線型処理とすることによって秘匿変数
2009288758.tif 000334
そのことによって、暗号化を完全秘匿とすると同時に、変数Ｖｉと暗号文Ｅｉとその平文Ｍｉを攻撃者が入手したとしても秘密鍵について完全秘匿性または計算量的完全秘匿性を持つようにしたことを特徴とする暗号処理の装置。
【請求項２】
暗号処理の装置のための置換装置において、
置換装置（ｃ）は、二つの入力値を持つ擬似ランダムビット生成過程において折畳または抜取または内積を含む演算を行うことによって生成を非線型化するＡ−００４擬似ランダムビット生成器型置換装置（ロ）と、入力値である変数Ｖと、秘密鍵Ｓと、出力値Ｃとから構成され、変数Ｖと秘密鍵ＳとをＡ−００４擬似ランダムビット生成器型置換装置（ロ）に入力することに因って非線型化した演算を行って出力値Ｃを得るようにした暗号処理の方法のための置換処理の装置であるか、または、
置換装置（ｄ）は、二つの入力値を素数ｐを法とする内積によって置換するＡ−
2009288758.tif 000335
変数Ｖと、ｐ−１（前記素数ｐから一を減じた値）を法とする秘密鍵Ｓと、ｐ−１（前記素数ｐから一を減じた値）を法とする出力値Ｃとから構成され、変数Ｖと
2009288758.tif 000336
内積して法ｐの出力値Ｃを得、その出力値Ｃを法ｐで各成分から一を減じることで法をｐ−１（前記素数ｐから一を減じた値）とする処理を行い、法をｐ−１（前記素数ｐから一を減じた値）とする出力値Ｃを得るようにした暗号処理の方法のための置換処理の装置であるか、または、
置換装置（ｅ）は、二つの入力値を自然数Ｎを法とするベクトル和によって置換
2009288758.tif 000337
鍵Ｓをベクトル和して出力値Ｃを得るようにした暗号処理の方法のための置換処理の装置であるか、または、
置換装置（ｆ）は、二つの入力値を自然数Ｎを法とするベクトル和によって置換
2009288758.tif 000338
値Ｃ′と、一つの入力値を持つ擬似ランダムビット生成過程において折畳または抜取または内積を含む演算を行うことによって生成を非線型化するＡ−００５擬似ランダムビット生成器型置換装置（ハ）と、出力値Ｃとから構成され、ＶＡとＶＢと
2009288758.tif 000339
そのＣ′をＡ−００５擬似ランダムビット生成器型置換装置（ハ）に入力して置換することによって出力値Ｃを得るようにした暗号処理の方法のための置換処理の装置であるか、または、
置換装置（ｇ）は、二つの入力値を素数ｐを法とする内積によって置換するＡ−
2009288758.tif 000340
変数Ｖと、ｐ−１（前記素数ｐから一を減じた値）を法とする秘密鍵Ｓと、置換された値Ｃ′と、一つの入力値を持つ擬似ランダムビット生成過程において折畳または抜取または内積を含む演算を行うことによって生成を非線型化するＡ−００５擬似ランダムビット生成器型置換装置（ハ）と、出力値Ｃとから構成され、Ｖと
2009288758.tif 000341
そのＣ′をＡ−００５擬似ランダムビット生成器型置換装置（ハ）に入力して置換することによって出力値Ｃを得るようにした暗号処理の方法のための置換処理の装置である
ことを特徴とする請求項１に記載の暗号処理の装置。
【請求項３】
暗号文および秘密鍵について完全秘匿である暗号処理の装置は、
使い捨て公開変数ｒｉと、Ｍ−１１１０秘匿変数生成モデュールと、秘匿変数Ｋ′ｉと、Ｍ−１１２０不可視化処理モデュールと、暗号鍵Ｋｉと、平文Ｍｉと、Ａ−９０３置換装置Γと、暗号文Ｅｉとから構成され、
Ｍ−１１１０秘匿変数生成モデュールは、秘密鍵Ｓ１と、Ａ−９０１置換装置Ａとから構成され、
Ｍ−１１２０不可視化処理モデュールは、秘密鍵Ｓ２と、Ａ−９０２置換装置Ｂと、から構成され、
使い捨て公開変数ｒｉと秘密鍵Ｓ１とをＡ−９０１置換装置Ａに入力して置換することによって秘匿変数Ｋ′ｉを生成し、その秘匿変数Ｋ′ｉと秘密鍵Ｓ２とをＡ−９０２置換装置Ｂに入力することによって暗号鍵Ｋｉを生成し、その暗号鍵Ｋｉと平文ＭｉをＡ−９０３置換装置Γに入力することに因って暗号文Ｅｉを生成するよう処理され、
Ａ−９０１置換装置Ａを、置換装置（ｃ）、置換装置（ｄ）、置換装置（ｅ）、置換装置（ｆ）、置換装置（ｇ）のいずれかから構成したことに因って変数Ｖｉからは秘匿変数Ｋ′ｉを推測不能とし、
Ａ−９０２置換装置Ｂを、置換装置（ｄ）または置換装置（ｇ）から構成するようにしたことに因って暗号鍵Ｋｉからは秘匿変数Ｋ′ｉも秘密鍵Ｓ２も情報理論的に逆算不能とし、
Ａ−９０１置換装置ＡとＡ−９０２置換装置Ｂを用いるようにしたことに因って秘密鍵Ｓ１と秘密鍵Ｓ２とを完全秘匿化し、
Ａ−９０３置換装置Γを、置換装置（ｄ）または置換装置（ｅ）から構成するようにしたことに因って暗号文Ｅｉを完全秘匿化するようにした
ことを特徴とする請求項１または請求項２に記載の暗号処理の装置。
【請求項４】
暗号文および秘密鍵について完全秘匿である暗号処理の装置は、
使い捨て公開変数ｒｉと、Ａ−３０１セパレータと、変数Ｖｉ１と、変数Ｖｉ２と、Ｍ−１１１０秘匿変数生成モデュールと、秘匿変数Ｋ′ｉ１と、秘匿変数Ｋ′ｉ２と、Ｍ−１１２０不可視化処理モデュールと、暗号鍵Ｋｉと、平文Ｍｉと、Ａ−９０３置換装置Γと、暗号文Ｅｉとから構成され、
Ｍ−１１１０秘匿変数生成モデュールは、秘密鍵Ｓ１と、秘密鍵Ｓ２と、Ａ−９０１置換装置Ａ１と、Ａ−９０１置換装置Ａ２とから構成され、
Ｍ−１１２０不可視化処理モデュールは、Ａ−９０２置換装置Ｂから構成され、
使い捨て公開変数ｒｉをＡ−３０１セパレータで分割して変数Ｖｉ１と変数Ｖｉ２とを生成し、その変数Ｖｉ１と秘密鍵Ｓ１とをＡ−９０１置換装置Ａ１に入力して置換することによって秘匿変数Ｋ′ｉ１を生成し、同時に変数Ｖｉ２と秘密鍵Ｓ２とをＡ−９０１置換装置Ａ２に入力して置換することによって秘匿変数Ｋ′ｉ２を生成し、その秘匿変数Ｋ′ｉ１と秘匿変数Ｋ′ｉ２とをＡ−９０２置換装置Ｂに入力することによって置換して暗号鍵Ｋｉを生成し、その暗号鍵Ｋｉと平文ＭｉとをＡ−９０３置換装置Γに入力することによって置換して暗号文Ｅｉを生成するよう処理され、
Ａ−９０１置換装置Ａ１およびＡ−９０１置換装置Ａ２を、置換装置（ｃ）、置換装置（ｄ）、置換装置（ｅ）、置換装置（ｆ）、置換装置（ｇ）のいずれかから構成したことに因って変数Ｖｉからは秘匿変数Ｋ′ｉを推測不能とし、
Ａ−９０２置換装置Ｂを、置換装置（ｄ）、置換装置（ｅ）置換装置（ｆ）、置換装置（ｇ）のいずれかから構成するようにしたことに因って暗号鍵Ｋｉからは秘匿変数Ｋ′ｉも秘密鍵Ｓ２も情報理論的に逆算不能とし、
Ａ−９０１置換装置Ａ１およびＡ−９０１置換装置Ａ２とＡ−９０２置換装置Ｂを用いるようにしたことに因って、
但し、Ａ−９０１置換装置Ａ１およびＡ−９０１置換装置Ａ２が置換装置（ｅ）であればＡ−９０２置換装置Ｂは置換装置（ｃ）、置換装置（ｄ）、置換装置（ｆ）、置換装置（ｇ）のいずれかとし、Ａ−９０２置換装置Ｂが置換装置（ｅ）であればＡ−９０１置換装置Ａ１およびＡ−９０１置換装置Ａ２は置換装置（ｃ）、置換装置（ｄ）、置換装置（ｆ）、置換装置（ｇ）のいずれかとすることに因って、
秘密鍵Ｓ１と秘密鍵Ｓ２とを完全秘匿化し、
Ａ−９０３置換装置Γを、置換装置（ｄ）または（ｅ）から構成するようにしたことに因って暗号文Ｅｉを完全秘匿化するようにした
ことを特徴とする請求項１または請求項２に記載の暗号処理の装置。
【請求項５】
暗号文について完全秘匿性を持たせると同時に、秘密鍵について
暗号文と平文が漏洩することによって暗号鍵の情報が漏洩したとしても計算量的完全秘匿性を持たせる暗号処理の装置は、
使い捨て公開変数ｒｉと、Ｍ−１１１０秘匿変数生成モデュールと、秘匿変数Ｋ′ｉと、Ｍ−１１２０不可視化処理モデュールと、暗号鍵Ｋｉと、平文Ｍｉと、Ａ−９０３置換装置Γと、暗号文Ｅｉとから構成され、
Ｍ−１１１０秘匿変数生成モデュールは、秘密鍵Ｓ１と、Ａ−９０１置換装置Ａとから構成され、
Ｍ−１１２０不可視化処理モデュールは、秘密鍵Ｓ２と、Ａ−９０２置換装置Ｂと、から構成され、
使い捨て公開変数ｒｉと秘密鍵Ｓ１とをＡ−９０１置換装置Ａに入力して置換することによって秘匿変数Ｋ′ｉを生成し、その秘匿変数Ｋ′ｉと秘密鍵Ｓ２とをＡ−９０２置換装置Ｂに入力することによって暗号鍵Ｋｉを生成し、その暗号鍵Ｋｉと平文ＭｉをＡ−９０３置換装置Γに入力することに因って暗号文Ｅｉを生成するよう処理され、
Ａ−９０１置換装置Ａを、置換装置（ｃ）、置換装置（ｄ）、置換装置（ｅ）、置換装置（ｆ）、置換装置（ｇ）のいずれかから構成したことに因って変数Ｖｉからは秘匿変数Ｋ′ｉを推測不能とし、
Ａ−９０２置換装置Ｂを、置換装置（ｃ）または置換装置（ｆ）から構成するようにしたことに因って暗号鍵Ｋｉからは秘匿変数Ｋ′ｉも秘密鍵Ｓ２も計算量的に逆算不能とし、
Ａ−９０１置換装置ＡとＡ−９０２置換装置Ｂを用いるようにしたことに因って秘密鍵Ｓ１と秘密鍵Ｓ２とを計算量的完全秘匿化し、
Ａ−９０３置換装置Γを、置換装置（ｄ）または置換装置（ｅ）から構成するようにしたことに因って暗号文Ｅｉを完全秘匿化するようにした
ことを特徴とする請求項１または請求項２に記載の暗号処理の装置。
【請求項６】
暗号文について完全秘匿性を持たせると同時に、秘密鍵について暗号文と平文が漏洩することによって暗号鍵の情報が漏洩したとしても計算量的完全秘匿性を持たせる暗号処理の装置は、
使い捨て公開変数ｒｉと、Ａ−３０１セパレータと、変数Ｖｉ１と、変数Ｖｉ２と、Ｍ−１１１０秘匿変数生成モデュールと、秘匿変数Ｋ′ｉ１と、秘匿変数Ｋ′ｉ２と、Ｍ−１１２０不可視化処理モデュールと、暗号鍵Ｋｉと、平文Ｍｉと、Ａ−９０３置換装置Γと、暗号文Ｅｉとから構成され、
Ｍ−１１１０秘匿変数生成モデュールは、秘密鍵Ｓ１と、秘密鍵Ｓ２と、Ａ−９０１置換装置Ａ１と、Ａ−９０１置換装置Ａ２とから構成され、
Ｍ−１１２０不可視化処理モデュールは、Ａ−９０２置換装置Ｂから構成され、
使い捨て公開変数ｒｉをＡ−３０１セパレータで分割して変数Ｖｉ１と変数Ｖｉ２とを生成し、その変数Ｖｉ１と秘密鍵Ｓ１とをＡ−９０１置換装置Ａ１に入力して置換することによって秘匿変数Ｋ′ｉ１を生成し、同時に変数Ｖｉ２と秘密鍵Ｓ２とをＡ−９０１置換装置Ａ２に入力して置換することによって秘匿変数Ｋ′ｉ２を生成し、その秘匿変数Ｋ′ｉ１と秘匿変数Ｋ′ｉ２とをＡ−９０２置換装置Ｂに入力することによって置換して暗号鍵Ｋｉを生成し、その暗号鍵Ｋｉと平文ＭｉとをＡ−９０３置換装置Γに入力することによって置換して暗号文Ｅｉを生成するよう処理され、
Ａ−９０１置換装置Ａ１およびＡ−９０１置換装置Ａ２を、置換装置（ｃ）、置換装置（ｄ）、置換装置（ｅ）、置換装置（ｆ）、置換装置（ｇ）のいずれかから構成したことに因って変数Ｖｉからは秘匿変数Ｋ′ｉを推測不能とし、
Ａ−９０２置換装置Ｂを、置換装置（ｃ）から構成するようにしたことに因って暗号鍵Ｋｉからは秘匿変数Ｋ′ｉも秘密鍵Ｓ２も計算量的に逆算不能とし、
Ａ−９０１置換装置Ａ１およびＡ−９０１置換装置Ａ２とＡ−９０２置換装置Ｂを用いるようにしたことに因って、
秘密鍵Ｓ１と秘密鍵Ｓ２とを計算量的完全秘匿化し、
Ａ−９０３置換装置Γを、置換装置（ｄ）または置換装置（ｅ）から構成するようにしたことに因って暗号文Ｅｉを完全秘匿化するようにした
ことを特徴とする請求項１または請求項２に記載の暗号処理の装置。
【請求項７】
暗号文について完全秘匿性を持たせると同時に、秘密鍵について暗号文と平文が漏洩することによって暗号鍵の情報が漏洩したとしても計算量的完全秘匿性を持たせる暗号処理の装置は、
使い捨て公開変数ｒｉと、Ｍ−１１１０秘匿変数生成モデュールと、変数Ｒｉと、Ａ
2009288758.tif 000342
化処理モデュールと、暗号鍵Ｋｉと、平文Ｍｉと、Ａ−９０３置換装置Γと、暗号文Ｅｉとから構成され、
Ｍ−１１１０秘匿変数生成モデュールは、秘密鍵Ｓ１と、Ａ−９０１置換装置Ａとから構成され、
Ｍ−１１２０不可視化処理モデュールは、秘密鍵Ｓ２と、Ａ−９０２置換装置Ｂとから構成され、
使い捨て公開変数ｒｉと秘密鍵Ｓ１とをＡ−９０１置換装置Ａに入力して置換することによって変数Ｒｉを生成し、その変数ＲｉからＡ−００２擬似ランダムビット生成
2009288758.tif 000343
２置換装置Ｂに入力することによって暗号鍵Ｋｉを生成し、その暗号鍵Ｋｉと平文ＭｉをＡ−９０３置換装置Γに入力することに因って暗号文Ｅｉを生成するよう処理され、
Ａ−９０１置換装置Ａを、置換装置（ｃ）、置換装置（ｄ）、置換装置（ｅ）、置換装置（ｆ）、置換装置（ｇ）のいずれかから構成したことに因って使い捨て公開変数ｒｉからは秘匿変数Ｋ′ｉを推測不能とし、
Ａ−９０２置換装置Ｂを、置換装置（ｃ）、置換装置（ｄ）、置換装置（ｆ）、置換装置（ｇ）のいずれかから構成するようにしたことに因って暗号鍵Ｋｉからは秘匿変数Ｋ′ｉも秘密鍵Ｓ２も計算量的に逆算不能とし、
Ａ−９０１置換装置ＡとＡ−９０２置換装置Ｂを用いるようにしたことに因って秘密鍵Ｓ１と秘密鍵Ｓ２とを計算量的完全秘匿化し、
Ａ−９０３置換装置Γを、置換装置（ｄ）または置換装置（ｅ）から構成するようにしたことに因って暗号文Ｅｉを完全秘匿化するようにした
ことを特徴とする請求項１または請求項２に記載の暗号処理の装置。
【請求項８】
暗号文について完全秘匿性を持たせると同時に、秘密鍵について暗号文と平文が漏洩することによって暗号鍵の情報が漏洩したとしても計算量的完全秘匿性を持たせる暗号処理の装置は、
使い捨て公開変数ｒｉと、Ａ−３０１セパレータと、変数Ｖｉ１と、変数Ｖｉ２と、Ｍ−１１１０秘匿変数生成モデュールと、変数Ｒｉと、秘匿変数Ｋ′ｉ１と、秘匿変数Ｋ′ｉ２と、Ｍ−１１２０不可視化処理モデュールと、暗号鍵Ｋｉと、平文Ｍｉと、Ａ−９０３置換装置Γと、暗号文Ｅｉとから構成され、
Ｍ−１１１０秘匿変数生成モデュールは、秘密鍵Ｓ１と、秘密鍵Ｓ２と、Ａ−９０１置換装置Ａ１と、Ａ−９０１置換装置Ａ２とから構成され、
Ｍ−１１２０不可視化処理モデュールは、Ａ−９０２置換装置Ｂとから構成され、
使い捨て公開変数ｒｉをＡ−３０１セパレータで分割して変数Ｖｉ１と変数Ｖｉ２とを生成し、その変数Ｖｉ１と秘密鍵Ｓ１とをＡ−９０１置換装置Ａ１に入力して置換することによって秘匿変数Ｋ′ｉ１を生成し、同時に変数Ｖｉ２と秘密鍵Ｓ２とをＡ−９０１置換装置Ａ２に入力して置換することによって変数Ｒｉを生成し、その変数Ｒｉか
2009288758.tif 000344
秘匿変数Ｋ′ｉ１と秘匿変数Ｋ′ｉ２とをＡ−９０２置換装置Ｂに入力することによって置換して暗号鍵Ｋｉを生成し、その暗号鍵Ｋｉと平文ＭｉとをＡ−９０３置換装置Γに入力することによって置換して暗号文Ｅｉを生成するよう処理され、
Ａ−９０１置換装置Ａ１およびＡ−９０１置換装置Ａ２を、置換装置（ｃ）、置換装置（ｄ）、置換装置（ｅ）、置換装置（ｆ）、置換装置（ｇ）のいずれかから構成したことに因って変数Ｖｉからは秘匿変数Ｋ′ｉを推測不能とし、
Ａ−９０２置換装置Ｂを、置換装置（ｃ）から構成するようにしたことに因って暗号鍵Ｋｉからは秘匿変数Ｋ′ｉも秘密鍵Ｓ２も計算量的に逆算不能とし、
Ａ−９０１置換装置Ａ１およびＡ−９０１置換装置Ａ２とＡ−９０２置換装置Ｂを用いるようにしたことに因って、
秘密鍵Ｓ１と秘密鍵Ｓ２を不確定性がＨ（Ｓ１）＋Ｈ（Ｓ２）で計算量的完全秘匿化し、
但し、このとき
2009288758.tif 000345
つまり、秘密鍵Ｓ１の不確定性Ｈ（Ｓ１）は変数Ｖｉ１の不確定性Ｈ（Ｖｉ１）を下回らず、かつ秘匿変数Ｋ′ｉ１の不確定性Ｈ（Ｋ′ｉ１）および暗号鍵Ｋｉの不確定性Ｈ（Ｋｉ）と等しく、
且つ、秘密鍵Ｓ２の不確定性Ｈ（Ｓ２）は変数Ｖｉ２の不確定性Ｈ（Ｖｉ２）を下回らず、かつ変数Ｒｉの不確定性Ｈ（Ｒｉ）および秘匿変数Ｋ′ｉ２の不確定性Ｈ（Ｋ′ｉ２）と等しく、かつ暗号鍵Ｋｉの不確定性Ｈ（Ｋｉ）を下回り、
且つ、暗号鍵Ｋｉの不確定性Ｈ（Ｋｉ）は平文Ｍｉの不確定性Ｈ（Ｍｉ）を下回らないものとし、
Ａ−９０３置換装置Γを、置換装置（ｄ）または置換装置（ｅ）から構成するようにしたことに因って暗号文Ｅｉを完全秘匿化するようにした
ことを特徴とする請求項１または請求項２に記載の暗号処理の装置。
【請求項９】
2009288758.tif 000346
シードであるベクトルａと生成するべき成分数｜Ａ｜を入力値として受け取り、生成に伴って伸長されるベクトルの成分数を監視し、成分数の過不足を判定して不足であれば入力または生成されたベクトルをＡ−３０１セパレータに送るようＡ−２０３ベクトル配列生成部に指示し、十分であればＡ−２０３ベクトル配列生成部に通知してＡ−２０３ベクトル配列生成部において生成されたベクトルをＡ−２０３ベクトル配列生成部から受け取って外部に戻す働きをする
Ａ−２０１データ長管理部と、
受け取ったベクトルを二つのベクトルに分割してＡ−２０２表演算部に送出する
Ａ−３０１セパレータと、
Ａ−３０１セパレータから受け取った二つのベクトルを２次元の表の第一列と第一行に配置し、生成値を含む行方向および列方向の複数の成分に和または積の演算を行うことによって演算表を生成する
Ａ−２０２表演算部と、
Ａ−２０２表演算部において生成された表の成分から列ベクトル毎にデータを抜き出し、新たなベクトルとして配列を生成し、データ長管理部からの指示に基づいて送出する
Ａ−２０３ベクトル配列生成部と
から構成され、
シードであるベクトルａと生成する擬似ランダムビットの成分数｜Ａ｜をＡ−２０１データ長管理部に入力すると、Ａ−２０１データ長管理部はベクトルａの成分数が｜Ａ｜を下回れば、つまり、｜ａ｜＜｜Ａ｜ならばベクトルａをＡ−３０１セパレータに送り、
Ａ−３０１セパレータはベクトルａをベクトルＶ１とＶ２に分割（但し｜ａ｜＝｜Ｖ１｜＋｜Ｖ２｜。
つまりＶ１の成分数とＶ２の成分数を足したものはａの成分数に等しい）してＡ−２０２表演算部に送り、
（１）Ａ−２０２表演算部はベクトルＶ１、Ｖ２をそれぞれ二次元の表の第一行と第一列に配置し、表の各成分に対して行方向の複数の成分と列方向の複数の成分を用い（但し、例えば第二行第二列成分ではＶ１の第一成分とＶ２の第二成分を用い、第二行第三列成分ではＶ１の第一成分と第二行第二列成分とＶ２の第二成分を用いるという風に、一つの成分しか用いることができない場合は一つの成分だけを用いる）自然数Ｎを法として和または素数ｐを法として積または積と和を行うことにより二次元の演算表を生成し、
例えば、全ての演算を和とするならば、行方向に演算される成分数をψ、列方向に演算される成分数をξとする時、任意の成分をａｉｊとすれば、
2009288758.tif 000347
つまり、ａｉｊで表わされる二次元の表の第ｉ行第ｊ列の成分は、自然数Ｎを法として、ａｉｊが属する列のａｉｊの一つ上の行つまり第ｉ−１（ｉから一を減じた値）行目から上に第ψ番目の行つまり第ｉ−ψ（ｉからψ（二を下回らない自然数）を減じた値）行目までの全ての成分を足し合わせた値と、ａｉｊが属する行のａｉｊの一つ左の列つまり第ｊ−１（ｊから一を減じた値）列目から左に第ξ番目の列つまり第ｊ−ξ（ｊからξ（二を下回らない自然数）を減じた値）列目までの全ての成分を足し合わせた値を足し合わせた値に合同
その生成結果から第一列成分と第一行成分を除いた成分（生成結果を行列に見立
2009288758.tif 000348
について列ベクトル毎にまたは行ベクトル毎に成分を取り出したベクトル
（Ｂｊ）ｊ＝１，２，．．．，ｎ−１（但し、Ｂｊ＝Ａｊ＋１）、
つまり、任意の成分がＢｊで表わされるｎ−１（ｎから一を減じた値）個の成分からなるベクトルであって、第ｊ番目の成分がベクトルＡの第ｊ＋１（ｊに一を加えた値）番目の成分と等しいベクトル
を生成してＡ−２０３ベクトル配列生成部に送り、
（２）Ａ−２０３ベクトル配列生成部は、その取り出された列ベクトル
（Ｂｊ）ｊ＝１，２，．．．，ｎ−１＝（Ｂ１，Ｂ２，．．．，Ｂｎ−１）
つまり、ベクトル（Ｂｊ）ｊ＝１，２，．．．，ｎ−１はベクトルＢ１からベクトルＢｎ−１までのｎ−１
（ｎから一を減じた値）個のベクトルを成分とするベクトル
の成分を展開してベクトル
Ｂ＝（ｂ１，ｂ２，．．．，ｂ（ｍ−１）（ｎ−１）−１，ｂ（ｍ−１）（ｎ−１））
つまり、ｂ１からｂ（ｍ−１）（ｎ−１）までの（ｍ−１）（ｎ−１）（ｍから一を減じた値とｎから一を減じた値を掛け合わせた値）個の成分からなるベクトルＢ
を生成し、
（３）Ａ−２０１データ長管理部はこの生成過程を常時チェックし、ベクトルＢの成分数｜Ｂ｜が｜Ａ｜を上回らないならばベクトルＢをＡ−３０１セパレータに送って、
（４）Ａ−３０１セパレータはベクトルＢをベクトルＶ１とＶ２に分割（但し｜Ｂ｜＝｜Ｖ１｜＋｜Ｖ２｜。つまりＶ１の成分数とＶ２の成分数を足したものはＢの成分数に等しい）してＡ−２０２表演算部に送り、
成分数｜Ｂ｜が｜Ａ｜を下回らなくなるまで上記（１）から（４）までの過程を繰り返し、成分数｜Ｂ｜が｜Ａ｜を下回らなくなったベクトルＢを出力値であるベクトルＡとして返すようにしたことを特徴とする請求項２から８までのいずれかに記載の暗号処理の装置。
【請求項１０】
2009288758.tif 000349
複数の入力値であるベクトルＡ，Ｂに対して出力値がベクトルＣとするとき、
Ａ，Ｂを、
二を下回らない自然数Ｎを法として
ベクトル和
するか、
または三を下回らない素数ｐを法として
内積するか
またはベクトル和および内積して
ベクトルＣとして出力することによって、
即ち、入力された二つのベクトルである
Ａ−１０１Ａ＝（ａｉ）ｉ＝１，２，．．．，ｎ、つまり任意の成分がａｉで表わされるｎ個の成分からなるベクトルＡ
およびＡ−１０１Ｂ＝（ｂｉ）ｉ＝１，２，．．．，ｎ、つまり任意の成分がｂｉで表わされるｎ個の成分からなるベクトルＢ
に対し、
それぞれの成分の内の同じ次元同士の値を
2009288758.tif 000350
は積と和の演算を行い、
各成分を次元の順に並べてベクトルＡ−１０２Ｃ＝（ｃｉ）ｉ＝１，２，．．．，ｎつまり任意の成分がｃｉで表わされるｎ個の成分からなるベクトルＣの出力を得、
そのことによって、ベクトルＡの不確定性Ｈ（Ａ）とベクトルＢの不確定性Ｈ（Ｂ）が異
2009288758.tif 000351
Ｈ（Ｃ）つまりＨ（Ｂ）はＨ（Ｃ）と等しく、且つ、Ｈ（Ｂ）とＨ（Ｃ）はＨ（Ａ）を下回らず、即ちベクトルＣの不確定性Ｈ（Ｃ）がベクトルＢの不確定性Ｈ（Ｂ）と等しくなる
ように置換する
ようにしたことを特徴とする請求項２から請求項８までのいずれかに記載の暗号処理の装置。
【請求項１１】
2009288758.tif 000352
入力値であるベクトルＡ，Ｂに対して出力値がベクトルＣとすると、
ベクトルＡ，Ｂが共にｐ−１（ｐから一を減じた値）を法とするベクトルあるとき、
2009288758.tif 000353
ｐ−１を法とするＡ−１０１Ａ＝（ａｉ）ｉ＝１，２，．．．，ｎ
つまり任意の成分がａｉで表わされるｎ個の成分からなるベクトルＡ
およびＡ−１０１Ｂ＝（ｂｉ）ｉ＝１，２，．．．，ｎ
つまり任意の成分がｂｉで表わされるｎ個の成分からなるベクトルＢ
の各成分にｐを法として一を加えることで、ｐを法とするベクトルＡ−１０３
Ａ′＝（ａ′ｉ）ｉ＝１，２，．．．，ｎ
つまり任意の成分がａ′ｉで表わされるｎ個の成分からなるベクトルＡ′
およびＡ−１０３Ｂ′＝（ｂ′ｉ）ｉ＝１，２，．．．，ｎ
つまり任意の成分がｂ′ｉで表わされるｎ個の成分からなるベクトルＢ′
（但し、（ａ′ｉ，ｂ′ｉ）≠（０，０）、つまりベクトルＡ′およびＢ′の成分には０は含まれていない）を生成し、
ベクトルＡ−１０３Ａ′＝（ａ′ｉ）ｉ＝１，２，．．．，ｎ
つまり任意の成分がａ′ｉで表わされるｎ個の成分からなるベクトルＡ′
およびＡ−１０３Ｂ′＝（ｂ′ｉ）ｉ＝１，２，．．．，ｎ
つまり任意の成分がｂ′ｉで表わされるｎ個の成分からなるベクトルＢ′
のそれぞれの成分の内の同じ次元同士の値をｐを法として積で演算し、演算結果として出力されたベクトルＡ−１０３Ｃ′＝（ｃ′ｉ）ｉ＝１，２，．．．，ｎ
つまり任意の成分がｃ′ｉで表わされるｎ個の成分からなるベクトルＣ′
の各成分の値からｐを法として一を引いた値を生成することで実質的に法をｐ−１（ｐから一を減じた値）とし、
法をｐ−１（ｐから一を減じた値）とするベクトルＡ−１０２Ｃ＝（ｃｉ）ｉ＝１，２，．．．，ｎ
つまり任意の成分がｃｉで表わされるｎ個の成分からなるベクトルＣ
を得る
ようにしたことを特徴とする請求項２から請求項８、請求項１０のいずれかに記載の暗号処理の装置。
【請求項１２】
暗号化が計算量的完全秘匿性を持つための必要条件を満たすＡ−００
2009288758.tif 000354
一または複数のベクトルと、出力するベクトルの成分数｜Ａ｜を入力し、
入力されるベクトルが複数の場合はＡ−４０１連結装置でそれら複数のベクトルを連結して一つのベクトルとし（入力値が二つのベクトルａ、ｂであればそのａ、ｂを連結した一つのベクトル（ａ‖ｂ）を生成し）、
2009288758.tif 000355
−２０１データ長管理部で算定し、
その連結された一つのベクトル前記（ａ‖ｂ）をシードとしてＡ−００２擬似ランダ
2009288758.tif 000356
その行列Ａ′をＡ−６０１一方向置換器（イ）またはＡ−６０３折畳置換器からなるＡ−５０１置換器に入力して非線型な置換をして成分数｜Ａ｜を有するベクトルＡを得る
ようにしたことを特徴とする請求項２から請求項８までのいずれかに記載の暗号処理の装置。
【請求項１３】
暗号化が計算量的完全秘匿性を持つための必要条件を満たすＡ−００
2009288758.tif 000357
（一）一または複数のベクトルと、出力するベクトルの成分数｜Ａ｜を入力し、
（二）入力されるベクトルが複数の場合はＡ−４０１連結装置でそれら複数のベクトルを連結して一つのベクトルとし（入力値が二つのベクトルａ、ｂであればそのａ、ｂを連結した一つのベクトル（ａ‖ｂ）を生成し）、
（三）その複数のベクトルが連結された一つのベクトル（前記（ａ‖ｂ））をシード
2009288758.tif 000358
ット生成し、
（四）その擬似ランダムビットをＡ−６０１一方向置換器（イ）からなるＡ−５０１置換器で非線型な置換をして行列Ａ′を生成し、
2009288758.tif 000359
判定し、
2009288758.tif 000360
（ろ）｜Ａ｜＞｜Ａ′｜であればその行列Ａ′を再びＡ−００２擬似ランダムビット生
2009288758.tif 000361
ことによってベクトルＡを得る
ようにしたことを特徴とする請求項２から請求項８までのいずれかに記載の暗号処理の装置。
【請求項１４】
暗号化が完全秘匿性を持つための必要条件を満たすＡ−００２擬似ラ
2009288758.tif 000362
一または複数のベクトルと、出力するベクトルの成分数｜Ａ｜を入力し、
入力されるベクトルが複数の場合はＡ−４０１連結装置でそれら複数のベクトルを連結して一つのベクトルとし（入力値が二つのベクトルａ、ｂであればそのａ、ｂを連結した一つのベクトル（ａ‖ｂ）を生成し）、
2009288758.tif 000363
−２０１データ長管理部で算定し、
その連結された一つのベクトル前記（ａ‖ｂ）をシードとしてＡ−００２擬似ランダ
2009288758.tif 000364
その行列Ａ′をＡ−６０２一方向置換器（ロ）またはＡ−６０３折畳置換器またはＡ−６０４折畳＋抜取置換器からなるＡ−５０１置換器に入力して非線型な置換をして成分数｜Ａ｜を有するベクトルＡを得る
ようにしたことを特徴とする請求項２から請求項８までのいずれかに記載の暗号処理の装置。
【請求項１５】
暗号化が完全秘匿性を持つための必要条件を満たすＡ−００２擬似ラ
2009288758.tif 000365
（一）一または複数のベクトルと、出力するベクトルの成分数｜Ａ｜を入力し、
（二）入力されるベクトルが複数の場合はＡ−４０１連結装置でそれら複数のベクトルを連結して一つのベクトルとし（入力値が二つのベクトルａ、ｂであればそのａ、ｂを連結した一つのベクトル（ａ‖ｂ）を生成し）、
（三）その複数のベクトルが連結された一つのベクトル（前記（ａ‖ｂ））をシード
2009288758.tif 000366
ット生成し、
（四）その擬似ランダムビットをＡ−６０２一方向置換器（ロ）またはＡ−６０３折畳置換器またはＡ−６０４折畳＋抜取置換器からなるＡ−５０２置換器で非線型な置換して行列Ａ′を生成し、
2009288758.tif 000367
判定し、
2009288758.tif 000368
Ａとして出力し、
（ろ）｜Ａ｜＞｜Ａ′｜であればその行列Ａ′を再びＡ−００２擬似ランダムビット生
2009288758.tif 000369
ことによってベクトルＡを得る
ようにしたことを特徴とする請求項２から請求項８までのいずれかに記載の暗号処理の装置。
【請求項１６】
擬似ランダムビット生成器を用いる置換装置であって、
入力値が複数で且つ出力値の成分数が入力値の成分数を下回らない置換装置が
Ａ−００３擬似ランダムビット生成器型置換装置（イ）
であり、
入力値が複数で且つ出力値の成分数が入力値の成分数と等しい置換装置が、
Ａ−００４擬似ランダムビット生成器型置換装置（ロ）
であり、
入力値が一つで且つ出力値の成分数が入力値の成分数を下回らない置換装置は
Ａ−００５擬似ランダムビット生成器型置換装置（ハ）
である
ことを特徴とする請求項２から請求項８までのいずれかに記載の暗号処理の装置。
【請求項１７】
弱い非線型性を持つ線型の擬似ランダムビット生成器であるＡ−００
2009288758.tif 000370
抜き取りによって非線型化させる置換器は、
2009288758.tif 000371
る表（行列）をＡとするとき、
Ａ−３０２一方向化エクストラクタ単体から構成され、入力値Ａに対し、その成分数が入力値Ａの成分数｜Ａ｜を下回らず且つ非線型化され情報理論的に
2009288758.tif 000372
Ａ−６０１一方向置換器（イ）と、
Ａ−３０２一方向化エクストラクタとＡ−３０３ベーシックエクストラクタから構成され、Ａ−３０２一方向化エクストラクタ単体から構成され、入力値Ａに対し、Ａ−３０２一方向化エクストラクタがその成分数が入力値Ａの成分数｜Ａ｜を下回らず且つ非線型化され情報理論的に逆算不能な余因子行列
2009288758.tif 000373
をベクトルＡとして出力する
Ａ−６０２一方向置換器（ロ）である
ようにしたことを特徴とする請求項２から請求項８までのいずれかに記載の暗号処理の装置。
【請求項１８】
弱い非線型性を持つ線型の擬似ランダムビット生成器であるＡ−００
2009288758.tif 000374
みによって非線型化させる置換器は、
2009288758.tif 000375
の擬似ランダムビットＡ′を生成し、それをＡ−３０１セパレータでｎ個に分割し、
2009288758.tif 000376
または、
2009288758.tif 000377
擬似ランダムビットＡ′を生成し、それをＡ−３０１セパレータで二つ以上に分割
2009288758.tif 000378
とによって生成した値またはベクトルから、更に成分数を前記Ａ−００２擬似ラ
2009288758.tif 000379
クストラクタで任意の成分を抜き取り成分数を調整する
ようにしたことを特徴とする請求項２から請求項８までのいずれかに記載の暗号処理の装置。
【請求項１９】
Ａ−３０１セパレータとＡ−００１ａベクトル和型置換装置によって構成される置換器は、
2009288758.tif 000380
る表（行列）をＡとし、その行列Ａから生成されたベクトルをＡ′とするとき、
Ａ−３０１セパレータとＡ−００１ａベクトル和型置換装置によって構成され、Ａ′が入力されるとＡ−３０１セパレータはＡ′を等分な二つのベクトルに
2009288758.tif 000381
のベクトルをベクトル和または内積することによって置換してベクトルＡを生成し出力する
Ａ−６０３置換器と、
Ａ−３０１セパレータとＡ−００１ａベクトル和型置換装置とＡ−３０３ベーシックエクストラクタによって構成され、Ａ′が入力されるとＡ−３０１セ
2009288758.tif 000382
することによって置換してベクトルＡ″を生成し、Ａ−３０３ベーシックエクストラクタがそのＡ″から任意の成分を｜Ａ″｜−｜Ａ′｜つまりベクトルＡ″の成分数｜Ａ″｜からＡ′の成分数｜Ａ′｜を引いた成分数だけ抜き取ることによって成分数｜Ａ′｜のベクトルＡ（３）を生成し、そのＡ（３）をベクトルＡとして出力する
Ａ−６０４折畳＋抜取置換器である
ようにしたことを特徴とする請求項２から請求項８までのいずれかに記載の暗号処理の装置。
【請求項２０】
Ａ−３０２一方向化エクストラクタは、
2009288758.tif 000383
のｉｊ成分であるａｉｊの演算対象となる成分が、
第ｉ−１行目の成分であるａｉ−１，ｊから列方向に第ｉ−ψ行目の成分であるａｉ−ψ，ｊまでのψ個と、
第ｊ−１列目の成分であるａｉ，ｊ−１から行方向に第ｊ−ξ列目の成分であるａｉ，ｊ−ξまでのξ個
とすれば、
2009288758.tif 000384
その第一行と第二行および第２＋ψｍ行（但しｍ＝１，２，．．．）
及び第一列と第二列および第２＋ξｎ列（但し、ｎ＝１，２，．．．）
を除いた前記行列の余因子行列を生成し、その余因子行列の各列ベクトルまたは行ベクトルを並べて一つのベクトルとして生成し出力する
ようにしたことを特徴とする請求項１７に記載の暗号処理の装置。
【請求項２１】
暗号処理の方法に関する系の全体は、
変数ＶｉとＭ−１０００暗号化モデュールと
平文Ｍｉと
暗号文Ｅｉと
Ｍ−２０００公開変数添付モデュールと
送信文Ｔｉと
から構成され、
Ｍ−１０００暗号化モデュールは、
Ｍ−１１００暗号鍵生成モデュールと
暗号鍵Ｋｉと
Ｍ−１２００暗号文生成モデュールと
から構成され、
Ｍ−１１００暗号鍵生成モデュールは
Ｍ−１１１０秘匿変数生成モデュールと
2009288758.tif 000385
Ｍ−１１２０不可視化処理モデュールと
から構成され、
2009288758.tif 000386
成し、その暗号鍵ＫｉをＭ−１２００暗号文生成モデュールに入力して暗号文Ｅｉを生成し、その暗号文ＥｉをＭ−２０００公開変数添付モデュールに入力して送信文Ｔｉを得るようにし、
Ｍ−１１１０秘匿変数生成モデュールにおいて秘匿変数を推測不能とし、
且つ
Ｍ−１１１０秘匿変数生成モデュールを非線型化をすることによってＭ−１１１０秘匿変数生成モデュールに含まれる秘密鍵を秘匿するか
若しくは
Ｍ−１１２０不可視化処理モデュールを非線型処理とすることによって秘匿変数
2009288758.tif 000387
そのことによって、暗号化を完全秘匿とすると同時に、変数Ｖｉと暗号文Ｅｉとその平文Ｍｉを攻撃者が入手したとしても秘密鍵について完全秘匿性または計算量的完全秘匿性を持つようにしたことを特徴とする暗号処理の方法。
【請求項２２】
暗号処理の方法ための置換方法は、
置換装置（ｃ）は、二つの入力値を持つ擬似ランダムビット生成過程において折畳または抜取または内積を含む演算を行うことによって生成を非線型化するＡ−００４擬似ランダムビット生成器型置換装置（ロ）と、入力値である変数Ｖと、秘密鍵Ｓと、出力値Ｃとから構成され、変数Ｖと秘密鍵ＳとをＡ−００４擬似ランダムビット生成器型置換装置（ロ）に入力することに因って非線型化した演算を行って出力値Ｃを得るようにした暗号処理の方法のための置換処理の装置および／または方法であるか、または、
置換装置（ｄ）は、二つの入力値を素数ｐを法とする内積によって置換するＡ−
2009288758.tif 000388
変数Ｖと、ｐ−１（前記素数ｐから一を減じた値）を法とする秘密鍵Ｓと、ｐ−１（前記素数ｐから一を減じた値）を法とする出力値Ｃとから構成され、変数Ｖと
2009288758.tif 000389
内積して法ｐの出力値Ｃを得、その出力値Ｃを法ｐで各成分から一を減じることで法をｐ−１（前記素数ｐから一を減じた値）とする処理を行い、法をｐ−１（前記素数ｐから一を減じた値）とする出力値Ｃを得るようにした暗号処理の方法のための置換処理の装置および／または方法であるか、または、
置換装置（ｅ）は、二つの入力値を自然数Ｎを法とするベクトル和によって置換
2009288758.tif 000390
鍵Ｓをベクトル和して出力値Ｃを得るようにした暗号処理の方法のための置換処理の装置および／または方法であるか、または、
置換装置（ｆ）は、二つの入力値を自然数Ｎを法とするベクトル和によって置換
2009288758.tif 000391
値Ｃ′と、一つの入力値を持つ擬似ランダムビット生成過程において折畳または抜取または内積を含む演算を行うことによって生成を非線型化するＡ−００５擬似ランダムビット生成器型置換装置（ハ）と、出力値Ｃとから構成され、ＶＡとＶＢと
2009288758.tif 000392
そのＣ′をＡ−００５擬似ランダムビット生成器型置換装置（ハ）に入力して置換することによって出力値Ｃを得るようにした暗号処理の方法のための置換処理の装置および／または方法であるか、または、
置換装置（ｇ）は、二つの入力値を素数ｐを法とする内積によって置換するＡ−
2009288758.tif 000393
変数Ｖと、ｐ−１（前記素数ｐから一を減じた値）を法とする秘密鍵Ｓと、置換された値Ｃ′と、一つの入力値を持つ擬似ランダムビット生成過程において折畳または抜取または内積を含む演算を行うことによって生成を非線型化するＡ−００５擬似ランダムビット生成器型置換装置（ハ）と、出力値Ｃとから構成され、Ｖと
2009288758.tif 000394
そのＣ′をＡ−００５擬似ランダムビット生成器型置換装置（ハ）に入力して置換することによって出力値Ｃを得るようにした暗号処理の方法のための置換処理の装置および／または方法である
ことを特徴とする請求項２１に記載の暗号処理の方法。
【請求項２３】
暗号文および秘密鍵について完全秘匿である暗号処理の方法は、
使い捨て公開変数ｒｉと、Ｍ−１１１０秘匿変数生成モデュールと、秘匿変数Ｋ′ｉと、Ｍ−１１２０不可視化処理モデュールと、暗号鍵Ｋｉと、平文Ｍｉと、Ａ−９０３置換装置Γと、暗号文Ｅｉとから構成され、
Ｍ−１１１０秘匿変数生成モデュールは、秘密鍵Ｓ１と、Ａ−９０１置換装置Ａとから構成され、
Ｍ−１１２０不可視化処理モデュールは、秘密鍵Ｓ２と、Ａ−９０２置換装置Ｂと、から構成され、
使い捨て公開変数ｒｉからＡ−００２擬似ランダムビット生成器によって変数Ｖｉを生成し、その変数Ｖｉと秘密鍵Ｓ１とをＡ−９０１置換装置Ａに入力して置換することによって秘匿変数Ｋ′ｉを生成し、その秘匿変数Ｋ′ｉと秘密鍵Ｓ２とをＡ−９０２置換装置Ｂに入力することによって暗号鍵Ｋｉを生成し、その暗号鍵Ｋｉと平文ＭｉをＡ−９０３置換装置Γに入力することに因って暗号文Ｅｉを生成するよう処理され、
Ａ−９０１置換装置Ａを、置換装置（ｃ）、置換装置（ｄ）、置換装置（ｅ）、置換装置（ｆ）、置換装置（ｇ）のいずれかから構成したことに因って変数Ｖｉからは秘匿変数Ｋ′ｉを推測不能とし、
Ａ−９０２置換装置Ｂを、置換装置（ｄ）または置換装置（ｇ）から構成するようにしたことに因って暗号鍵Ｋｉからは秘匿変数Ｋ′ｉも秘密鍵Ｓ２も情報理論的に逆算不能とし、
Ａ−９０１置換装置ＡとＡ−９０２置換装置Ｂを用いるようにしたことに因って秘密鍵Ｓ１と秘密鍵Ｓ２とを完全秘匿化し、
Ａ−９０３置換装置Γを、置換装置（ｄ）または置換装置（ｅ）から構成するようにしたことに因って暗号文Ｅｉを完全秘匿化するようにした
ことを特徴とする請求項２１または請求項２２に記載の暗号処理の方法。
【請求項２４】
暗号文および秘密鍵について完全秘匿である暗号処理の方法は、
使い捨て公開変数ｒｉと、Ａ−３０１セパレータと、変数Ｖｉ１と、変数Ｖｉ２と、Ｍ−１１１０秘匿変数生成モデュールと、秘匿変数Ｋ′ｉ１と、秘匿変数Ｋ′ｉ２と、Ｍ−１１２０不可視化処理モデュールと、暗号鍵Ｋｉと、平文Ｍｉと、Ａ−９０３置換装置Γと、暗号文Ｅｉとから構成され、
Ｍ−１１１０秘匿変数生成モデュールは、秘密鍵Ｓ１と、秘密鍵Ｓ２と、Ａ−９０１置換装置Ａ１と、Ａ−９０１置換装置Ａ２とから構成され、
Ｍ−１１２０不可視化処理モデュールは、Ａ−９０２置換装置Ｂから構成され、
使い捨て公開変数ｒｉからＡ−００２擬似ランダムビット生成器によって変数Ｖｉを生成し、その変数ＶｉをＡ−３０１セパレータで分割して変数Ｖｉ１と変数Ｖｉ２とを生成し、その変数Ｖｉ１と秘密鍵Ｓ１とをＡ−９０１置換装置Ａ１に入力して置換することによって秘匿変数Ｋ′ｉ１を生成し、同時に変数Ｖｉ２と秘密鍵Ｓ２とをＡ−９０１置換装置Ａ２に入力して置換することによって秘匿変数Ｋ′ｉ２を生成し、その秘匿変数Ｋ′ｉ１と秘匿変数Ｋ′ｉ２とをＡ−９０２置換装置Ｂに入力することによって置換して暗号鍵Ｋｉを生成し、その暗号鍵Ｋｉと平文ＭｉとをＡ−９０３置換装置Γに入力することによって置換して暗号文Ｅｉを生成するよう処理され、
Ａ−９０１置換装置Ａ１およびＡ−９０１置換装置Ａ２を、置換装置（ｃ）、置換装置（ｄ）、置換装置（ｅ）、置換装置（ｆ）、置換装置（ｇ）のいずれかから構成したことに因って変数Ｖｉからは秘匿変数Ｋ′ｉを推測不能とし、
Ａ−９０２置換装置Ｂを、置換装置（ｄ）、置換装置（ｅ）、置換装置（ｆ）、置換装置（ｇ）のいずれかから構成するようにしたことに因って暗号鍵Ｋｉからは秘匿変数Ｋ′ｉも秘密鍵Ｓ２も情報理論的に逆算不能とし、
Ａ−９０１置換装置Ａ１およびＡ−９０１置換装置Ａ２とＡ−９０２置換装置Ｂを用いるようにしたことに因って、
但し、Ａ−９０１置換装置Ａ１およびＡ−９０１置換装置Ａ２が置換装置（ｅ）であればＡ−９０２置換装置Ｂは置換装置（ｃ）、置換装置（ｄ）、置換装置（ｆ）、置換装置（ｇ）のいずれかとし、Ａ−９０２置換装置Ｂが置換装置（ｅ）であればＡ−９０１置換装置Ａ１およびＡ−９０１置換装置Ａ２は置換装置（ｃ）、置換装置（ｄ）、置換装置（ｆ）、置換装置（ｇ）のいずれかとすることに因って、
秘密鍵Ｓ１と秘密鍵Ｓ２とを完全秘匿化し、
Ａ−９０３置換装置Γを、置換装置（ｄ）または（ｅ）から構成するようにしたことに因って暗号文Ｅｉを完全秘匿化するようにした
ことを特徴とする請求項２１または請求項２２に記載の暗号処理の方法。
【請求項２５】
暗号文について完全秘匿性を持たせると同時に、秘密鍵について暗号文と平文が漏洩することによって暗号鍵の情報が漏洩したとしても計算量的完全秘匿性を持たせる暗号処理の方法は、
2009288758.tif 000395
Ｍ−１１１０秘匿変数生成モデュールと、秘匿変数Ｋ′ｉと、Ｍ−１１２０不可視化処理モデュールと、暗号鍵Ｋｉと、平文Ｍｉと、Ａ−９０３置換装置Γと、暗号文Ｅｉとから構成され、
Ｍ−１１１０秘匿変数生成モデュールは、秘密鍵Ｓ１と、Ａ−９０１置換装置Ａとから構成され、
Ｍ−１１２０不可視化処理モデュールは、秘密鍵Ｓ２と、Ａ−９０２置換装置Ｂと、から構成され、
2009288758.tif 000396
を生成し、その変数Ｖｉと秘密鍵Ｓ１とをＡ−９０１置換装置Ａに入力して置換することによって秘匿変数Ｋ′ｉを生成し、その秘匿変数Ｋ′ｉと秘密鍵Ｓ２とをＡ−９０２置換装置Ｂに入力することによって暗号鍵Ｋｉを生成し、その暗号鍵Ｋｉと平文ＭｉをＡ−９０３置換装置Γに入力することに因って暗号文Ｅｉを生成するよう処理され、
Ａ−９０１置換装置Ａを、置換装置（ｃ）、置換装置（ｄ）、置換装置（ｅ）、置換装置（ｆ）、置換装置（ｇ）のいずれかから構成したことに因って変数Ｖｉからは秘匿変数Ｋ′ｉを推測不能とし、
Ａ−９０２置換装置Ｂを、置換装置（ｃ）または置換装置（ｆ）から構成するようにしたことに因って暗号鍵Ｋｉからは秘匿変数Ｋ′ｉも秘密鍵Ｓ２も計算量的に逆算不能とし、
Ａ−９０１置換装置ＡとＡ−９０２置換装置Ｂを用いるようにしたことに因って秘密鍵Ｓ１と秘密鍵Ｓ２とを計算量的完全秘匿化し、
Ａ−９０３置換装置Γを、置換装置（ｄ）または置換装置（ｅ）から構成するようにしたことに因って暗号文Ｅｉを完全秘匿化するようにした
ことを特徴とする請求項２１または請求項２２に記載の暗号処理の方法。
【請求項２６】
暗号文について完全秘匿性を持たせると同時に、秘密鍵について暗号文と平文が漏洩することによって暗号鍵の情報が漏洩したとしても計算量的完全秘匿性を持たせる暗号処理の方法は、
2009288758.tif 000397
Ａ−３０１セパレータと、変数Ｖｉ１と、変数Ｖｉ２と、Ｍ−１１１０秘匿変数生成モデュールと、秘匿変数Ｋ′ｉ１と、秘匿変数Ｋ′ｉ２と、Ｍ−１１２０不可視化処理モデュールと、暗号鍵Ｋｉと、平文Ｍｉと、Ａ−９０３置換装置Γと、暗号文Ｅｉとから構成され、
Ｍ−１１１０秘匿変数生成モデュールは、秘密鍵Ｓ１と、秘密鍵Ｓ２と、Ａ−９０１置換装置Ａ１と、Ａ−９０１置換装置Ａ２とから構成され、
Ｍ−１１２０不可視化処理モデュールは、Ａ−９０２置換装置Ｂから構成され、
2009288758.tif 000398
を生成し、その変数ＶｉをＡ−３０１セパレータで分割して変数Ｖｉ１と変数Ｖｉ２とを生成し、その変数Ｖｉ１と秘密鍵Ｓ１とをＡ−９０１置換装置Ａ１に入力して置換することによって秘匿変数Ｋ′ｉ１を生成し、同時に変数Ｖｉ２と秘密鍵Ｓ２とをＡ−９０１置換装置Ａ２に入力して置換することによって秘匿変数Ｋ′ｉ２を生成し、その秘匿変数Ｋ′ｉ１と秘匿変数Ｋ′ｉ２とをＡ−９０２置換装置Ｂに入力することによって置換して暗号鍵Ｋｉを生成し、その暗号鍵Ｋｉと平文ＭｉとをＡ−９０３置換装置Γに入力することによって置換して暗号文Ｅｉを生成するよう処理され、
Ａ−９０１置換装置Ａ１およびＡ−９０１置換装置Ａ２を、置換装置（ｃ）、置換装置（ｄ）、置換装置（ｅ）、置換装置（ｆ）、置換装置（ｇ）のいずれかから構成したことに因って変数Ｖｉからは秘匿変数Ｋ′ｉを推測不能とし、
Ａ−９０２置換装置Ｂを、置換装置（ｃ）から構成するようにしたことに因って暗号鍵Ｋｉからは秘匿変数Ｋ′ｉも秘密鍵Ｓ２も計算量的に逆算不能とし、
Ａ−９０１置換装置Ａ１およびＡ−９０１置換装置Ａ２とＡ−９０２置換装置Ｂを用いるようにしたことに因って、
秘密鍵Ｓ１と秘密鍵Ｓ２とを計算量的完全秘匿化し、
Ａ−９０３置換装置Γを、置換装置（ｄ）または置換装置（ｅ）から構成するようにしたことに因って暗号文Ｅｉを完全秘匿化するようにした
ことを特徴とする請求項２１または請求項２２に記載の暗号処理の方法。
【請求項２７】
暗号文について完全秘匿性を持たせると同時に、秘密鍵について暗号文と平文が漏洩することによって暗号鍵の情報が漏洩したとしても計算量的完全秘匿性を持たせる暗号処理の方法は、
使い捨て公開変数ｒｉと、Ｍ−１１１０秘匿変数生成モデュールと、変数Ｒｉと、Ａ
2009288758.tif 000399
化処理モデュールと、暗号鍵Ｋｉ、平文Ｍｉと、Ａ−９０３置換装置Γと、暗号文Ｅｉとから構成され、
Ｍ−１１１０秘匿変数生成モデュールは、秘密鍵Ｓ１と、Ａ−９０１置換装置Ａとから構成され、
Ｍ−１１２０不可視化処理モデュールは、秘密鍵Ｓ２と、Ａ−９０２置換装置Ｂとから構成され、
使い捨て公開変数ｒｉと秘密鍵Ｓ１とをＡ−９０１置換装置Ａに入力して置換することによって変数Ｒｉを生成し、その変数ＲｉからＡ−００２擬似ランダムビット生成
2009288758.tif 000400
２置換装置Ｂに入力することによって暗号鍵Ｋｉを生成し、その暗号鍵Ｋｉと平文ＭｉをＡ−９０３置換装置Γに入力することに因って暗号文Ｅｉを生成するよう処理され、
Ａ−９０１置換装置Ａを、置換装置（ｃ）、置換装置（ｄ）、置換装置（ｅ）、置換装置（ｆ）、置換装置（ｇ）のいずれかから構成したことに因って使い捨て公開変数ｒｉからは秘匿変数Ｋ′ｉを推測不能とし、
Ａ−９０２置換装置Ｂを、置換装置（ｃ）、置換装置（ｄ）、置換装置（ｆ）、置換装置（ｇ）のいずれかから構成するようにしたことに因って暗号鍵Ｋｉからは秘匿変数Ｋ′ｉも秘密鍵Ｓ２も計算量的に逆算不能とし、
Ａ−９０１置換装置ＡとＡ−９０２置換装置Ｂを用いるようにしたことに因って秘密鍵Ｓ１と秘密鍵Ｓ２とを計算量的完全秘匿化し、
Ａ−９０３置換装置Γを、置換装置（ｄ）または置換装置（ｅ）から構成するようにしたことに因って暗号文Ｅｉを完全秘匿化するようにした
ことを特徴とする請求項２１または請求項２２に記載の暗号処理の方法。
【請求項２８】
暗号文について完全秘匿性を持たせると同時に、秘密鍵について暗号文と平文が漏洩することによって暗号鍵の情報が漏洩したとしても計算量的完全秘匿性を持たせる暗号処理の方法は、
2009288758.tif 000401
Ａ−３０１セパレータと、変数Ｖｉ１と、変数Ｖｉ２と、Ｍ−１１１０秘匿変数生成モデュールと、変数Ｒｉと、秘匿変数Ｋ′ｉ１と、秘匿変数Ｋ′ｉ２と、Ｍ−１１２０不可視化処理モデュールと、暗号鍵Ｋｉと、平文Ｍｉと、Ａ−９０３置換装置Γと、暗号文Ｅｉとから構成され、
Ｍ−１１１０秘匿変数生成モデュールは、秘密鍵Ｓ１と、秘密鍵Ｓ２と、Ａ−９０１置換装置Ａ１と、Ａ−９０１置換装置Ａ２とから構成され、
Ｍ−１１２０不可視化処理モデュールは、Ａ−９０２置換装置Ｂとから構成され、
使い捨て公開変数ｒｉからＡ−００２擬似ランダムビット生成器によって変数Ｖｉを生成し、その変数ＶｉをＡ−３０１セパレータで分割して変数Ｖｉ１と変数Ｖｉ２とを生成し、その変数Ｖｉ１と秘密鍵Ｓ１とをＡ−９０１置換装置Ａ１に入力して置換することによって秘匿変数Ｋ′ｉ１を生成し、同時に変数Ｖｉ２と秘密鍵Ｓ２とをＡ−９０１置換装置Ａ２に入力して置換することによって変数Ｒｉを生成し、その変数ＲｉからＡ−００２擬似ランダムビット生成器によって秘匿変数Ｋ′ｉ２を生成し、その秘匿変数Ｋ′ｉ１と秘匿変数Ｋ′ｉ２とをＡ−９０２置換装置Ｂに入力することによって置換して暗号鍵Ｋｉを生成し、その暗号鍵Ｋｉと平文ＭｉとをＡ−９０３置換装置Γに入力することによって置換して暗号文Ｅｉを生成するよう処理され、
Ａ−９０１置換装置Ａ１およびＡ−９０１置換装置Ａ２を、置換装置（ｃ）、置換装置（ｄ）、置換装置（ｅ）、置換装置（ｆ）、置換装置（ｇ）のいずれかから構成したことに因って変数Ｖｉからは秘匿変数Ｋ′ｉを推測不能とし、
Ａ−９０２置換装置Ｂを、置換装置（ｃ）から構成するようにしたことに因って暗号鍵Ｋｉからは秘匿変数Ｋ′ｉも秘密鍵Ｓ２も計算量的に逆算不能とし、
Ａ−９０１置換装置Ａ１およびＡ−９０１置換装置Ａ２とＡ−９０２置換装置Ｂを用いるようにしたことに因って、
秘密鍵Ｓ１と秘密鍵Ｓ２を不確定性がＨ（Ｓ１）＋Ｈ（Ｓ２）で計算量的完全秘匿化し、
但し、このとき
2009288758.tif 000402
つまり、秘密鍵Ｓ１の不確定性Ｈ（Ｓ１）は変数Ｖｉ１の不確定性Ｈ（Ｖｉ１）を下回らず、かつ秘匿変数Ｋ′ｉ１の不確定性Ｈ（Ｋ′ｉ１）および暗号鍵Ｋｉの不確定性Ｈ（Ｋｉ）と等しく、
且つ、秘密鍵Ｓ２の不確定性Ｈ（Ｓ２）は変数Ｖｉ２の不確定性Ｈ（Ｖｉ２）を下回らず、かつ変数Ｒｉの不確定性Ｈ（Ｒｉ）および秘匿変数Ｋ′ｉ２の不確定性Ｈ（Ｋ′ｉ２）と等しく、かつ暗号鍵Ｋｉの不確定性Ｈ（Ｋｉ）を下回り、
且つ、暗号鍵Ｋｉの不確定性Ｈ（Ｋｉ）は平文Ｍｉの不確定性Ｈ（Ｍｉ）を下回らないものとし、
Ａ−９０３置換装置Γを、置換装置（ｄ）または置換装置（ｅ）から構成するようにしたことに因って暗号文Ｅｉを完全秘匿化するようにした
ことを特徴とする請求項２１または請求項２２に記載の暗号処理の方法。
【請求項２９】
2009288758.tif 000403
シードであるベクトルａと生成するべき成分数｜Ａ｜を入力値として受け取り、生成に伴って伸長されるベクトルの成分数を監視し、成分数の過不足を判定して不足であれば入力または生成されたベクトルをＡ−３０１セパレータに送るようＡ−２０３ベクトル配列生成部に指示し、十分であればＡ−２０３ベクトル配列生成部に通知してＡ−２０３ベクトル配列生成部において生成されたベクトルをＡ−２０３ベクトル配列生成部から受け取って外部に戻す働きをする
Ａ−２０１データ長管理部と、
受け取ったベクトルを二つのベクトルに分割してＡ−２０２表演算部に送出する
Ａ−３０１セパレータと、
Ａ−３０１セパレータから受け取った二つのベクトルを２次元の表の第一列と第一行に配置し、生成値を含む行方向および列方向の複数の成分に和または積の演算を行うことによって演算表を生成する
Ａ−２０２表演算部と、
Ａ−２０２表演算部において生成された表の成分から列ベクトル毎にデータを抜き出し、新たなベクトルとして配列を生成し、データ長管理部からの指示に基づいて送出する
Ａ−２０３ベクトル配列生成部と
から構成され、
シードであるベクトルａと生成する擬似ランダムビットの成分数｜Ａ｜をＡ−２０１データ長管理部に入力すると、Ａ−２０１データ長管理部はベクトルａの成分数が｜Ａ｜を下回れば、つまり、｜ａ｜＜｜Ａ｜ならばベクトルａをＡ−３０１セパレータに送り、
Ａ−３０１セパレータはベクトルａをベクトルＶ１とＶ２に分割（但し｜ａ｜＝｜Ｖ１｜＋｜Ｖ２｜。
つまりＶ１の成分数とＶ２の成分数を足したものはａの成分数に等しい）してＡ−２０２表演算部に送り、
（１）Ａ−２０２表演算部はベクトルＶ１、Ｖ２をそれぞれ二次元の表の第一行と第一列に配置し、表の各成分に対して行方向の複数の成分と列方向の複数の成分を用い（但し、例えば第二行第二列成分ではＶ１の第一成分とＶ２の第二成分を用い、第二行第三列成分ではＶ１の第一成分と第二行第二列成分とＶ２の第二成分を用いるという風に、一つの成分しか用いることができない場合は一つの成分だけを用いる）自然数Ｎを法として和または素数ｐを法として積または積と和を行うことにより二次元の演算表を生成し、
例えば、全ての演算を和とするならば、行方向に演算される成分数をψ、列方向に演算される成分数をξとする時、任意の成分をａｉｊとすれば、
2009288758.tif 000404
つまり、ａｉｊで表わされる二次元の表の第ｉ行第ｊ列の成分は、自然数Ｎを法として、ａｉｊが属する列のａｉｊの一つ上の行つまり第ｉ−１（ｉから一を減じた値）行目から上に第ψ番目の行つまり第ｉ−ψ（ｉからψ（二を下回らない自然数）を減じた値）行目までの全ての成分を足し合わせた値と、ａｉｊが属する行のａｉｊの一つ左の列つまり第ｊ−１（ｊから一を減じた値）列目から左に第ξ番目の列つまり第ｊ−ξ（ｊからξ（二を下回らない自然数）を減じた値）列目までの全ての成分を足し合わせた値を足し合わせた値に合同
その生成結果から第一列成分と第一行成分を除いた成分（生成結果を行列に見立
2009288758.tif 000405
について列ベクトル毎にまたは行ベクトル毎に成分を取り出したベクトル
（Ｂｊ）ｊ＝１，２，．．．，ｎ−１（但し、Ｂｊ＝Ａｊ＋１）、
つまり、任意の成分がＢｊで表わされるｎ−１（ｎから一を減じた値）個の成分からなるベクトルであって、第ｊ番目の成分がベクトルＡの第ｊ＋１（ｊに一を加えた値）番目の成分と等しいベクトル
を生成してＡ−２０３ベクトル配列生成部に送り、
（２）Ａ−２０３ベクトル配列生成部は、その取り出された列ベクトル
（Ｂｊ）ｊ＝１，２，．．．，ｎ−１＝（Ｂ１，Ｂ２，．．．，Ｂｎ−１）
つまり、ベクトル（Ｂｊ）ｊ＝１，２，．．．，ｎ−１はベクトルＢ１からベクトルＢｎ−１までのｎ−１
（ｎから一を減じた値）個のベクトルを成分とするベクトル
の成分を展開してベクトル
Ｂ＝（ｂ１，ｂ２，．．．，ｂ（ｍ−１）（ｎ−１）−１，ｂ（ｍ−１）（ｎ−１））
つまり、ｂ１からｂ（ｍ−１）（ｎ−１）までの（ｍ−１）（ｎ−１）（ｍから一を減じた値とｎから一を減じた値を掛け合わせた値）個の成分からなるベクトルＢ
を生成し、
（３）Ａ−２０１データ長管理部はこの生成過程を常時チェックし、ベクトルＢの成分数｜Ｂ｜が｜Ａ｜を上回らないならばベクトルＢをＡ−３０１セパレータに送って、
（４）Ａ−３０１セパレータはベクトルＢをベクトルＶ１とＶ２に分割（但し｜Ｂ｜＝｜Ｖ１｜＋｜Ｖ２｜。つまりＶ１の成分数とＶ２の成分数を足したものはＢの成分数に等しい）してＡ−２０２表演算部に送り、
成分数｜Ｂ｜が｜Ａ｜を下回らなくなるまで上記（１）から（４）までの過程を繰り返し、成分数｜Ｂ｜が｜Ａ｜を下回らなくなったベクトルＢを出力値であるベクトルＡとして返すようにしたことを特徴とする請求項２２から２８までのいずれかに記載の暗号処理の方法。
【請求項３０】
2009288758.tif 000406
複数の入力値であるベクトルＡ，Ｂに対して出力値がベクトルＣとするとき、
Ａ，Ｂを、
二を下回らない自然数Ｎを法として
ベクトル和
するか、
または三を下回らない素数ｐを法として
内積するか
またはベクトル和および内積して
ベクトルＣとして出力することによって、
即ち、入力された二つのベクトルである
Ａ−１０１Ａ＝（ａｉ）ｉ＝１，２，．．．，ｎ、つまり任意の成分がａｉで表わされるｎ個の成分からなるベクトルＡ
およびＡ−１０１Ｂ＝（ｂｉ）ｉ＝１，２，．．．，ｎ、つまり任意の成分がｂｉで表わされるｎ個の成分からなるベクトルＢ
に対し、
それぞれの成分の内の同じ次元同士の値を
2009288758.tif 000407
は積と和の演算を行い、
各成分を次元の順に並べてベクトルＡ−１０２Ｃ＝（ｃｉ）ｉ＝１，２，．．．，ｎつまり任意の成分がｃｉで表わされるｎ個の成分からなるベクトルＣの出力を得、
そのことによって、ベクトルＡの不確定性Ｈ（Ａ）とベクトルＢの不確定性Ｈ（Ｂ）が異
2009288758.tif 000408
Ｈ（Ｃ）つまりＨ（Ｂ）はＨ（Ｃ）と等しく、且つ、Ｈ（Ｂ）とＨ（Ｃ）はＨ（Ａ）を下回らず、即ちベクトルＣの不確定性Ｈ（Ｃ）がベクトルＢの不確定性Ｈ（Ｂ）と等しくなる
ように置換する
ようにしたことを特徴とする請求項２２から請求項２８までのいずれかに記載の暗号処理の方法。
【請求項３１】
2009288758.tif 000409
入力値であるベクトルＡ，Ｂに対して出力値がベクトルＣとすると、
ベクトルＡ，Ｂが共にｐ−１（ｐから一を減じた値）を法とするベクトルあるとき、
2009288758.tif 000410
ｐ−１を法とするＡ−１０１Ａ＝（ａｉ）ｉ＝１，２，．．．，ｎ
つまり任意の成分がａｉで表わされるｎ個の成分からなるベクトルＡ
およびＡ−１０１Ｂ＝（ｂｉ）ｉ＝１，２，．．．，ｎ
つまり任意の成分がｂｉで表わされるｎ個の成分からなるベクトルＢ
の各成分にｐを法として一を加えることで、ｐを法とするベクトルＡ−１０３Ａ′＝（ａ′ｉ）ｉ＝１，２，．．．，ｎ
つまり任意の成分がａ′ｉで表わされるｎ個の成分からなるベクトルＡ′
およびＡ−１０３Ｂ′＝（ｂ′ｉ）ｉ＝１，２，．．．，ｎ
つまり任意の成分がｂ′ｉで表わされるｎ個の成分からなるベクトルＢ′
（但し、（ａ′ｉ，ｂ′ｉ）≠（０，０）、つまりベクトルＡ′およびＢ′の成分には０は含まれていない）を生成し、
ベクトルＡ−１０３Ａ′＝（ａ′ｉ）ｉ＝１，２，．．．，ｎ
つまり任意の成分がα′ｉで表わされるｎ個の成分からなるベクトルＡ′
およびＡ−１０３Ｂ′＝（ｂ′ｉ）ｉ＝１，２，．．．，ｎ
つまり任意の成分がｂ′ｉで表わされるｎ個の成分からなるベクトルＢ′
のそれぞれの成分の内の同じ次元同士の値をｐを法として積で演算し、演算結果として出力されたベクトルＡ−１０３Ｃ′＝（ｃ′ｉ）ｉ＝１，２，．．．，ｎ
つまり任意の成分がｃ′ｉで表わされるｎ個の成分からなるベクトルＣ′
の各成分の値からｐを法として一を引いた値を生成することで実質的に法をｐ−１（ｐから一を減じた値）とし、
法をｐ−１（ｐから一を減じた値）とするベクトルＡ−１０２Ｃ＝（ｃｉ）ｉ＝１，２，．．．，ｎ
つまり任意の成分がｃｉで表わされるｎ個の成分からなるベクトルＣ
を得る
ようにしたことを特徴とする請求項２２から請求項２８、請求項３０のいずれかに記載の暗号処理の方法。
【請求項３２】
暗号化が計算量的完全秘匿性を持つための必要条件を満たすＡ−００
2009288758.tif 000411
一または複数のベクトルと、出力するベクトルの成分数｜Ａ｜を入力し、
入力されるベクトルが複数の場合はＡ−４０１連結装置でそれら複数のベクトルを連結して一つのベクトルとし（入力値が二つのベクトルａ、ｂであればそのａ、ｂを連結した一つのベクトル（ａ‖ｂ）を生成し）、
2009288758.tif 000412
−２０１データ長管理部で算定し、
その連結された一つのベクトル前記（ａ‖ｂ）をシードとしてＡ−００２擬似ランダ
2009288758.tif 000413
その行列Ａ′をＡ−６０１一方向置換器（イ）またはＡ−６０３折畳置換器からなるＡ−５０１置換器に入力して非線型な置換をして成分数｜Ａ｜を有するベクトルＡを得る
ようにしたことを特徴とする請求項２２から請求項２８までのいずれかに記載の暗号処理の方法。
【請求項３３】
暗号化が計算量的完全秘匿性を持つための必要条件を満たすＡ−００
2009288758.tif 000414
（一）一または複数のベクトルと、出力するベクトルの成分数｜Ａ｜を入力し、
（二）入力されるベクトルが複数の場合はＡ−４０１連結装置でそれら複数のベクトルを連結して一つのベクトルとし（入力値が二つのベクトルａ、ｂであればそのａ、ｂを連結した一つのベクトル（ａ‖ｂ）を生成し）、
（三）その複数のベクトルが連結された一つのベクトル（前記（ａ‖ｂ））をシード
2009288758.tif 000415
ット生成し、
（四）その擬似ランダムビットをＡ−６０１一方向置換器（イ）からなるＡ−５０１置換器で非線型な置換をして行列Ａ′を生成し、
2009288758.tif 000416
判定し、
2009288758.tif 000417
（ろ）｜Ａ｜＞｜Ａ′｜であればその行列Ａ′を再びＡ−００２擬似ランダムビット生
2009288758.tif 000418
ことによってベクトルＡを得る
ようにしたことを特徴とする請求項２２から請求項２８までのいずれかに記載の暗号処理の方法。
【請求項３４】
暗号化が完全秘匿性を持つための必要条件を満たすＡ−００２擬似ラ
2009288758.tif 000419
一または複数のベクトルと、出力するベクトルの成分数｜Ａ｜を入力し、
入力されるベクトルが複数の場合はＡ−４０１連結装置でそれら複数のベクトルを連結して一つのベクトルとし（入力値が二つのベクトルａ、ｂであればそのａ、ｂを連結した一つのベクトル（ａ‖ｂ）を生成し）、
2009288758.tif 000420
−２０１データ長管理部で算定し、
その連結された一つのベクトル前記（ａ‖ｂ）をシードとしてＡ−００２擬似ランダ
2009288758.tif 000421
その行列Ａ′をＡ−６０２一方向置換器（ロ）またはＡ−６０３折畳置換器またはＡ−６０４折畳＋抜取置換器からなるＡ−５０１置換器に入力して非線型な置換をして成分数｜Ａ｜  を有するベクトルＡを得る
ようにしたことを特徴とする請求項２２から請求項２８までのいずれかに記載の暗号処理の方法。
【請求項３５】
暗号化が完全秘匿性を持つための必要条件を満たすＡ−００２擬似ラ
2009288758.tif 000422
（一）一または複数のベクトルと、出力するベクトルの成分数｜Ａ｜を入力し、
（二）入力されるベクトルが複数の場合はＡ−４０１連結装置でそれら複数のベクトルを連結して一つのベクトルとし（入力値が二つのベクトルａ、ｂであればそのａ、ｂを連結した一つのベクトル（ａ‖ｂ）を生成し）、
（三）その複数のベクトルが連結された一つのベクトル（前記（ａ‖ｂ））をシード
2009288758.tif 000423
ット生成し、
（四）その擬似ランダムビットをＡ−６０２一方向置換器（ロ）またはＡ−６０３折畳置換器またはＡ−６０４折畳＋抜取置換器からなるＡ−５０２置換器で非線型な置換して行列Ａ′を生成し、
2009288758.tif 000424
判定し、
2009288758.tif 000425
Ａとして出力し、
（ろ）｜Ａ｜＞｜Ａ′｜であればその行列Ａ′を再びＡ−００２擬似ランダムビット生
2009288758.tif 000426
ことによってベクトルＡを得る
ようにしたことを特徴とする請求項２２から請求項２８までのいずれかに記載の暗号処理の方法。
【請求項３６】
擬似ランダムビット生成器を用いる置換装置であって、
入力値が複数で且つ出力値の成分数が入力値の成分数を下回らない置換装置が
Ａ−００３擬似ランダムビット生成器型置換装置（イ）
であり、
入力値が複数で且つ出力値の成分数が入力値の成分数と等しい置換装置が、
Ａ−００４擬似ランダムビット生成器型置換装置（ロ）
であり、
入力値が一つで且つ出力値の成分数が入力値の成分数を下回らない置換装置は
Ａ−００５擬似ランダムビット生成器型置換装置（ハ）
である
ことを特徴とする請求項２２から請求項２８までのいずれかに記載の暗号処理の方法。
【請求項３７】
弱い非線型性を持つ線型の擬似ランダムビット生成器であるＡ−００
2009288758.tif 000427
抜き取りによって非線型化させる置換器は、
2009288758.tif 000428
る表（行列）をＡとするとき、
Ａ−３０２一方向化エクストラクタ単体から構成され、入力値Ａに対し、その成分数が入力値Ａの成分数｜Ａ｜を下回らず且つ非線型化され情報理論的に
2009288758.tif 000429
Ａ−６０１一方向置換器（イ）と、
Ａ−３０２一方向化エクストラクタとＡ−３０３ベーシックエクストラクタから構成され、Ａ−３０２一方向化エクストラクタ単体から構成され、入力値Ａに対し、Ａ−３０２一方向化エクストラクタがその成分数が入力値Ａの成分数｜Ａ｜を下回らず且つ非線型化され情報理論的に逆算不能な余因子行列
2009288758.tif 000430
をベクトルＡとして出力する
Ａ−６０２一方向置換器（ロ）である
ようにしたことを特徴とする請求項２２から請求項２８までのいずれかに記載の暗号処理の方法。
【請求項３８】
弱い非線型性を持つ線型の擬似ランダムビット生成器であるＡ−００
2009288758.tif 000431
みによって非線型化させる置換器は、
2009288758.tif 000432
の擬似ランダムビットＡ′を生成し、それをＡ−３０１セパレータでｎ個に分割し
2009288758.tif 000433
または、
2009288758.tif 000434
擬似ランダムビットＡ′を生成し、それをＡ−３０１セパレータで二つ以上に分割
2009288758.tif 000435
とによって生成した値またはベクトルから、更に成分数を前記Ａ−００２擬似ラ
2009288758.tif 000436
クストラクタで任意の成分を抜き取り成分数を調整する
ようにしたことを特徴とする請求項２２から請求項２８までのいずれかに記載の暗号処理の方法。
【請求項３９】
Ａ−３０１セパレータとＡ−００１ａベクトル和型置換装置によって構成される置換器は、
2009288758.tif 000437
る表（行列）をＡとし、その行列Ａから生成されたベクトルをＡ′とするとき、
Ａ−３０１セパレータとＡ−００１ａベクトル和型置換装置によって構成され、Ａ′が入力されるとＡ−３０１セパレータはＡ′を等分な二つのベクトルに
2009288758.tif 000438
のベクトルをベクトル和または内積することによって置換してベクトルＡを生成し出力する
Ａ−６０３置換器と、
Ａ−３０１セパレータとＡ−００１ａベクトル和型置換装置とＡ−３０３ベーシックエクストラクタによって構成され、Ａ′が入力されるとＡ−３０１セ
2009288758.tif 000439
することによって置換してベクトルＡ″を生成し、Ａ−３０３ベーシックエクストラクタがそのＡ″から任意の成分を｜Ａ″｜−｜Ａ′｜つまりベクトルＡ″の成分数｜Ａ″｜からＡ′の成分数｜Ａ′｜を引いた成分数だけ抜き取ることによって成分数｜Ａ′｜のベクトルＡ（３）を生成し、そのＡ（３）をベクトルＡとして出力する
Ａ−６０４折畳＋抜取置換器である
ようにしたことを特徴とする請求項２２から請求項２８までのいずれかに記載の暗号処理の方法。
【請求項４０】
Ａ−３０２一方向化エクストラクタは、
2009288758.tif 000440
のｉｊ成分であるａｉｊの演算対象となる成分が、
第ｉ−１行目の成分であるａｉ−１，ｊから列方向に第ｉ−ψ行目の成分であるａｉ−ψ，ｊまでのψ個と、
第ｊ−１列目の成分であるａｉ，ｊ−１から行方向に第ｊ−ξ列目の成分であるａｉ，ｊ−ξまでのξ個
とすれば、
2009288758.tif 000441
その第一行と第二行および第２＋ψｍ行（但しｍ＝１，２，．．．）
及び第一列と第二列および第２＋ξｎ列（但し、ｎ＝１，２，．．．）
を除いた前記行列の余因子行列を生成し、その余因子行列の各列ベクトルまたは行ベクトルを並べて一つのベクトルとして生成し出力する
ようにしたことを特徴とする請求項３７に記載の暗号処理の方法。
【発明の詳細な説明】
【技術分野】
【０００１】  以下に述べる暗号処理装置および方法は、
二を下回らない自然数を法とする剰余群および／または三を下回らない素数を法とする剰余群において、
使い捨ての変数で少なくとも二つの秘密鍵を置換して暗号鍵を生成することによって、毎回新たな暗号鍵を使用して暗号化処理／復号処理を行えるようにし、その暗号鍵の生成過程において生成される変数を、入力側からは推測不能とし、且つ出力側からは数学的かつ情報理論的に逆算不能とすることによってその暗号化が完全秘匿であると同時に、複数の暗号文が攻撃者の手に渡ったとしても、あるいは暗号文とその平文およびその使い捨て変数が攻撃者の手に渡ったとしても秘密鍵の秘匿の完全性に関し完全秘匿または計算量的完全秘匿であるようにし、それによって使い捨て変数が公開可能となることから、使い捨て変数を暗号文に添付して送受信および／または保管することによって、暗号鍵と秘密鍵と暗号文の関連付けを完全に秘匿した状態で管理できるようにした
暗号処理の装置および方法に関する技術である。
【背景技術】
【０００２】  本発明は、共通鍵方式（対称鍵とも呼ばれる）に分類される暗号方式である。
その中の所謂「ヴァーナム暗号」であって、それを現実的な系として機能するようにしたものである。【０００３】  Ｓｈａｎｎｏｎの安全性に関する情報理論的モデルは無条件安全性をもたらす。ヴァーナム暗号の完全秘匿性は計算上の問題の困難さや敵の計算能力の限界に依存しない。完全秘匿性はほとんどの実用的な状況では到達可能ではないにもかかわらず、仮定に基づいていない。【０００４】  即ち、ヴァーナム暗号は理論的には解読不能と言われてきたが、これまで何十年にもわたって、その有効な実現方法が見つからなかった。
その主たる理由は、所謂「鍵の配送コスト問題」である。【０００５】  鍵の配送コスト問題とは、
ヴァーナム暗号では、平文を暗号化するのに、
（ｉ）暗号化の都度新たな、つまりユニークな値を持ち、
且つ、
（ｉｉ）その平文と同じ長さを下回らない長さの真正ランダムビット、即ち少なくとも平文の不確定性を下回らない不確定性（情報理論的エントロピー）を持つビット列からなる暗号鍵
を必要とする。
これが暗号通信として成立するには、つまり、正しい受信者が復号できるようにするには、暗号文とは別にその暗号鍵も安全に相手に送られなければならない。
ところが、暗号鍵を安全に送れるのであれば、当然のことながらそれと同じか短い長さの平文も、少なくとも同じ方法で安全に送れるはずである。
すると、ヴァーナム暗号は不要ということになり、その存在自体が矛盾することになる。【０００６】  そこで、従来技術では、
一つには、生成の都度、真正ランダムビットに近いビット列を作るために擬似ランダムビット生成器を用いたが、計算によって生成されるため、シードの持つ低い不確定性しか実現できず、計算量と計算能力次第で解読可能になり得るという問題があった。現代暗号ではこれを情報理論における完全秘匿の類似として計算量的完全（または暗号的安全）といい、そのような暗号鍵は計算量的完全秘匿性を持つという。
また一つには、公開鍵方式とか二重鍵方式とか非対称鍵方式と呼ばれる毎回暗号鍵を送信しなくても済む方式が考えられたが、結局一つの暗号鍵で複数の平文を暗号化することになるので、情報理論的には解読可能になってしまっているという問題があった。そこで、鍵生成を非線型化することによって計算量によって解読困難とすることになる。
Ｓｈａｎｎｏｎが指摘した、情報理論でいうところのこのような問題のとらえ方は後述するように計算量的完全の問題から証明されている。
ところが、これは実際には間違い（理論は正しい）で、後述するように、たった二つの暗号文から非対称鍵方式も含め固定的な暗号鍵を用いる方式は極めて容易に解読可能である。
ただし、従来の対称鍵方式や公開鍵方式の優れた点は、公開鍵方式では鍵のサイズが、その計算量からどうしても小さくならざるを得なかったため、ブロック暗号と言われる小さなブロックごとに暗号化するようにしたことであった。小さな秘密鍵は、その暗号化しようとする平文自体を変数としてブロック毎に順次置換され、平文の不確定性を下回らない不確定性を持つ暗号鍵として処理される。
従ってこの暗号化は、もし秘密鍵が暗号化の都度ユニークであるならば完全秘匿が成立することになる。【０００７】  そこで従来技術では、次に、使い捨て公開鍵暗号という方式が考えられた。
この技術は、ヴァーナム暗号が不完全ながら実現したものである。即ち、生成の都度ユニークな値をとる小さな秘密鍵を生成し、その秘密鍵を使ってブロック方式で暗号／復号処理する。
しかしながら、それでも暗号通信に際しては秘密鍵の送受信が必要で、その送受信される秘密鍵の秘匿ために公開鍵（非対称鍵）暗号が用いられるというところに重大な問題が残った。
もっとも、この使い捨て公開鍵方式では通信時を除けば、つまり暗号文を保管する状態では計算量によらない安全、即ち完全秘匿が成立する。つまり、暗号文あるいは暗号化としては完全秘匿性を持たせるようにすることが可能である。【０００８】  ところが、そこでまた問題が発生する。つまり、暗号文の保管時においては、暗号文と一対一でそれと対応するそれぞれの秘密鍵つまり暗号鍵も関連付けて管理されなければならない。つまり、どのような形にせよそのような関連付けがなければ、暗号文の所有者自身でさえ復号できないことになるわけである。【０００９】  そこで、通常はデータベース等で管理することになるのであるが、その際のセキュリティが問題となる。データベースには基本的にはパスワード認証程度しかガードがなく、しかもデータベース管理者からはパスワードは無関係に丸見えである。たとえ暗号化されていたとしても、その暗号鍵を管理しているのがデータベース管理者であればやはり解読可能であることは同じである。
すると、暗号システム以外のところから、そもそもその暗号化が目的としていた情報秘匿が崩壊してしまう。つまり、折角のヴァーナム暗号の完全秘匿性がヴァーナム暗号以外のところで崩れ去ってしまうという問題があった。【００１０】  この問題に対する一つの対策として秘密分散と呼ばれる方式で秘密鍵（暗号鍵）を保管する方式が考えられた。これは登録された秘密鍵情報を完全秘匿の成立する形で秘匿する（つまりシステム管理者でも登録されている情報の内容を知ることはできない）ものの、その管理、つまり暗号文とその秘密鍵の関連付けまで考えると安全のレベルはそこに用いられる認証システム次第であり、何ら根本的な解決には至っていないという問題があった。
【発明の開示】
【発明が解決しようとする課題】
【００１１】  （通信時における完全秘匿）従来方式では、いずれの暗号化法でも少なくとも通信時における暗号文の秘匿に関し、計算量的完全秘匿性しか実現しえていない。しかも今日、ＮＩＳＴ（アメリカ合衆国国立標準技術研究所Ｎａｔｉｏｎａｌ  Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｓｔａｎｄａｒｄｓ  ａｎｄ  Ｔｅｃｈｎｏｌｏｇｙ）の勧告によって、これまで等価安全性で８０ビットを下回らない不確定性が必要とされていた暗号化の強度が、２０１０年以降は１１３ビットを下回らない不確定性が必要とされ、暗号の２０１０年問題として社会問題化しつつある。
従って、保管時における完全秘匿性は当然のことながら、通信時における完全秘匿性の確保は喫緊の課題である。【００１２】  そうした状況下において、暗号方式が完全秘匿であるヴァーナム暗号の実用化即ち情報理論の確立は必須の課題であると考えられる。【００１３】  また、暗号文の保管時における秘密鍵との関連付けにおいて情報漏洩の危険が発生している点についても、暗号システム全体の根幹を揺るがす問題であり、喫緊の解決が求められている。【００１４】  鍵管理の容易性だけでなく、秘密情報のやり取りの方法や暗号処理／復号処理における操作の容易性などについて、一般ユーザが使用することを前提とした場合、従来方式ではその操作性に問題を持つものが多く見られ、そのことは情報漏洩や鍵の紛失事故を誘発する問題であり、システムの基本においてカヴァーされるべき課題である。【００１５】  所謂ヴァーナム暗号の考え方によって、単純な完全秘匿を、変数を用いて作ることは至って簡単である。しかしながら複数の暗号文が存在する場合や暗号文とその平文が同時に攻撃者の手に渡った場合における秘密鍵の完全秘匿に関しては別の技術が必要になる。
攻撃の内、
●一つの暗号文だけで解読される場合というのは、暗号文を直接的に暗号化する暗号鍵の不確定性に問題がある場合である。即ち計算量的に解読可能な状態である。暗号鍵の不確定性が平文の不確定性を下回らなければ情報理論に言う所謂完全秘匿が成立する。
●複数の暗号文から秘密鍵が解読される状態というのは、秘密鍵の取り扱い方、あるいは暗号化における最終的な暗号文生成処理の手法に問題がある場合である。単純な線型のベクトル和（法が二の場合は特にＸＯＲあるいは排他的論理和と呼ばれる）では、二つの暗号文から容易に解読される。
●暗号化に伴う入力値の内の変数と、最終的な暗号化に用いる暗号鍵とがわかれば解読される状態というのは、秘密鍵の秘匿に問題がある状態であり、それは一つには暗号鍵を生成する変数の不確定性の問題であり、一つには入力値である変数から不確定性を拡張する件に関する問題及び推測不能性に関する問題である。
●変数の不確定性拡張に関する問題には、置換の問題と、擬似ランダムビット生成における一様性、非周期性、初期値鋭敏性確保の問題が含まれる。
●推測不能性に関する問題には置換の問題が含まれる。
以上の問題が解決されることによって、生成の都度ユニークな値をとる小さなシードを公開鍵として用いて暗号化を完全秘匿とし、且つ、秘密鍵の秘匿の完全性に関しても完全秘匿若しくは従来技術とは比較にならないほど巨大な計算量的完全秘匿性を得ることが可能となる。
ここで、秘密鍵の秘匿に関し、本来完全秘匿が成立すれば不要であるはずなのに、計算量的安全までも含める件については、秘密鍵の秘匿に関する使い勝手の問題からセキュリティの面で現実的にはあったほうが良いと考えられるので、敢えてここに含めるものである。
【発明を解決するための手段】
【００１６】  本発明は、図１を用いて説明すると、
暗号処理の装置および方法に関する系の全体は、
変数ＶｉとＭ−１０００暗号化モデュールと
平文Ｍｉと
暗号文Ｅｉと
Ｍ−２０００公開変数添付モデュールと
送信文Ｔｉと
から構成され、
Ｍ−１０００暗号化モデュールは、
Ｍ−１１００暗号鍵生成モデュールと
暗号鍵Ｋｉと
Ｍ−１２００暗号文生成モデュールと
から構成され、
Ｍ−１１００暗号鍵生成モデュールは
Ｍ−１１１０秘匿変数生成モデュールと
2009288758.tif 000003
Ｍ−１１２０不可視化処理モデュールと
から構成され、
2009288758.tif 000004
成し、その暗号鍵ＫｉをＭ−１２００暗号文生成モデュールに入力して暗号文Ｅｉを生成し、その暗号文ＥｉをＭ−２０００公開変数添付モデュールに入力して送信文Ｔｉを得るようにし、
Ｍ−１１１０秘匿変数生成モデュールにおいて秘匿変数を推測不能とし、
且つ
Ｍ−１１１０秘匿変数生成モデュールを広い意味での非線型化をすることによってＭ−１１１０秘匿変数生成モデュールに含まれる秘密鍵を秘匿するか
若しくは
Ｍ−１１２０不可視化処理モデュールを広い意味での非線型処理とすることによ
2009288758.tif 000005
そのことによって、暗号化を完全秘匿とすると同時に、変数Ｖｉと暗号文Ｅｉとその平文Ｍｉを攻撃者が入手したとしても秘密鍵について完全秘匿性または計算量的完全秘匿性を持つようにした暗号処理の装置および方法である。
【００１７】  図２はヴァーナム暗号の基本的な構造を示す図であり、完全秘匿が成立する暗号化の基本形であるとともに、その暗号化における暗号鍵生成の基本形である。
2009288758.tif 000006
和）
または
2009288758.tif 000007
但し、積の場合は入力値は０を含まない。内積の場合は、入力値であるベクトルの成分に０を含まない
の演算を行うことによって置換してＫｉを生成する。
図の中でＳｉが第ｉ回目の暗号化に用いる暗号鍵でＶｉが第ｉ回日の暗号化における平文であれば、Ｋｉは第ｉ回目の暗号化における暗号文ということになり、
回異なる暗号鍵で平文を暗号化するわけであるから、情報理論によればこの暗号
2009288758.tif 000008
回異なる暗号鍵で平文を暗号化するわけであるから、情報理論によればこの暗号化は完全秘匿である。
但し、出力値である暗号文が公開されており、且つ入力値である暗号鍵と平文の内のいずれか一つの値が秘匿されていないときには、残りの一つの値は引くか割るかするだけで容易に解読される。従って、この暗号化は、平文と暗号文が共に秘匿される限りにおいて暗号鍵は完全秘匿性を持つ。
図１のＭ−１１００暗号鍵生成モデュールにおいても暗号鍵をこの方法で生成すれば、暗号化の都度、毎回異なる暗号鍵を生成することができる。そこで、Ｖｉを第ｉ回目の暗号化における変数、Ｍ−１１１０秘匿変数生成モデュールに含まれ
2009288758.tif 000009
おける暗号鍵とする。すると、暗号鍵Ｋｉと変数Ｖｉが秘匿される限りにおいて変数
2009288758.tif 000010
暗号鍵Ｋｉについて推測すら成立しないので平文を解読することはできず、やはり暗号化に関し完全秘匿が成立する。
ところが、暗号文とともにその平文が攻撃者の手に渡ると、暗号鍵Ｋｉは容易に解読される。更に、変数Ｖｉは公開されているわけであるから、Ｍ−１１１０秘匿変数生成モデュールおよびＭ−１１２０不可視化処理モデュールが単なるＸＯＲや
2009288758.tif 000011
読されれば、変数鍵Ｓｉが秘密鍵Ｓを変数υｉで置換して生成されたものであるとすれば、その秘密鍵Ｓも容易に解読されてしまう。これを図５に示す
【００１８】  図５の説明の前に、暗号鍵の不確定性に関わるランダムビットの不確定性の問題について一言触れておく。
ここで秘密鍵Ｓはその不確定性Ｈ（Ｓ）が、法を二を下回らない自然数Ｎ（２
2009288758.tif 000012
Ｈ（Ｓ）＝ｌｏｇ２Ｎ｜Ｓ｜
つまり秘密鍵Ｓの不確定性Ｈ（Ｓ）は二を底とするＮの［秘密鍵Ｓの成分数｜Ｓ｜］乗の対数（場合の数（確率の逆数）Ｎ｜Ｓ｜のビット表記）
でなければならないから、本来真正ランダムであることが求められる。しかしながら、情報理論的には暗号鍵の不確定性はその暗号化しようとする平文の不確定性を下回らなければ良いわけであるから、任意の平文または任意の平文を任意の変数で置換した値を秘密鍵あるいは暗号鍵として用いても良いことになる。つまり、物理学的な意味での真正ランダムまでは要求されない。
更に言えば、後述するように、任意の値（擬似ランダムビットでもよい）で置換された平文は文字からなる平文であったとしても、文字そのものの不確定性ではなく、つまり文字コードの数によって生ずる不確定性ではなく、その文字コードの定義によって定められた不確定性、例えばその文字コードが二百五十六ビットであれば一つの文字について二百五十六ビットの不確定性（つまり、二の二百五十六乗通りの可能性、ヴァリエーション）を持つ。従って真正ランダム同等となる。
ヘッダー部やフッター部には定型句が多いことから解読の可能性が生ずる危険があるとか、データフォーマットから類推可能になるという可能性に関しては、一つには本来何を秘密鍵とするかについて秘匿するから秘密鍵なのであり、また、どのような種類のデータを秘密鍵として用いているか分かったとしても、秘密鍵を都度異なる任意の値で置換して暗号鍵として用いることから、任意の平文を秘密鍵として用いたとしても、そのことによって部分的にせよ解読される可能性は全く存在しえない。
【００１９】  図３は、図２におけるような単純な和または積ではなく、Ａ−００３擬似ランダムビット生成器型置換装置（イ）を用いて、二つ以上の入力値を絡めることによって同様の効果を実現しようとするものである。二つ以上のシードからそれらを伸長したベクトルを生成するわけであるから、暗号鍵Ｋｉを生成するには、データ長（成分数）を調整しなければならない。但し、この擬似ランダムビット生成が線型であれば二つの入力値を秘匿したとしても成分調整の方法によっては部分的に逆算される可能性がある。擬似ランダムビット生成が非線型であれば完全非可逆が成立する。
二つ以上のシードによる擬似ランダムビット生成は、そのような専用の擬似ランダムビット生成器を用いてもよいし、また従来方式の一つのシードから生成する擬似ランダムビット生成器の場合は、それら複数のベクトルをつなげて一つのシードとするようにしても良い。つまり、それら入力値である複数のベクトルをａ１，ａ２，．．．，ａｎとするとき、このベクトルからなるベクトルを生成してＡ＝（ａ１，ａ２，．．．，ａｎ）（ベクトルＡはａ１からａｎまでのｎ個のベクトルを成分とするベクトル）とし、このベクトルＡを新たなシードとする。
情報理論ではＡが行列ではないことを明示するためと思われるが、Ａ＝（ａ１‖ａ２‖・・・‖ａｎ）（ベクトルＡはａ１からａｎまでのｎ個のベクトルを連結したベクトル）のように記述することもある。
但し、入力値の成分数と出力値の成分数を等しくする際に、成分の抜き取りが行われるわけであるが、単純な抜き取りの場合には出力値の不確定性が入力値の不確定性の最大値を下回り得るという問題がある。
【００２０】  図４は、図３の擬似ランダムビット生成器が完全非可逆な擬似ランダムビット生成器であるＡ−００４擬似ランダムビット生成器型置換装置（ロ）による場合を示したもので、擬似ランダムビット生成が線型である場合においても完全一方向（非可逆）となるよう処理を施したものである。
擬似ランダムビット生成器を使った非可逆化（一方向化）には三通りのやり方がある。
一つは、生成の過程の中に積の演算が含まれる場合である。未知数の積は非線型となることから処理は非線型化され一方向化（非可逆化）される。
また、一つは全ての生成処理が和によって行われる場合、つまり線型の場合であ
2009288758.tif 000013
ベクトルをｎ個に分割してその内の少なくとも二つをベクトル和するものである。この処理は「折りたたむ」という表現で表わされることもある。図の変数鍵Ｓｉの不確定性Ｈ（Ｓｉ）が平文の不確定性を下回らないとするとき、変数Ｖｉの不確定性
2009288758.tif 000014
Ｈ（Ｖｉ）を下回らないのであれば、暗号鍵Ｋｉの不確定性Ｈ（Ｋｉ）はＨ（Ｋｉ）＝Ｈ（Ｓｉ）つまり、暗号鍵Ｋｉの不確定性Ｈ（Ｋｉ）は変数鍵Ｓｉの不確定性Ｈ（Ｓｉ）に等しい。そこで、変数Ｖｉと変数鍵Ｓｉをｎ倍に伸長したベクトルをｎ個に分割してその内の少なくとも二つをベクトル和すると、その不確定性はやはりＨ（Ｓｉ）に等しい。従って、この擬
2009288758.tif 000015
とするとき、変数鍵Ｓｉの各成分の値に対し、変数Ｖｉと変数鍵Ｓｉをｎ倍に伸長したベクトルをｎ個に分割してその内の少なくとも二つをベクトル和して生成されたベクトルの各成分の値に対する変数Ｖｉと変数鍵Ｓｉの各成分の値の組み合わせはＮ通り存在することになり、従って、生成値からシードを求めることは情報理論的に不可能である。
いま一つは、やはり全ての生成処理が和によって行われる場合であって、擬似ランダムビット生成された値から、少なくとも逆算の要となる値を抜き取ることで情報量的、情報理論的に不確定性を確保して完全非可逆化するものである。
これら３通りのやり方は全て、広い意味での非線型性を持つと言える。また、入力値の不確定性の最大値と出力値の不確定性は等しい。従って、完全秘匿が成立する方式には図３のＡ−００３擬似ランダムビット生成器型置換装置（イ）ではなく、このＡ−００４擬似ランダムビット生成器型置換装置（ロ）が用いられることになる。
完全非可逆化に関し、詳しくは後述する。また、演算における不確定性の転移や拡張についても詳しくは後述する。
【００２１】
2009288758.tif 000016
号鍵Ｋｉと平文Ｍｉと暗号文Ｅｉから構成され、
変数鍵Ｓｉが秘密鍵Ｓを変数υｉで置換して生成され、その変数鍵Ｓｉを変数Ｖｉで置換して暗号鍵Ｋｉを生成し、その暗号鍵Ｋｉで平文Ｍｉを置換することによって暗号化し、暗号文Ｅｉを生成している。ここで、
2009288758.tif 000017
れば、変数鍵Ｓｉの不確定性Ｈ（Ｓｉ）はＨ（Ｓｉ）＝Ｈ（Ｓ）、つまり、変数鍵Ｓｉの不確定性Ｈ（Ｓｉ）は秘密鍵Ｓの不確定性Ｈ（Ｓ）に等しく、変数υｉが秘匿されていなくても秘密鍵Ｓが秘匿される限りにおいて推測不能であり、
暗号鍵Ｋｉの不確定性Ｈ（Ｋｉ）はＨ（Ｋｉ）＝Ｈ（Ｓｉ）、つまり、暗号鍵Ｋｉの不確定性Ｈ（Ｋｉ）は変数鍵Ｓｉの不確定性Ｈ（Ｓｉ）に等しく、変数Ｖｉが秘匿されていなくても変数鍵Ｓｉが秘匿される限りおいて推測不能であり、
2009288758.tif 000018
確定性Ｈ（Ｅｉ）は暗号鍵Ｋｉの不確定性と等しく且つ暗号文Ｅｉの不確定性Ｈ（Ｅｉ）は秘密鍵Ｓの不確定性と等しく且つ暗号文Ｅｉの不確定性Ｈ（Ｅｉ）は平文Ｍｉの不確定性を下回らないことから、
この暗号化は完全秘匿である。
ところが、暗号文Ｅｉとともにその平文Ｍｉが攻撃者の手に渡ると
ＥｉとＭｉからＫｉが求まり、
ＫｉとＶｉからＳｉが求まり、
Ｓｉとυｉから秘密鍵Ｓが求まり、
その結果、それ以降の暗号化は全て攻撃者によって解読されてしまうことになる。
暗号システムの通常使用において、暗号文とその平文が同時に存在することはままある。従って、暗号文とともにその平文が漏洩しても逆算できないシステムが必須である。
そこでそのような事態を防ぐには、
変数Ｖｉを秘匿する機構を備えるか、
または
暗号鍵Ｋｉを暗号文とその平文からは解読できない機構を備える必要がある。
ところが後者に関し、暗号文の生成は復号されることが前提であるから情報量を操作して不確定性を確保するような形での完全非可逆（完全一方向関数）とすることはできない。また、もし単なる非可逆（一方向関数）であれば計算量的に解読可能となる。従ってこの部分は情報量によらない情報理論的な解読不能性をもつものとなり、即ち、和または積による置換処理となる。従って、暗号部と同時に攻撃者によって入手されれば、暗号鍵Ｋｉは解読されることが前提となる。そこで、
暗号鍵Ｋｉが解読されても、変数鍵Ｓｉを解読されないような秘匿機構を備える必要がある
ということになる。
【００２２】  図６は変数Ｖｉを秘匿する機構としてＭ−１１１０秘匿変数生成モデュールを備えた暗号鍵生成モデュールを表す。
全体は、
入力値である使い捨て公開変数ｒｉと
Ｍ−１１００暗号鍵生成モデュールと
暗号鍵Ｋｉ
から構成され、
Ｍ−１１００暗号鍵生成モデュールは、
Ｍ−１１１０秘匿変数生成モデュールと
変数Ｖｉと
変数鍵Ｓｉと
2009288758.tif 000019
から構成され、
使い捨て変数ｒｉを秘匿変数生成モデュールに入力し、変数Ｖｉを生成し、その変数
2009288758.tif 000020
このモデュールに要求される性能は、入力値であるｒｉが漏洩しても変数Ｖｉが推測不能であり、その不確定性が変数鍵Ｓｉの不確定性を下回らないことである。
そのような構造が成立すれば、変数Ｖｉと変数鍵Ｓｉは秘匿されるので暗号鍵Ｋｉは完全秘匿性を持つ。また、暗号鍵Ｋｉが漏洩したとしても変数鍵Ｓｉが解読されることはなく、従って変数鍵Ｓｉの元となる秘密鍵Ｓも完全秘匿性を持つ。
【００２３】  図７は暗号鍵Ｋｉの生成を非可逆処理する機構としてＭ−１１３０非可逆化処理モデュールを備えた暗号鍵生成モデュールである。
全体は、
入力値である変数Ｖｉと
Ｍ−１１００暗号鍵生成モデュールと
Ｍ−１１３０非可逆処理モデュールと
暗号鍵Ｋｉと
から構成され、
Ｍ−１１００暗号鍵生成モデュールは、
2009288758.tif 000021
から構成され、
2009288758.tif 000022
た値をＭ−１１３０非可逆処理モデュールで処理して暗号鍵Ｋｉを生成する。
暗号鍵Ｋｉと変数Ｖｉが攻撃者によって入手されたとしても、暗号鍵Ｋｉから情報理論的に非可逆であれば、変数鍵Ｓｉは計算量的完全秘匿性を持ち、従って変数鍵Ｓｉの元となる秘密鍵Ｓも計算量的に完全秘匿される。
2009288758.tif 000023
Ｎの｜Ｓ｜乗に等しい。ここで｜Ｓｉ｜は変数鍵Ｓｉの成分数であり、｜Ｓ｜は秘密鍵Ｓの成分数）通りの暗号鍵Ｋｉの候補を生成し、その一つ一つを入手した暗号鍵Ｋｉと比較して変数Ｖｉと変数鍵Ｓｉを置換して生成した値を決定することができる。即ち、この時、変数鍵Ｓｉは計算量的な完全秘匿性を持ち、従って変数鍵Ｓｉの元となる秘密鍵Ｓも計算量的な完全秘匿性を持つ。
【００２４】  図８は、図６に示した構造をＭ−１０００暗号化モデュールに関しより具体的に記述した図である。
全体は、
入力値であり平文Ｍｉの不確定性を下回る不確定性を有する使い捨て公開変数ｒｉと
Ｍ−１０００暗号化モデュールと
平文Ｍｉと
出力値である暗号文Ｅｉ
から構成され、
Ｍ−１０００暗号化モデュールは、
2009288758.tif 000024
とによって生成された変数Ｒｉと
Ｍ−１１００暗号鍵生成モデュールと
暗号鍵Ｋｉと
Ｍ−１２００暗号文生成モデュール
から構成され、
Ｍ−１１００暗号鍵生成モデュールは、
Ｍ−１１１０秘匿変数生成モデュールと
変数Ｖｉと
2009288758.tif 000025
から構成され、
Ｍ−１２００暗号文生成モデュールは、
2009288758.tif 000026
から構成され、
Ｍ−１１１０秘匿変数生成モデュールは、
2009288758.tif 000027
から構成され、
2009288758.tif 000028
置換して暗号鍵Ｋｉを生成し、その暗号鍵Ｋｉと平文ＭｉをＭ−１２００暗号文生成
2009288758.tif 000029
ここで、使い捨て公開変数ｒｉは擬似ランダムビットのシードであるから、
Ｈ（ｒｉ）＝Ｈ（Ｒｉ）＜Ｈ（Ｓ１）、
即ち、使い捨て公開変数ｒｉの不確定性Ｈ（ｒｉ）は変数Ｒｉの不確定性Ｈ（Ｒｉ）と等し
2009288758.tif 000030
も短い、別の言い方をすれば、使い捨て公開変数ｒｉの成分数｜ｒｉ｜は変数鍵
2009288758.tif 000031
2009288758.tif 000032
つまり、平文Ｍｉの不確定性を下回らない不確定性を有する変数Ｖｉを生成する値であるから、
2009288758.tif 000033
成分数を持ち、
2009288758.tif 000034
暗号文Ｅｉがわかったとしても、暗号鍵Ｋｉと平文Ｍｉは変数であるから、この暗号化は完全秘匿である。また、使い捨て公開変数ｒｉと暗号文Ｅｉがわかったとしても
2009288758.tif 000035
持ち解読されることはない。
ところが、暗号文Ｅｉと共にその平文Ｍｉが漏洩すると容易に暗号鍵Ｋｉが求まるので、秘密鍵を秘匿するには少なくともＭ−１１００暗号鍵生成モデュールの出力
2009288758.tif 000036
何故なら、
2009288758.tif 000037
つまり、二を下回らない自然数Ｎを法とする世界で、生成の都度ユニ
2009288758.tif 000038
したベクトルに合同なベクトルであると定義する
とするとき、
2009288758.tif 000039
ベクトルに法Ｎで合同なベクトルであり、それは変数Ｒｉとベクトル
2009288758.tif 000040
う一つの固定値からなるベクトルのベクトル和の形に書き表せる
であり、
ここでＭ−１１００暗号鍵生成モデュールの出力側のＡ−００１置換装置
2009288758.tif 000041
クトルに法Ｎで合同なベクトルであり、
2009288758.tif 000042
秘密鍵Ｓ１をベクトル和したベクトルに法Ｎで合同なベクト
2009288758.tif 000043
ル和したベクトルに法Ｎで合同なベクトルであると定義されたベクトルであるから、
2009288758.tif 000044
ある一つのベクトルと、秘密鍵Ｓ１という一つの固定値からなる
2009288758.tif 000045
トルに合同なベクトルという形に書き表すことができ、従って
2009288758.tif 000046
したベクトルと、秘密鍵Ｓ１と秘密鍵Ｓ２をベクトル和したベクトルをベクトル和したベクトルに合同なベクトルという形に書き表され、
2009288758.tif 000047
ル和したベクトルに法Ｎで合同であると定義し、ベクトルＳ３は秘密鍵Ｓ１と秘密鍵Ｓ２をベクトル和したベクトルに法Ｎで合同であると定義する
とおくと、
2009288758.tif 000048
クトルと書き表すことができる
となる。
2009288758.tif 000049
回らなければ、置換がこの一回限りにおいて、暗号鍵Ｋｉの秘匿に関し完全
2009288758.tif 000050
を下回り、且つ、その不確定性が計算量的に解読困難なレベルであれば暗号鍵Ｋｉは計算量的完全秘匿性を持つ。
ところが、一つの変数と一つの固定値の和で表せることから、たった二つの暗号鍵Ｋｉが攻撃者によって入手されるだけで、たったＮ通りでＳ３は解読され得、
何故なら、上記（１）式において
2009288758.tif 000051
したベクトル
2009288758.tif 000052
したベクトル
2009288758.tif 000053
つまり、従って、暗号鍵Ｋ１と暗号鍵Ｋ２を法二でベクトル和
2009288758.tif 000054
クトルと合同
2009288758.tif 000055
つまり、暗号鍵Ｋ１と暗号鍵Ｋ２のマイナス一倍を法Ｎでベク
2009288758.tif 000056
Ｎでベクトル和したベクトルと合同
（２）式と（３）式を足すと
2009288758.tif 000057
したベクトルと合同
2009288758.tif 000058
実質的に一つの暗号鍵と同じことであるから、秘密鍵Ｓ１と秘密鍵Ｓ２の値がわからなくても、それ以降暗号文は容易に解読されることになる。
2009288758.tif 000059
ける演算が積であれば、
2009288758.tif 000060
して内積したベクトルと合同であり、
2009288758.tif 000061
密鍵Ｓ１をベクトル和したベクトルに合同なベクトルであり、
2009288758.tif 000062
トルに合同なベクトルであると定義されたベクトルであるから、
2009288758.tif 000063
一つのベクトルと秘密鍵Ｓ１という一つの固定値からなるベクトル
2009288758.tif 000064
トル和したベクトルを内積したベクトルに法ｐで合同なベクトルという形に書き表すことができ、従って、
2009288758.tif 000065
したベクトルと、秘密鍵Ｓ１と秘密鍵Ｓ２を内積したベクトルをベクトル和したベクトルに法ｐで合同なベクトルという形に書き表すことができる
となって、二つの未知数（秘密鍵Ｓ１と秘密鍵Ｓ２）の積が現れることから処理は非線型となり、
2009288758.tif 000066
鍵Ｋｉから逆算によって秘密鍵を求めることはできない。
2009288758.tif 000067
基づく計算量で解読可能つまり計算量的完全秘匿となる。■
2009288758.tif 000068
ることはできず、従って、使い捨て公開変数ｒｉは暗号文Ｅｉよりもはるかに小さくすることができるので、ヴァーナム暗号における鍵の配送コスト問題が解消されることになる。
尚、ここで、Ｍ−１１００暗号鍵生成モデュールの出力側のＡ−００１置換装置
2009288758.tif 000069
Ｓ１、秘密鍵Ｓ２としても良い。
また、使い捨て公開変数ｒｉは、秘密鍵で置換して用いられることから、秘密鍵が秘匿される限りにおいて、使い捨て公開変数ｒｉが秘匿されなくても暗号化の秘匿性に影響を与えない。従って、使い捨て公開変数ｒｉは生成の都度ユニークでありさえすれば良いので、例えばミリ秒単位の時刻データを用いるなどしても良い。
【００２５】  図９は、図７に示した構造をＭ−１０００暗号化モデュールに関しより具体的に記述した図である。
全体は、入力値である変数ＶｉとＭ−１０００暗号化モデュールと平文Ｍｉと出力値である暗号文Ｅｉから構成され、
Ｍ−１０００暗号化モデュールは、
2009288758.tif 000070
モデュールと暗号鍵ＫｉとＭ−１２００暗号文生成モデュールから構成され、
Ｍ−１１００暗号鍵生成モデュールは
2009288758.tif 000071
Ｍ−１１３０非可逆処理モデュールは
2009288758.tif 000072
Ｍ−１２００暗号文生成モデュールは
2009288758.tif 000073
成し、その暗号鍵Ｋｉと平文ＭｉをＭ−１２００暗号文生成モデュールの中のＡ−
2009288758.tif 000074
開変数ｒｉから変数Ｒｉを生成する工程を除けばモデュール分けを無視した場合、図８と全く同じ形をしている。
【００２６】  そこで図８と図９をまとめてＭ−１０００暗号文生成モデュールを図１０で表わすと、
全体は、入力値である使い捨て公開変数ｒｉとＭ−１０００暗号化モデュールと平文Ｍｉと出力値である暗号文Ｅｉから構成され、
Ｍ−１０００暗号化モデュールは、
Ｍ−１１００暗号鍵生成モデュールと暗号鍵ＫｉとＭ−１２００暗号文生成モデュールから構成され、
Ｍ−１１００暗号鍵生成モデュールは、
2009288758.tif 000075
され、
Ｍ−１２００暗号文生成モデュールは、
2009288758.tif 000076
Ｍ−１１１０秘匿変数生成モデュールは、
2009288758.tif 000077
似ランダムビット置換装置から構成され、
Ｍ−１１２０不可視化処理モデュールは、
2009288758.tif 000078
換した値をＡ−００５擬似ランダムビット生成器型置換装置（ハ）で置換して秘
2009288758.tif 000079
2009288758.tif 000080
この装置及び方法は完全秘匿が成立すると同時に、秘密鍵の秘匿に関しても完全秘匿性を持つ。Ｍ−１１２０不可視化処理モデュールの置換装置は図８と図９に
2009288758.tif 000081
しても良い。
ここで、Ｍ−１１２０不可視化処理モデュールの置換装置がＡ−００１ａベクト
2009288758.tif 000082
つまり、完全秘匿および秘密鍵の秘匿という点からすれば、このような構造では完全秘匿は成立しているものの、基本的に、Ｍ−１１１０秘匿変数生成モデュールは入力値の一つである変数は公開された値が元になっていることから攻撃者に
2009288758.tif 000083
洩してしまう。つまり、Ｍ−１１１０秘匿変数生成モデュールは線型でも非線型でも良く、且つ、Ｍ−１１２０不可視化処理モデュールが広い意味での非線型で
2009288758.tif 000084
尚、ここでＡ−００５擬似ランダムビット生成器型置換装置（ハ）は図３のＡ−００４擬似ランダムビット生成器型置換装置（ロ）における入力値を一つとした擬似ランダムビット生成器である。
【００２７】  図１０の検討結果から、Ｍ−１１２０不可視化処理モデュールの置換装置が
2009288758.tif 000085
することができることが分かった。
その全体は、使い捨て公開変数ｒｉから擬似ランダムビット生成する過程をまとめて変数Ｖｉに置き換えて省略して表すと、図１１に示すように、
変数ＶｉとＭ−１１００暗号鍵生成モデュールと暗号鍵Ｋｉから構成され、
Ｍ−１１００暗号鍵生成モデュールは、
2009288758.tif 000086
処理モデュールから構成され、
Ｍ−１１１０秘匿変数生成モデュールは
2009288758.tif 000087
Ｍｉの不確定性を下回らない不確定性を有する秘密鍵Ｓ１とＡ−００１ａベクト
2009288758.tif 000088
Ｍ−１１２０不可視化処理モデュールは、
2009288758.tif 000089
Ｍｉの不確定性を下回らない不確定性を有する秘密鍵Ｓ２とＡ−００１ｂ内積型
2009288758.tif 000090
Ｍ−１１１０秘匿変数生成モデュールの置換装置がＡ−００１ａベクトル和型置
2009288758.tif 000091
密鍵Ｓ１をベクトル和したベクトル］と［秘密鍵Ｓ２］を内積したベクトルに合同であり、従ってこれを展開すると［変数Ｖｉと秘密鍵Ｓ２の内積］と［秘密鍵Ｓ１と秘密鍵Ｓ２の内積］のベクトル和となり２つの未知数の積が現れ非線型であることから、
2009288758.tif 000092
鍵Ｓ１の不確定性Ｈ（Ｓ１）が平文Ｍｉの不確定性Ｈ（Ｍｉ）を下回らず、且つ、秘密鍵Ｓ２の不確定性Ｈ（Ｓ２）が平文Ｍｉの不確定性Ｈ（Ｍｉ）を下回らず、且つ、秘密鍵Ｓ１の不
2009288758.tif 000093
性Ｈ（Ｓ２）が暗号鍵Ｋｉの不確定性Ｈ（Ｋｉ）に等しい関係が成立するとき完全秘匿が成
2009288758.tif 000094
が盗まれたとしても完全秘匿される。
Ｍ−１１１０秘匿変数生成モデュールの置換装置がＡ−００１ｂ内積型置換装置
2009288758.tif 000095
したものと秘密鍵Ｓ２を内積したベクトルであり、即ち変数Ｖｉと秘密鍵Ｓ１と秘密鍵Ｓ２を内積したベクトルであるから未知数の積が現れ、やはり非線型となる。
また、ここで当然のことながら、Ｍ−１１２０不可視化処理モデュールのＡ−０
2009288758.tif 000096
よく、またその時、Ｍ−１１１０秘匿変数生成モデュールの置換装置はＡ−００
2009288758.tif 000097
【００２８】  図１２は再び擬似ランダムビット生成から記載したものであるが、図１１のＭ−１１１０秘匿変数生成モデュールのＡ−００１置換装置をＡ−００４擬似ランダムビット生成器型置換装置（ロ）置き換えたものである。Ａ−００４擬似ランダムビット生成器型置換装置（ロ）は広い意味での非線型な変換をする装置で
2009288758.tif 000098
特にここで重要な点は、Ａ−００４擬似ランダムビット生成器型置換装置（ロ）
2009288758.tif 000099
【００２９】  図１３は、更にＭ−１１２０不可視化処理モデュールのＡ−００１ｂ内積型
2009288758.tif 000100
ものである。Ａ−００４擬似ランダムビット生成器型置換装置（ロ）は広い意味での非線型な変換をする装置であるから、秘匿の完全性に対しＡ−００１ｂ内積
2009288758.tif 000101
ンダムビット生成器型置換装置（ロ）では不確定性Ｈ（Ｓ２）による計算量的完全秘匿性を持つ点である。
【００３０】  図１４において、Ｍ−１１２０不可視化処理モデュールの置換装置には二つ以上の値が入れば良い訳であるから、Ｍ−１１１０秘匿変数生成モデュールで二つ以上の秘匿変数を生成し、それをＭ−１１２０不可視化処理モデュールに入力するようにすることが考えられる。
そこで、暗号鍵生成に関する装置および方法に関する系の全体が
使い捨て公開変数ｒｉとＭ−１１００暗号鍵生成モデュールと暗号鍵Ｋｉから構成され、
Ｍ−１１００暗号鍵生成モデュールは
2009288758.tif 000102
Ｍ−１１１０秘匿変数生成モデュールと
2009288758.tif 000103
Ｍ−１１２０不可視化処理モデュール
から構成され、
Ｍ−１１１０秘匿変数生成モデュールは
二つのＭ−１１１０秘匿変数生成モデュール、
Ｍ−１１１０秘匿変数生成モデュール（Ａ）と
Ｍ−１１１０秘匿変数生成モデュール（Ｂ）
から構成され、
Ｍ−１１２０不可視化処理モデュールは
2009288758.tif 000104
から構成され、
生成の都度ユニークな値を採る使い捨て公開変数ｒｉをＡ−００２擬似ランダムビ
2009288758.tif 000105
変数ＲｉをＭ−１１１０秘匿変数生成モデュールのＭ−１１１０秘匿変数生成モデ
2009288758.tif 000106
出力し、
2009288758.tif 000107
このとき、
Ｍ−１１１０秘匿変数生成モデュールまたはＭ−１１２０不可視化処理モデュールの少なくともいずれか一方の処理を非線型とし
2009288758.tif 000108
不確定性を下回らないようにすることによって、
暗号化は完全秘匿性を持つと同時に秘密鍵に関しても完全秘匿性を持つ
暗号化とすることができる。
この形では、Ｍ−１１２０不可視化処理モデュールに入力される値はいずれも変数であるから、Ｍ−１１１０秘匿変数生成モデュールにおける処理が非線型であ
2009288758.tif 000109
つ秘密鍵も完全秘匿される。
逆に、図１３までに述べた通り、Ｍ−１１２０不可視化処理モデュールのＡ−０
2009288758.tif 000110
０秘匿変数生成モデュールにおける処理は線型でも完全秘匿が成立し、且つ秘密鍵も完全秘匿される。
【００３１】  図１５は図１４のＭ−１１１０秘匿変数生成モデュールをＡ−００１ａベク
2009288758.tif 000111
ランダムビット生成器型置換装置（ハ）としたものである。Ｍ−１１１０秘匿変数生成モデュールにおける処理が非線型となるので、Ｍ−１１２０不可視化処理モデュールにおける処理は線型でも非線型でも完全秘匿が成立し、且つ秘密鍵も完全秘匿で完全秘匿される。尚、ここで秘密鍵Ｓ１、Ｓ２は共に平文Ｍｉの不確定性を下回らない不確定性を有する。
【００３２】
2009288758.tif 000112
のであり、Ｍ−１１１０秘匿変数生成モデュールの置換装置がＡ−００１ｂ内積
2009288758.tif 000113
とを表している。尚、ここで秘密鍵Ｓ１、Ｓ２は共に平文Ｍｉの不確定性を下回らない不確定性を有する。
【００３３】  図１７は図１６におけるＭ−１１２０不可視化処理モデュールの置換装置をＡ−００４擬似ランダムビット生成器型置換装置（ロ）に置き換えたものである。
Ａ−００４擬似ランダムビット生成器型置換装置（ロ）は非線型処理を行うから、Ｍ−１１１０秘匿変数生成モデュールの置換装置は線型のＡ−００１ａベクトル
2009288758.tif 000114
下回らない不確定性を有する。
【００３４】  図１８は図１４のＭ−１１１０秘匿変数生成モデュールにおける置換装置を非線型の擬似ランダムビット生成器であるＡ−００４擬似ランダムビット生成器型置換装置（ロ）に置き換えたものである。Ｍ−１１１０秘匿変数生成モデュールの処理が非線型となることから、Ｍ−１１２０不可視化処理モデュールの置換
2009288758.tif 000115
文Ｍｉの不確定性を下回らない不確定性を有する。
またここで、Ｍ−１１２０不可視化処理モデュールの置換装置がＡ−００１ｂ内
2009288758.tif 000116
置はＡ−００４擬似ランダムビット生成器型置換装置（ロ）でなくても、例えば、
2009288758.tif 000117
を後述するＡ−３０３エクストラクタで単に調整するだけの擬似ランダムビット生成器としても良い。
【００３５】  図１９は図１５から図１８までに記載の全ての置換装置をＡ−００４擬似ランダムビット生成器型置換装置（ロ）に置き換えたものである。
全ての置換装置が同じ処理モデュールから構成されることによって、コンピュータ処理の上では効率的である。このように全ての置換装置を同じ処理方式で揃える場合は、非線型のタイプであればどれでも同様である。即ち、Ａ−００１ｂ内積型置換装置ｐでも良いし、Ａ−００４擬似ランダムビット生成器型置換装置（ロ）でも良いし、Ａ−００５擬似ランダムビット生成器型置換装置（ハ）でも良い。尚、ここで秘密鍵Ｓ１、Ｓ２は共に平文Ｍｉの不確定性を下回らない不確定性を有する。
【００３６】  図２０は秘密鍵のサイズが異なる場合のものである。
2009288758.tif 000118
全体は、
使い捨て公開変数ｒｉとＭ−１１００暗号鍵生成モデュールと暗号鍵Ｋｉから構成され、
Ｍ−１１００暗号鍵生成モデュールは、
2009288758.tif 000119
れ、
Ｍ−１１１０秘匿変数生成モデュールは
2009288758.tif 000120
擬似ランダムビット生成器型置換装置（ロ）から構成され、
Ｍ−１１２０非可逆処理モデュールは、
2009288758.tif 000121
擬似ランダムビット生成器型置換装置（ロ）から構成され、
2009288758.tif 000122
力して置換することによって暗号鍵Ｋｉを得る。
成分数（データ長）について
2009288758.tif 000123
その不確定性は
2009288758.tif 000124
成分数（データ長）について
2009288758.tif 000125
その不確定性は
2009288758.tif 000126
成分数（データ長）について
｜ｒｉ｜＜｜Ｒｉ｜
つまり使い捨て公開変数ｒｉの成分数｜ｒｉ｜は変数Ｒｉの成分数｜Ｒｉ｜を下回るから
2009288758.tif 000127
従ってその不確定性は
2009288758.tif 000128
Ａ−００４擬似ランダムビット生成器型置換装置（ロ）は広い意味での非線型で
2009288758.tif 000129
−００４擬似ランダムビット生成器型置換装置（ロ）の演算が法Ｎであるとすれ
2009288758.tif 000130
2009288758.tif 000131
通りに置換したものであるから、変数Ｒｉがわからない限り、どれが正しい変数鍵
2009288758.tif 000132
置（ロ）の処理がわかっているとして、入力値が一つであれば、攻撃者の計算能力に制限がないとした時、総当たり攻撃でＫｉとなる入力値を唯一に特定することが可能であるが、入力値が複数なのでその組み合わせを特定できない。
2009288758.tif 000133
の暗号化は完全秘匿である。
ところが、複数の暗号鍵Ｋｉが入手されれば、総当たり攻撃によって唯一の変数鍵
2009288758.tif 000134
を持つ。もし、その中にたった一つの組み合わせしか持たない値（暗号鍵Ｋｉの成
2009288758.tif 000135
とになる。
少しややこしいかもしれないので、もっと具体的に数字を入れて説明すると、
2009288758.tif 000136
トルではないとする。例えば、Ｒｉが十七と二十一と二十八の三つの値しかと
2009288758.tif 000137
六の内のいずれかである。次に入手されたＫｉが三十であれば、それに対応す
2009288758.tif 000138
従って、この装置および方法では暗号化に関し完全秘匿であり、秘密鍵の秘匿に関し計算量的完全秘匿性を持つ。
秘密鍵の秘匿に関し、計算量的完全秘匿性しか持たないものの、この装置および方法の良い点は、秘密鍵Ｓ１を小さくできることで、媒体等に搭載して持ち歩くことなく、パスワードや生体情報をキーボードあるいはバイオメトリクスの読み取り装置から入力して使うこともできることから、秘密鍵の管理が悪いことで秘密鍵情報が漏洩する危険を多少でも減じられることである。
但し、計算量的完全秘匿といっても従来方式では実現不可能なほど巨大な完全性を持つことができる。たとえば秘密鍵Ｓ２のデータ長が壱ＭＢであれば単純に八百三十八万八千六百八ビットを超える不確定性、つまり計算量的完全秘匿性を持つことになる。
2009288758.tif 000139
よりも二ビット不確定性が低くなるだけ）である。また置換装置について、非線
2009288758.tif 000140
（ハ）を組み合わせたものであっても同じである。
【００３７】  以上からＭ−１１１０秘匿変数生成モデュールとＭ−１１２０不可視化処理モデュールにおける置換装置について整理すると、
図２１はＭ−１１１０秘匿変数生成モデュールの構成と充当可能な置換装置を示したもので、秘密鍵または変数鍵をＳ１で表わしている。
2009288758.tif 000141
変数Ｖｉと、
Ｍ−１１１０秘匿変数生成モデュールと、
2009288758.tif 000142
から構成され、
Ｍ−１１１０秘匿変数生成モデュールは、
秘密鍵または変数鍵であるＳ１と、
置換装置（Ａ）と
から構成され、
2009288758.tif 000143
生成の都度ユニークな値をとる変数であり、成分数が｜ｒｉ｜（但し、｜ｒｉ｜＜｜Ｖｉ｜つまり｜ｒｉ｜は｜Ｖｉ｜を下回る）であるシードｒｉから擬似ランダムビット生成された数値または数ベクトルで、その不確定性がシードｒｉの不確定性に等しい
2009288758.tif 000144
つまり、Ｈ（Ｖｉ）は二を底とするＮの｜ｒｉ｜乗の対数（場合の数（確率の逆数）Ｎの｜ｒｉ｜乗のビット表記）で表わされる値
を持つものであるか、
または、
生成の都度ユニークな値をとる変数であり、成分数が｜Ｖｉ｜であり、その不確
2009288758.tif 000145
つまり、Ｈ（Ｖｉ）は二を底とするＮの｜Ｖｉ｜乗の対数（場合の数（確率の逆数）Ｎの｜Ｖｉ｜乗のビット表記）で表わされる値
を持つ数値または数ベクトル
であって、
秘密鍵または変数鍵であるＳ１は、法をＮとする時、
2009288758.tif 000146
つまり、Ｈ（Ｓ１）は二を底とするＮの｜Ｓ１｜乗の対数（場合の数（確率の逆数）Ｎの｜Ｓ１｜乗のビット表記）で表わされる値
を持つ数値または数ベクトルである秘密鍵Ｓ１
または
生成の都度ユニークな値である任意の変数で前記秘密鍵Ｓ１を置換した数値または数ベクトルであって、成分数｜Ｓ１｜であり、その不確定性Ｈ（Ｓ１）が
2009288758.tif 000147
つまり、Ｈ（Ｓ１）は二を底とするＮの｜Ｓ１｜乗の対数（場合の数（確率の逆数）Ｎの｜Ｓ１｜乗のビット表記）で表わされる値
2009288758.tif 000148
であって、
置換装置（Ａ）は、
二つ以上の入力値をベクトル和することによって置換するＡ−００１ａベク
2009288758.tif 000149
または、二つ以上の入力値を内積することによって、またはベクトル和およ
2009288758.tif 000150
または、二つ以上の入力値から擬似ランダムビット生成器を使って完全非可逆化した擬似ランダムビットを生成するＡ−００４擬似ランダムビット生成器型置換装置（ロ）か、
または、一つの入力値から擬似ランダムビット生成器を使って完全非可逆化した擬似ランダムビットを生成するＡ−００５擬似ランダムビット生成器型
2009288758.tif 000151
換装置
であり、
変数Ｖｉと一つ以上の秘密鍵または変数鍵であるＳ１を置換装置（Ａ）に入力して一
2009288758.tif 000152
を出力する。
2009288758.tif 000153
Ｈ（Ｓ１）はＨ（Ｖｉ）を下回らないから、変数Ｖｉよりも不確定性の大きい値で置換して
2009288758.tif 000154
りにおいてＨ（Ｓ１）に等しい。
【００３８】  図２２はＭ−１１２０不可視化処理モデュールの構成と充当可能な置換装置
2009288758.tif 000155
Ｍ−１１２０不可視化処理モデュールと、
暗号鍵Ｋｉと
から構成され、
Ｍ−１１２０不可視化処理モデュールは、
秘密鍵または変数鍵Ｓ２と、
置換装置（Ｂ）と
から構成され、
2009288758.tif 000156
Ｍ−１１１０秘匿変数生成モデュールによって入力値である変数Ｖｉ側からは秘匿された数値または数ベクトルであって、
法をＮとする時、
生成の都度ユニークな値をとるｒｉから生成された変数であることから秘匿変
2009288758.tif 000157
り、その不確定性が秘密鍵または変数鍵Ｓ１の不確定性に等しい不確定性
2009288758.tif 000158
数）Ｎの｜Ｓ１｜乗のビット表記）
に等しい不確定性を持つもの
であって、
2009288758.tif 000159
成分数｜Ｓ２｜（但し、｜Ｓ２｜＝｜Ｓ１｜つまり｜Ｓ２｜は｜Ｓ１｜に等しい）であり、その不確
2009288758.tif 000160
つまり、Ｈ（Ｓ２）は二を底とするＮの｜Ｓ２｜乗の対数（場合の数（確率の逆数）Ｎの｜Ｓ２｜乗のビット表記）
を持つ数値または数ベクトルである秘密鍵Ｓ２
または
生成の都度ユニークな値である任意の変数で前記秘密鍵Ｓ２を置換した数値または数ベクトルであって、成分数｜Ｓ２｜であり、その不確定性Ｈ（Ｓ２）が
2009288758.tif 000161
つまり、Ｈ（Ｓ２）は二を底とするＮの｜Ｓ２｜乗の対数（場合の数（確率の逆数）Ｎの｜Ｓ２｜乗のビット表記）
2009288758.tif 000162
であって、
置換装置（Ｂ）は、
二つ以上の入力値を和またはベクトル和することによって置換するＡ−００
2009288758.tif 000163
または、二つ以上の入力値を積または内積することによって置換するＡ−００１ｂ内積型置換装置ｐか、
または、二つ以上の入力値から擬似ランダムビット生成器を使って完全非可逆化した擬似ランダムビットを生成するＡ−００４擬似ランダムビット生成器型置換装置（ロ）か、
または一つの入力値から擬似ランダムビット生成器を使って完全非可逆化した擬似ランダムビットを生成するＡ−００５擬似ランダムビット生成器型置
2009288758.tif 000164
装置
であり、
2009288758.tif 000165
置換することによって秘匿暗号鍵Ｋｉを出力する。
2009288758.tif 000166
ともにＭ−１１１０秘匿変数生成モデュールの秘密鍵または変数鍵Ｓ１の不確定性
2009288758.tif 000167
モデュールによって秘匿された変数であるから、暗号鍵Ｋｉは完全秘匿である。
次に、置換装置（Ｂ）が数学的に線型の処理をするものであり、且つ、秘密鍵または変数鍵Ｓ２が固定値若しくは固定値と変数の組み合わせに変換可能な値であれば、入力値がたとえ全て秘匿されていたとしても、前述した通り、高々二つの暗
2009288758.tif 000168
号鍵Ｋと任意のｊをｉに加えたｉ＋ｊ番目の暗号鍵Ｋの二つの暗号鍵によって固定値若しくは固定値に還元される秘密鍵または変数鍵Ｓ２は容易に解読される。
秘密鍵または変数鍵Ｓ２を完全秘匿とするには、
秘密鍵または変数鍵Ｓ２が固定値若しくは固定値と変数の組み合わせに変換可能な値であれば、置換装置（Ｂ）は非線型の処理をする装置とするか、
または
置換装置（Ｂ）が線型の処理をする装置であれば、秘密鍵または変数鍵Ｓ２が固定値若しくは固定値と変数の組み合わせに変換できない値とする
ようにしなければならない。
そこで、秘密鍵または変数鍵Ｓ２が固定値若しくは固定値と変数の組み合わせに変換可能な値である処理は、図１０から図１３までに示した処理を典型とする処理である。この時、
Ｍ−１１２０不可視化処理モデュールの置換装置の処理が線型であれば、秘密鍵または変数鍵Ｓ２は解読可能であり、
Ｍ−１１２０不可視化処理モデュールの置換装置の処理が非線型であれば、秘密鍵または変数鍵Ｓ２は完全秘匿性を持つ。
秘密鍵または変数鍵Ｓ２が固定値着しくは固定値と変数の組み合わせに変換できない値とする処理は、
秘密鍵Ｓ２と、秘密鍵Ｓ２の不確定性と等しい不確定性を有する変数を非線型処理をする置換装置によって置換する
ことにより、これが図１４から図１９にまで示した処理を典型とする処理となる。
Ｍ−１１２０不可視化処理モデュールの置換装置の処理が線型でも非線型でも、
2009288758.tif 000169
暗号鍵Ｋｉの不確定性を下回らない限りにおいて、秘密鍵または変数鍵Ｓ２は完全秘匿である。
以上をまとめると、図２２の
Ｍ−１１２０不可視化処理モデュールにおいて秘密鍵または変数鍵Ｓ２が固定値若しくは固定値と変数の組み合わせに変換可能な処理である時、
置換装置（Ｂ）の処理が線型であれば、
2009288758.tif 000170
秘密鍵または変数鍵Ｓ２は高々二つの暗号鍵Ｋｉを入手することで容易に解読可能であることから、
置換装置（Ｂ）の処理を非線型とすることによって、
2009288758.tif 000171
またはＡ−００４擬似ランダムビット生成器型置換装置（ロ）、
またはＡ−００５擬似ランダムビット生成器型置換装置（ハ）とＡ−０
2009288758.tif 000172
とすることによって、
秘密鍵または変数鍵Ｓ２を完全秘匿とするか、
または、
秘密鍵または変数鍵Ｓ２が固定値若しくは固定値と変数の組み合わせに変換できない値とする処理とすることによって、即ち
秘密鍵または変数鍵Ｓ２が、秘密鍵Ｓ２と、秘密鍵Ｓ２の不確定性と等しい不確定性を有する変数を非線型処理をする置換装置、
2009288758.tif 000173
ダムビット生成器型置換装置（ロ）、またはＡ−００５擬似ランダムビット生成器型置換装置（ハ）とＡ−００１ａベクトル和型置換装
2009288758.tif 000174
によって置換して生成されるもの
とすることによって、
Ｍ−１１２０不可視化処理モデュールの置換装置の処理が線型でも非線型でも、
2009288758.tif 000175
はＡ−００５擬似ランダムビット生成器型置換装置（ハ）とＡ−００１
2009288758.tif 000176
として使っても、
秘密鍵または変数鍵Ｓ２を完全秘匿とする
【００３９】  上記の全体ををまとめて整理しなおすと、
置換装置の基本形は、ベクトル和または内積によって置換する装置と、擬似ランダムビット生成器を用いて置換する装置とがあり、
擬似ランダムビットを用いて置換する装置には、擬似ランダムビットを折畳若しくは抜取によって非線型化して置換するものと、擬似ランダムビット生成において内積の演算を含むことによって非線型化して置換するものとがある。
この内、擬似ランダムビットによって置換する方式の基本的な性能は、図４１（ａ）に示すように、一つの入力値ＡとＡ−００５擬似ランダムビット生成器型置換装置（ハ）と出力値Ｃからなり、関数ｆをＡからＣへの写像とするとき、ＡからＣは容易に算出されるが、その逆写像であるＣからＡへの写像は不確定性Ｈ（Ａ）の計算量的完全秘匿である。
入力値が二つの場合は、図４１（ｂ）に示すように、二つの入力値Ａ、ＢとＡ−００４擬似ランダムビット生成器型置換装置（ロ）と出力値Ｃからなり、関数ｆを（Ａ，Ｂ）からＣへの写像とするとき、（Ａ，Ｂ）からＣは容易に算出されるが、その逆写像であるＣから（Ａ，Ｂ）への写像は不確定性Ｈ（Ａ）またはＨ（Ｂ）の計算量的完全秘匿である。また、関数ｇをＡからＣへの写像とし、関数ｇ′をＢからＣへの写像とするとき、関数ｇおよび関数ｇ′は完全秘匿であり、それぞれの逆写像ｇ−１およびｇ′−１は不確定性Ｈ（Ａ）＋Ｈ（Ｂ）つまりＨ（Ａ）にＨ（Ｂ）を加えた値の計算量的完全秘匿である。
また、（Ａ，Ｃ）からＢへの写像を関数ｈとするとき、関数ｈは不確定性Ｈ（Ａ）またはＨ（Ｂ）の計算量的完全秘匿である。
【００４０】  そこで、暗号処理の装置のための置換装置および置換方法は、図４１（ｃ）から（ｇ）までに示す構造をとり、
置換装置（ｃ）は、二つの入力値を持つ擬似ランダムビット生成過程において折畳または抜取または内積を含む演算を行うことによって生成を非線型化するＡ−００４擬似ランダムビット生成器型置換装置（ロ）と、入力値である変数Ｖと、秘密鍵Ｓと、出力値Ｃとから構成され、変数Ｖと秘密鍵ＳとをＡ−００４擬似ランダムビット生成器型置換装置（ロ）に入力することに因って非線型化した演算を行って出力値Ｃを得るようにした暗号処理の方法のための置換処理の装置および／または方法であるか、または、
置換装置（ｄ）は、二つの入力値を素数ｐを法とする内積によって置換するＡ−
2009288758.tif 000177
変数Ｖと、ｐ−１（前記素数ｐから一を減じた値）を法とする秘密鍵Ｓと、ｐ−１（前記素数ｐから一を減じた値）を法とする出力値Ｃとから構成され、変数Ｖと
2009288758.tif 000178
内積して法ｐの出力値Ｃを得、その出力値Ｃを法ｐで各成分から一を減じることで法をｐ−１（前記素数ｐから一を減じた値）とする処理を行い、法をｐ−１（前記素数ｐから一を減じた値）とする出力値Ｃを得るようにした暗号処理の方法のための置換処理の装置および／または方法であるか、または、
置換装置（ｅ）は、二つの入力値を自然数Ｎを法とするベクトル和によって置換
2009288758.tif 000179
鍵Ｓをベクトル和して出力値Ｃを得るようにした暗号処理の方法のための置換処理の装置および／または方法であるか、または、
置換装置（ｆ）は、二つの入力値を自然数Ｎを法とするベクトル和によって置換
2009288758.tif 000180
値Ｃ′と、一つの入力値を持つ擬似ランダムビット生成過程において折畳または抜取または内積を含む演算を行うことによって生成を非線型化するＡ−００５擬似ランダムビット生成器型置換装置（ハ）と、出力値Ｃとから構成され、ＶＡとＶＢと
2009288758.tif 000181
そのＣ′をＡ−００５擬似ランダムビット生成器型置換装置（ハ）に入力して置換することによって出力値Ｃを得るようにした暗号処理の方法のための置換処理の装置および／または方法であるか、または、
置換装置（ｇ）は、二つの入力値を素数ｐを法とする内積によって置換するＡ−
2009288758.tif 000182
変数Ｖと、ｐ−１（前記素数ｐから一を減じた値）を法とする秘密鍵Ｓと、置換された値Ｃ′と、一つの入力値を持つ擬似ランダムビット生成過程において折畳または抜取または内積を含む演算を行うことによって生成を非線型化するＡ−００５擬似ランダムビット生成器型置換装置（ハ）と、出力値Ｃとから構成され、Ｖと
2009288758.tif 000183
そのＣ′をＡ−００５擬似ランダムビット生成器型置換装置（ハ）に入力して置換することによって出力値Ｃを得るようにした暗号処理の方法のための置換処理の装置および／または方法である。
【００４１】  それぞれの置換装置の性能は、
図４１（ｃ）に示す置換装置は、擬似ランダムビットを用いて置換する装置と、入力値である変数Ｖと秘密鍵Ｓと出力値Ｃからなり、関数ｆ：（Ｖ，Ｓ）→Ｃは容易に算出されるが、その逆写像ｆ−１：（Ｖ，Ｓ）←Ｃは計算量的完全秘匿である。ＶからＣへの写像ｇおよびＳからＣへの写像ｇ′はそれぞれ完全秘匿性を持ち、それぞれの逆写像ｇ−１およびｇ′−１は不確定性Ｈ（Ｖ）＋Ｈ（Ｓ）の計算量的完全秘匿である。更に、（Ｖ，Ｃ）からＳへの写像ｈ：（Ｖ，Ｃ）→Ｓは不確定性Ｈ（Ｖ）またはＨ（Ｓ）の計算量的完全秘匿である。
図４１（ｄ）に示す置換装置は、二つの入力値を内積によって置換する装置であって、関数ｆ：（Ｖ，Ｓ）→Ｃは容易に算出される。ＶからＣへの写像ｇおよびＳからＣへの写像ｇ′はそれぞれ完全秘匿性を持ち、それぞれの逆写像ｇ−１およびｇ′−１も完全秘匿である。但し、（Ｖ，Ｃ）からＳへの写像ｈ：（Ｖ，Ｃ）→Ｓは容易に算出される。
図４１（ｅ）に示す置換装置は、二つの入力値ＶＡ、ＶＢをベクトル和によって置換して出力値Ｃを出力する装置であって、関数ｆ：（ＶＡ，ＶＢ）→Ｃは容易に算出される。
ＶＡからＣへの写像ｇおよびＶＢからＣへの写像ｇ′はそれぞれ完全秘匿であり、それぞれの逆写像ｇ−１およびｇ′−１も完全秘匿である。但し、（ＶＡ，Ｃ）からＶＢへの写像ｈ：（ＶＡ，Ｃ）→ＶＢは容易に算出される。
図４１（ｆ）に示す置換装置は、二つの入力値ＶＡ、ＶＢをベクトル和によって置換した値Ｃ′を更に擬似ランダムビット生成器を用いる方式で置換して出力値Ｃを出力するようにした装置であって、関数ｆ：（ＶＡ，ＶＢ）→Ｃは容易に算出され、その逆写像ｆ−１：（ＶＡ，ＶＢ）←Ｃは計算量的完全秘匿である。また、ＶＡからＣへの写像ｇおよびＶＢからＣへの写像ｇ′はそれぞれ完全秘匿であり、それぞれの逆写像ｇ−１およびｇ′−１も完全秘匿である。更に、（ＶＡ，Ｃ）からＶＢへの写像ｈ：（ＶＡ，Ｃ）→ＶＢは不確定性Ｈ（Ｃ′）の計算量的完全秘匿である。
図４１（ｇ）に示す置換装置は、二つの入力値Ｖ、Ｓを内積によって置換した値Ｃ′を更に擬似ランダムビット生成器を用いる方式で置換して出力値Ｃを出力するようにした装置であって、関数ｆ：（Ｖ，Ｓ）→Ｃは容易に算出され、その逆写像ｆ−１：（Ｖ，Ｓ）←Ｃは計算量的完全秘匿である。また、ＶからＣへの写像ｇおよびＳからＣへの写像ｇ′はそれぞれ完全秘匿であり、それぞれの逆写像ｇ−１およびｇ′−１も完全秘匿である。更に、（Ｖ，Ｃ）からＳへの写像ｈ：（Ｖ，Ｃ）→Ｓは不確定性Ｈ（Ｃ′）の計算量的完全秘匿である。
ここで重要な点はが二つある。一つは、全ての置換装置が二つ（複数）の入力値を持つ点である。置換装置（ｃ）の場合を除いていずれの場合も、ベクトル和または内積が絡んでおり、出力値からはそれら二つの入力値を特定することができない（法Ｎとすれば入力値、出力値とも各成分がＮ通りずつ存在する）構造となっている。一つの入力値から一つの出力値を得る装置では、出力値が得られれば、計算量的に入力値を特定することが可能となることと対照的である。但し、ベクトル和のみの場合で、入力値の一つが固定値である場合は、もう一方の入力値が変数であっても二つの出力値から容易に全ての入力値を求めることができる。
また一つは、擬似ランダムビット生成器の絡んだ置換装置、つまり、置換装置（ｃ）、置換装置（ｆ）、置換装置（ｇ）は、出力値と一つの入力値が漏洩したとしても、もう一つの入力値が計算量的に解読不能である（すべての擬似ランダムビットを生成してみなければ値を特定できない）点である。
【００４２】  上記の置換装置を用いて、暗号文Ｅｉについて完全秘匿性を持たせると同時に、秘密鍵Ｓについて暗号文Ｅｉと平文Ｍｉが漏洩することによって暗号鍵Ｋｉの情報が漏洩したとしても完全秘匿性を持たせる暗号処理の装置および方法には図４１に示す装置および方法と図４２に示す装置及び方法があり、
図４２に示す暗号文および秘密鍵について完全秘匿である暗号処理の装置および方法は、
使い捨て公開変数ｒｉと、Ｍ−１１１０秘匿変数生成モデュールと、秘匿変数Ｋ′ｉと、Ｍ−１１２０不可視化処理モデュールと、暗号鍵Ｋｉと、平文Ｍｉと、Ａ−９０３置換装置Гと、暗号文Ｅｉとから構成され、
Ｍ−１１１０秘匿変数生成モデュールは、秘密鍵Ｓ１と、Ａ−９０１置換装置Ａとから構成され、
Ｍ−１１２０不可視化処理モデュールは、秘密鍵Ｓ２と、Ａ−９０２置換装置Ｂと、から構成され、
2009288758.tif 000184
を生成し、その変数Ｖｉと秘密鍵Ｓ１とをＡ−９０１置換装置Ａに入力して置換することによって秘匿変数Ｋ′ｉを生成し、その秘匿変数Ｋ′ｉと秘密鍵Ｓ２とをＡ−９０２置換装置Ｂに入力することによって暗号鍵Ｋｉを生成し、その暗号鍵Ｋｉと平文ＭｉをＡ−９０３置換装置Гに入力することに因って暗号文Ｅｉを生成するよう処理され、
Ａ−９０１置換装置Ａを、置換装置（ｃ）、置換装置（ｄ）、置換装置（ｅ）、置換装置（ｆ）、置換装置（ｇ）のいずれかから構成したことに因って変数Ｖｉからは秘匿変数Ｋ′ｉを推測不能とし、
Ａ−９０２置換装置Ｂを、置換装置（ｄ）または置換装置（ｇ）から構成するようにしたことに因って暗号鍵Ｋｉからは秘匿変数Ｋ′ｉも秘密鍵Ｓ２も情報理論的に逆算不能とし、
Ａ−９０１置換装置ＡとＡ−９０２置換装置Ｂを用いるようにしたことに因って秘密鍵Ｓ１と秘密鍵Ｓ２とを完全秘匿化し、
Ａ−９０３置換装置Гを、置換装置（ｄ）または置換装置（ｅ）から構成するようにしたことに因って暗号文Ｅｉを完全秘匿化するようにした暗号処理の装置及び方法である。
2009288758.tif 000185
開変数ｒｉとＡ−９０１置換装置Ａの間に入れるようにしても良い。擬似ランダムビット生成がブロック暗号よりも高速であることから、そのようにすることで暗号化の処理全体を高速化するとができ、
また同時に生成する変数に大きな不確定性を付与することが可能となり、秘密鍵を一つ漏洩した場合でも巨大な計算量を確保することで解読不能とすることができる。
2009288758.tif 000186
定性は平文Ｍｉの不確定性を下回らないから暗号文Ｅｉは完全秘匿である。またこ
2009288758.tif 000187
捨て公開変数ｒｉの不確定性を下回らないことから、ｒｉからはＫ′ｉを推測できず、また、暗号鍵Ｋｉからは法ｐによる内積（（ａｉ，ｂｉ）≠（０，０）つまり、入力値の成分に零が含まれない演算とする）の非線型性と演算結果の一様性により演算結果の成分の不確定性が演算する成分の不確定性を下回らないことから情報理論的にＫ′ｉを求めることができず、そのことによって、秘密鍵Ｓ１およびＳ２は暗号文Ｅｉとその平文Ｍｉが漏洩したとしても完全秘匿となる。
尚、暗号鍵Ｋｉからの逆算において、ベクトル和による場合も演算結果に一様性が
2009288758.tif 000188
回らない自然数）の連立方程式によって容易に差分が求まり、その結果、秘密鍵Ｓ２がＮ通りで解読されてしまうので使えない。
また、この方式ではいずれか一つの秘密鍵が漏洩すれば、もう一つの秘密鍵も解読可能となる。Ｓ１が漏洩すればＳ２の置換装置が置換装置（ｄ）であればＳ２は容易に求まり、Ｓ２の置換装置が置換装置（ｇ）であれば計算量的完全秘匿である。Ｓ２が漏洩したとき、Ｓ１の置換装置が置換装置（ｅ）または置換装置（ｄ）であれば容易にＳ１は求まり、Ｓ２の置換装置が置換装置（ｃ）、置換装置（ｆ）、置換装置（ｇ）のいずれかであればＳ１は計算量的完全秘匿である。また秘密鍵の計算量的完全秘匿が成立している間は、暗号文は尚も完全秘匿である。
当然ここで、生成過程をもう一段階増やして、秘密鍵を３つ用いるようにすれば、いずれか一つの秘密鍵が漏洩したり若しくはその秘密鍵を用いる置換装置が故障しても尚完全秘匿とすることも可能である。
【００４３】  図４３に示す暗号処理の装置および方法は、
使い捨て公開変数ｒｉと、Ａ−３０１セパレータと、変数Ｖｉ１と、変数Ｖｉ２と、Ｍ−１１１０秘匿変数生成モデュールと、秘匿変数Ｋ′ｉ１と、秘匿変数Ｋ′ｉ２と、Ｍ−１１２０不可視化処理モデュールと、暗号鍵Ｋｉと、平文Ｍｉと、Ａ−９０３置換装置Γと、暗号文Ｅｉとから構成され、
Ｍ−１１１０秘匿変数生成モデュールは、秘密鍵Ｓ１と、秘密鍵Ｓ２と、Ａ−９０１置換装置Ａ１と、Ａ−９０１置換装置Ａ２とから構成され、
Ｍ−１１２０不可視化処理モデュールは、Ａ−９０２置換装置Ｂから構成され、
使い捨て公開変数ｒｉをＡ−３０１セパレータで分割して変数Ｖｉ１と変数Ｖｉ２とを生成し、その変数Ｖｉ１と秘密鍵Ｓ１とをＡ−９０１置換装置Ａ１に入力して置換することによって秘匿変数Ｋ′ｉ１を生成し、同時に変数Ｖｉ２と秘密鍵Ｓ２とをＡ−９０１置換装置Ａ２に入力して置換することによって秘匿変数Ｋ′ｉ２を生成し、その秘匿変数Ｋ′ｉ１と秘匿変数Ｋ′ｉ２とをＡ−９０２置換装置Ｂに入力することによって置換して暗号鍵Ｋｉを生成し、その暗号鍵Ｋｉと平文ＭｉとをＡ−９０３置換装置Γに入力することによって置換して暗号文Ｅｉを生成するよう処理され、
Ａ−９０１置換装置Ａ１およびＡ−９０１置換装置Ａ２を、置換装置（ｃ）、置換装置（ｄ）、置換装置（ｅ）、置換装置（ｆ）、置換装置（ｇ）のいずれかから構成したことに因って変数Ｖｉからは秘匿変数Ｋ′ｉを推測不能とし、
Ａ−９０２置換装置Ｂを、置換装置（ｄ）、置換装置（ｅ）、置換装置（ｆ）、置換装置（ｇ）のいずれかから構成するようにしたことに因って暗号鍵Ｋｉからは秘匿変数Ｋ′ｉも秘密鍵Ｓ２も情報理論的に逆算不能とし、
Ａ−９０１置換装置Ａ１およびＡ−９０１置換装置Ａ２とＡ−９０２置換装置Ｂを用いるようにしたことに因って、
但し、Ａ−９０１置換装置Ａ１およびＡ−９０１置換装置Ａ２が置換装置（ｅ）であればＡ−９０２置換装置Ｂは置換装置（ｃ）、置換装置（ｄ）、置換装置（ｆ）、置換装置（ｇ）のいずれかとし、Ａ−９０２置換装置Ｂが置換装置（ｅ）であればＡ−９０１置換装置Ａ１およびＡ−９０１置換装置Ａ２は置換装置（ｃ）、置換装置（ｄ）、置換装置（ｆ）、置換装置（ｇ）のいずれかとすることに因って、
秘密鍵Ｓ１と秘密鍵Ｓ２とを完全秘匿化し、
Ａ−９０３置換装置Γを、置換装置（ｄ）または置換装置（ｅ）から構成するようにしたことに因って暗号文Ｅｉを完全秘匿化するようにした暗号処理の装置及び方法である。
2009288758.tif 000189
開変数ｒｉとＡ−３０１セパレータの間に入れるようにしても良い。そのようにすることで送信する使い捨て公開変数ｒｉのサイズをより小さく（概ね半分に）することができる。
図４３においてＭ−１１１０秘匿変数生成モデュールの置換装置は図４２の場合と同じであるが、Ｍ−１１２０不可視化処理モデュールの置換装置は選択の幅が広がっている。但し、Ｍ−１１１０秘匿変数生成モデュール、Ｍ−１１２０不可視化処理モデュールの置換装置が両者ともベクトル和である場合、つまり置換装置（ｅ）である場合には、一つの変数と一つの秘密鍵の組み合わせとなるため、２つの暗号鍵から容易に秘密鍵が解読されてしまう。また、いずれかの秘密鍵が漏洩すると他の秘密鍵も解読可能となることは図４２の場合と同じであり、そのときＭ−１１１０秘匿変数生成モデュールの置換装置が置換装置（ｃ）、置換装置（ｆ）、置換装置（ｇ）のいずれかであればもう一方の秘密鍵は計算量的完全秘匿であり、暗号化は尚も完全秘匿である。
当然ここで、生成過程をもう一段階増やして、秘密鍵を３つ用いるようにすれば、いずれか一つの秘密鍵が漏洩したり若しくはその秘密鍵を用いる置換装置が故障しても尚完全秘匿とすることも可能である。
【００４４】  また、暗号文Ｅｉについて完全秘匿性を持たせると同時に、秘密鍵Ｓについて暗号文Ｅｉと平文Ｍｉが漏洩することによって暗号鍵Ｋｉの情報が漏洩したとしても計算量的完全秘匿性を持たせる暗号処理の装置および方法には図４１に示す装置および方法と図４２に示す装置及び方法と図４３に示す装置及び方法と図４４に示す装置及び方法があり、
図４２に示す装置および方法において暗号文について完全秘匿性を持たせると同時に、秘密鍵について暗号文と平文が漏洩することによって暗号鍵の情報が漏洩したとしても計算量的完全秘匿性を持たせる暗号処理の装置および方法は、使い捨て公開変数ｒｉと、Ｍ−１１１０秘匿変数生成モデュールと、秘匿変数Ｋ′ｉと、Ｍ−１１２０不可視化処理モデュールと、暗号鍵Ｋｉと、平文Ｍｉと、Ａ−９０３置換装置Γと、暗号文Ｅｉとから構成され、
Ｍ−１１１０秘匿変数生成モデュールは、秘密鍵Ｓ１と、Ａ−９０１置換装置Ａとから構成され、
Ｍ−１１２０不可視化処理モデュールは、秘密鍵Ｓ２と、Ａ−９０２置換装置Ｂと、から構成され、
使い捨て公開変数ｒｉと秘密鍵Ｓ１とをＡ−９０１置換装置Ａに入力して置換することによって秘匿変数Ｋ′ｉを生成し、その秘匿変数Ｋ′ｉと秘密鍵Ｓ２とをＡ−９０２置換装置Ｂに入力することによって暗号鍵Ｋｉを生成し、その暗号鍵Ｋｉと平文ＭｉをＡ−９０３置換装置Γに入力することに因って暗号文Ｅｉを生成するよう処理され、
Ａ−９０１置換装置Ａを、置換装置（ｃ）、置換装置（ｄ）、置換装置（ｅ）、置換装置（ｆ）、置換装置（ｇ）のいずれかから構成したことに因って変数Ｖｉからは秘匿変数Ｋ′ｉを推測不能とし、
Ａ−９０２置換装置Ｂを、置換装置（ｃ）または置換装置（ｆ）から構成するようにしたことに因って暗号鍵Ｋｉからは秘匿変数Ｋ′ｉも秘密鍵Ｓ２も計算量的に逆算不能とし、
Ａ−９０１置換装置ＡとＡ−９０２置換装置Ｂを用いるようにしたことに因って秘密鍵Ｓ１と秘密鍵Ｓ２とを計算量的完全秘匿化し、
Ａ−９０３置換装置Γを、置換装置（ｄ）または置換装置（ｅ）から構成するようにしたことに因って暗号文Ｅｉを完全秘匿化するようにした暗号処理の装置及び方法である。
2009288758.tif 000190
Ｖｉを使い捨て公開変数ｒｉとＡ−９０１置換装置Ａの間に入れるようにしても良い。
この方式は図４２のＭ−１１２０不可視化処理モデュールの置換装置を置換装置（ｄ）または置換装置（ｇ）から、置換装置（ｃ）または置換装置（ｆ）に替えたものである。このとき、暗号鍵Ｋｉがわかれば擬似ランダムビット型置換装置の特性によって、攻撃者の計算能力に制限がないとすれば計算量的に一つの入力値を求めることが可能であることから、置換装置（ｃ）の場合はそこから容易にＫ′ｉとＳ２が求まり、置換装置（ｆ）の場合でも二つの暗号鍵が入手されれば容易にＫ′ｉとＳ２が求まる。従って、秘密鍵に関し計算量的完全秘匿性しかない。
また、この方式では一方の秘密鍵が漏洩してももう一方の秘密鍵は必ず計算量的完全秘匿である。但し、この時、例えば秘密鍵が一メガバイトであれば、八百三十八万八千六百八ビットの不確定性（即、情報理論的エントロビー）となる。
当然ここで、生成過程をもう一段階増やして、秘密鍵を３つ用いるようにすれば、いずれか一つの秘密鍵が漏洩したり若しくはその秘密鍵を用いる置換装置が故障しても尚完全秘匿とすることも可能である。
【００４５】  図４３に示す装置および方法において暗号文について完全秘匿性を持たせると同時に、秘密鍵について暗号文と平文が漏洩することによって暗号鍵の情報が漏洩したとしても計算量的完全秘匿性を持たせる暗号処理の装置および方法は、使い捨て公開変数ｒｉと、Ａ−３０１セパレータと、変数Ｖｉ１と、変数Ｖｉ２と、Ｍ−１１１０秘匿変数生成モデュールと、秘匿変数Ｋ′ｉ１と、秘匿変数Ｋ′ｉ２と、Ｍ−１１２０不可視化処理モデュールと、暗号鍵Ｋｉと、平文Ｍｉと、Ａ−９０３置換装置Γと、暗号文Ｅｉとから構成され、
Ｍ−１１１０秘匿変数生成モデュールは、秘密鍵Ｓ１と、秘密鍵Ｓ２と、Ａ−９０１置換装置Ａ１と、Ａ−９０１置換装置Ａ２とから構成され、
Ｍ−１１２０不可視化処理モデュールは、Ａ−９０２置換装置Ｂから構成され、
使い捨て公開変数ｒｉをＡ−３０１セパレータで分割して変数Ｖｉ１と変数Ｖｉ２とを生成し、その変数Ｖｉ１と秘密鍵Ｓ１とをＡ−９０１置換装置Ａ１に入力して置換することによって秘匿変数Ｋ′ｉ１を生成し、同時に変数Ｖｉ２と秘密鍵Ｓ２とをＡ−９０１置換装置Ａ２に入力して置換することによって秘匿変数Ｋ′ｉ２を生成し、その秘匿変数Ｋ′ｉ１と秘匿変数Ｋ′ｉ２とをＡ−９０２置換装置Ｂに入力することによって置換して暗号鍵Ｋｉを生成し、その暗号鍵Ｋｉと平文ＭｉとをＡ−９０３置換装置Γに入力することによって置換して暗号文Ｅｉを生成するよう処理され、
Ａ−９０１置換装置Ａ１およびＡ−９０１置換装置Ａ２を、置換装置（ｃ）、置換装置（ｄ）、置換装置（ｅ）、置換装置（ｆ）、置換装置（ｇ）のいずれかから構成したことに因って変数Ｖｉからは秘匿変数Ｋ′ｉを推測不能とし、
Ａ−９０２置換装置Ｂを、置換装置（ｃ）から構成するようにしたことに因って暗号鍵Ｋｉからは秘匿変数Ｋ′ｉも秘密鍵Ｓ２も計算量的に逆算不能とし、Ａ−９０１置換装置Ａ１およびＡ−９０１置換装置Ａ２とＡ−９０２置換装置Ｂを用いるようにしたことに因って、
秘密鍵Ｓ１と秘密鍵Ｓ２とを計算量的完全秘匿化し、
Ａ−９０３置換装置Γを、置換装置（ｄ）または置換装置（ｅ）から構成するようにしたことに因って暗号文Ｅｉを完全秘匿化するようにした暗号処理の装置及び方法である。
2009288758.tif 000191
数Ｖｉを使い捨て公開変数ｒｉとＡ−３０１セパレータの間に入れるようにしても良い。
これはＭ−１１２０不可視化処理モジュールの置換装置を置換装置（ｄ）、置換装置（ｅ）、置換装置（ｆ）、置換装置（ｇ）のいずれかから、置換装置（ｃ）に替えたものであって、攻撃者の計算能力に制限がないとすれば計算量的に一つの入力値を求めることが可能であり、そこから置換装置（ｃ）の場合は容易にＫ′ｉとＫ″ｉが求まる。次に、Ｍ−１１１０秘匿変数生成モジュールが置換装置（ｅ）または置換装置（ｄ）の場合は容易にＳ１とＳ２が求まり、置換装置（ｃ）、置換装置（ｆ）、置換装置（ｇ）のいずれかの場合には計算量的にＳ１とＳ２を求めることが可能である。
この方式でも、一方の秘密鍵が漏洩してももう一方の秘密鍵は少なくとも秘密鍵の不確定性による計算量的完全秘匿である。この時、例えば秘密鍵が一メガバイトであれば、少なくとも八百三十八万八千六百八ビットの不確定性（即、情報理論的エントロピー）となる。当然、Ｍ−１１２０不可視化処理モジュールが置換装置（ｄ）、置換装置（ｅ）、置換装置（ｆ）、置換装置（ｇ）のいずれかであれば完全秘匿となる。
当然ここで、生成過程をもう一段階増やして、秘密鍵を３つ用いるようにすれば、いずれか一つの秘密鍵が漏洩したり着しくはその秘密鍵を用いる置換装置が故障しても尚完全秘匿とすることも可能である。
【００４６】  図４４に示す装置および方法において暗号文について完全秘匿性を持たせると同時に、秘密鍵について暗号文と平文が漏洩することによって暗号鍵の情報が漏洩したとしても計算量的完全秘匿性を持たせる暗号処理の装置および方法は、使い捨て公開変数ｒｉと、Ｍ−１１１０秘匿変数生成モデュールと、変数Ｒｉと、Ａ
2009288758.tif 000192
化処理モデュールと、暗号鍵Ｋｉと、平文Ｍｉと、Ａ−９０３置換装置Γと、暗号文Ｅｉとから構成され、
Ｍ−１１１０秘匿変数生成モデュールは、秘密鍵Ｓ１と、Ａ−９０１置換装置Ａとから構成され、
Ｍ−１１２０不可視化処理モデュールは、秘密鍵Ｓ２と、Ａ−９０２置換装置Ｂとから構成され、
使い捨て公開変数ｒｉと秘密鍵Ｓ１とをＡ−９０１置換装置Ａに入力して置換することによって変数Ｒｉを生成し、その変数ＲｉからＡ−００２擬似ランダムビット生成
2009288758.tif 000193
２置換装置Ｂに入力することによって暗号鍵Ｋｉを生成し、その暗号鍵Ｋｉと平文ＭｉをＡ−９０３置換装置Γに入力することに因って暗号文Ｅｉを生成するよう処理され、
Ａ−９０１置換装置Ａを、置換装置（ｃ）、置換装置（ｄ）、置換装置（ｅ）、置換装置（ｆ）、置換装置（ｇ）のいずれかから構成したことに因って使い捨て公開変数ｒｉからは秘匿変数Ｋ′ｉを推測不能とし、
Ａ−９０２置換装置Ｂを、置換装置（ｃ）、置換装置（ｄ）、置換装置（ｆ）、置換装置（ｇ）のいずれかから構成するようにしたことに因って暗号鍵Ｋｉからは秘匿変数Ｋ′ｉも秘密鍵Ｓ２も計算量的に逆算不能とし、
Ａ−９０１置換装置ＡとＡ−９０２置換装置Ｂを用いるようにしたことに因って秘密鍵Ｓ１と秘密鍵Ｓ２とを計算量的完全秘匿化し、
Ａ−９０３置換装置Γを、置換装置（ｄ）または置換装置（ｅ）から構成するようにしたことに因って暗号文Ｅｉを完全秘匿化するようにした暗号処理の装置及び方法である。
当然ここで、生成過程をもう一段階増やして、秘密鍵を３つ用いるようにすれば、いずれか一つの秘密鍵が漏洩したり若しくはその秘密鍵を用いる置換装置が故障しても尚完全秘匿とすることも可能である。
【００４７】  図４５に示す装置および方法において暗号文について完全秘匿性を持たせると同時に、秘密鍵について暗号文と平文が漏洩することによって暗号鍵の情報が漏洩したとしても計算量的完全秘匿性を持たせる暗号処理の装置および方法は、使い捨て公開変数ｒｉと、Ａ−３０１セパレータと、変数Ｖｉ１と、変数Ｖｉ２と、Ｍ−１１１０秘匿変数生成モデュールと、変数Ｒｉと、秘匿変数Ｋ′ｉ１と、秘匿変数Ｋ′ｉ２と、Ｍ−１１２０不可視化処理モデュールと、暗号鍵Ｋｉと、平文Ｍｉと、Ａ−９０３置換装置Γと、暗号文Ｅｉとから構成され、
Ｍ−１１１０秘匿変数生成モデュールは、秘密鍵Ｓ１と、秘密鍵Ｓ２と、Ａ−９０１置換装置Ａ１と、Ａ−９０１置換装置Ａ２とから構成され、
Ｍ−１１２０不可視化処理モデュールは、Ａ−９０２置換装置Ｂとから構成され、
使い捨て公開変数ｒｉをＡ−３０１セパレータで分割して変数Ｖｉ１と変数Ｖｉ２とを生成し、その変数Ｖｉ１と秘密鍵Ｓ１とをＡ−９０１置換装置Ａ１に入力して置換することによって秘匿変数Ｋ′ｉ１を生成し、同時に変数Ｖｉ２と秘密鍵Ｓ２とをＡ−９０１置換装置Ａ２に入力して置換することによって変数Ｒｉを生成し、その変数Ｒｉか
2009288758.tif 000194
秘匿変数Ｋ′ｉ１と秘匿変数Ｋ′ｉ２とをＡ−９０２置換装置Ｂに入力することによって置換して暗号鍵Ｋｉを生成し、その暗号鍵Ｋｉと平文ＭｉとをＡ−９０３置換装置Γに入力することによって置換して暗号文Ｅｉを生成するよう処理され、
Ａ−９０１置換装置Ａ１およびＡ−９０１置換装置Ａ２を、置換装置（ｃ）、置換装置（ｄ）、置換装置（ｅ）、置換装置（ｆ）、置換装置（ｇ）のいずれかから構成したことに因って変数Ｖｉからは秘匿変数Ｋ′ｉを推測不能とし、
Ａ−９０２置換装置Ｂを、置換装置（ｃ）から構成するようにしたことに因って暗号鍵Ｋｉからは秘匿変数Ｋ′ｉも秘密鍵Ｓ２も計算量的に逆算不能とし、
Ａ−９０１置換装置Ａ１およびＡ−９０１置換装置Ａ２とＡ−９０２置換装置Ｂを用いるようにしたことに因って、
秘密鍵Ｓ１と秘密鍵Ｓ２を不確定性がＨ（Ｓ１）＋Ｈ（Ｓ２）で計算量的完全秘匿化し、
但し、このとき
2009288758.tif 000195
つまり、秘密鍵Ｓ１の不確定性Ｈ（Ｓ１）は変数Ｖｉ１の不確定性Ｈ（Ｖｉ１）を下回らず、かつ秘匿変数Ｋ′ｉ１の不確定性Ｈ（Ｋ′ｉ１）および暗号鍵Ｋｉの不確定性Ｈ（Ｋｉ）と等しく、
且つ、秘密鍵Ｓ２の不確定性Ｈ（Ｓ２）は変数Ｖｉ２の不確定性Ｈ（Ｖｉ２）を下回らず、かつ変数Ｒｉの不確定性Ｈ（Ｒｉ）および秘匿変数Ｋ′ｉ２の不確定性Ｈ（Ｋ′ｉ２）と等しく、かつ暗号鍵Ｋｉの不確定性Ｈ（Ｋｉ）を下回り、
且つ、暗号鍵Ｋｉの不確定性Ｈ（Ｋｉ）は平文Ｍｉの不確定性Ｈ（Ｍｉ）を下回らないものとし、
Ａ−９０３置換装置Γを、置換装置（ｄ）または置換装置（ｅ）から構成するようにしたことに因って暗号文Ｅｉを完全秘匿化するようにした暗号処理の装置及び方法である。
2009288758.tif 000196
開変数ｒｉとＡ−３０１セパレータの間に入れるようにしても良い。そのようにすることで送信する使い捨て公開変数ｒｉのサイズをより小さくすることができる。
当然ここで、生成過程をもう一段階増やして、秘密鍵を３つ用いるようにすれば、いずれか一つの秘密鍵が漏洩したり若しくはその秘密鍵を用いる置換装置が故障しても尚完全秘匿とすることも可能である。
【００４８】  上記の装置及び方法を成立させるための擬似ランダムビット生成器を含む置換装置の論理および構成と処理は、
2009288758.tif 000197
回らない素数）を法として積または内積することによって置換し、まったく異なる数値または全く異なる値からなる成分を持つ数ベクトルとして出力するものである。
【００４９】  何故ならば、
2009288758.tif 000198
つまり、零を含む任意の自然数ａ，ｂ，ｃがあり、法が二を下回らない自然数Ｎであるときａ＋ｂ≡ｃつまり、ａにｂを加えたものはｃに合同であることが成り立つならば、ｃの不確定性はｌｏｇ２Ｎつまり、二を底とするＮの対数（場合の数（確率の逆数）Ｎのビット表記）であり、かつａの不確定性Ｈ（ａ）とｂの不確定性Ｈ（ｂ）は、それぞれ全てｌｏｇ２Ｎつまり二を底とするＮの対数（場合の数（確率の逆数）Ｎのビット表記）に写される。
また、任意の自然数ａ，ｂ，ｃがあり、法を三を下回らない素数ｐとするとき
ａ×ｂ≡ｃつまり、ａにｂをかけたものがｃに合同）が成り立つならば、ｃの不確定性はｌｏｇ２（ｐ−１）つまり二を底とするｐから一を減じた値の対数（場合の数（確率の逆数）ｐ−１（ｐから一を減じた値）のビット表記）であり（法ｐの場合については、零を含む積の演算では演算結果が零に偏り一様分布にならないため、一からｐまでのｐ−１（ｐから一を減じた値）個の値を演算対象としなければならない。従ってその不確定性はｌｏｇ２（ｐ−１）つまり二を底とするｐから一を減じた値の対数（場合の数（確率の逆数）ｐ−１（ｐから一を減じた値）のビット表記）となり、かつａの不確定性Ｈ（ａ）とｂの不確定性Ｈ（ｂ）は、それぞれ全てｌｏｇ２（ｐ−１）つまり二を底とするｐから一を減じた値の対数（場合の数（確率の逆数）ｐ−１（ｐから一を減じた値）のビット表記）に写されることによる。つまり、Ｎ通りの入力値に対してＮ通りの出力値が得られ、ｐ−１（ｐから一を減じた値）通りの入力値からはｐ−１（ｐから一を減じた値）通りの出力値が得られる。
【００５０】  但し、二つの入力値であるベクトルの成分数が同じであっても、その不確定性が異なる場合、少なくとも不確定性の大きな方のベクトルが秘匿される限りにおいて、出力されたベクトルの不確定性は、その大きな不確定性に等しくなる。
このことを図２３を使って説明すると、
Ａはシードの集合。Ｂは秘密鍵の集合。Ｃは暗号鍵の見かけの集合。ＤはシードＡから生成された擬似ランダムビット列の集合。Ｅは秘密鍵をシードで置換したベクトルの集合であって暗号鍵の実際の集合。とする。この時、それぞれの集合に含まれる成分（黒い点）の数は、それぞれの集合の成分が取りうる場合の数であり、それぞれの集合の成分の不確定性に対数で比例している（点がＮ個あれば、その不確定性はｌｏｇ２Ｎ（二を底とするＮの対数。場合の数（確率の逆数）Ｎのビット表記））ものとする。
集合Ｄにおいて、擬似ランダムビット列生成器が全単写であれば、当然、生成される成分数はシードである集合Ａの成分数に等しいので、集合Ｄの成分の不確定性は集合Ａの成分の不確定性に等しく、この不確定性は集合Ａのベクトルの二進の成分数に等しい。ところが、集合Ｄの成分であるベクトルの成分数は秘密鍵Ｂの成分であるベクトルの成分数を下回らない。
集合Ｅは、集合Ａの各成分が集合Ｂの成分φを置換することによって作られる写像である。従って、集合Ｅの成分数と集合Ａの成分数は等しく、また、集合Ａと集合Ｄの間の関係と同様に、集合Ｅの成分の不確定性と集合Ａの成分の不確定性は等しい。ところが、集合Ｂにおいて成分φ以外の任意の成分φ′をとってきて置換による集合Ａの写像Ｅ’（Ｅプライム）を考えると、Ｅ’（Ｅプライム）はＥとは別の新しい集合を作る。すると、集合Ｂの成分数がｎであれば、それらの置換によって生成される集合はＥ（０）（Ｅの零プライム）からＥ（ｎ−１）（Ｅのｎ−１（ｎから一を減じた値）プライム）までｎ個存在することになる。今、集合Ａの成分数をｍとすれば、集合Ｃの成分数はｍｎ（ｍにｎを掛けた値）ということになるが、任意の数Ｎを法とする世界では集合Ｂを置換した集合Ｃの不確定性は集合Ｂの不確定性を上回ることはないので、結局その成分数は集合Ｂの成分数と等しくｎとなる（つまり、（ｍｎ−ｎ）＝（ｍ−１）ｎ（ｍにｎを掛けた値からｎを減じた値はｍから一を減じた値にｎを掛けた値に等しい）個は重複した成分）。そうであるならば、集合Ｂが秘匿される限りにおいて集合Ｅの成分を計算量的に特定することはできず（完全秘匿）、従って、その時に限り集合Ｅの成分の不確定性は集合Ｂの成分の不確定性を下回らない。
従って、ここで置換という操作を考えると、集合Ｂが真正ランダムであれば、それを集合Ａで置換した集合Ｅは、やはり真正ランダムということになる。
つまり、ある擬似ランダムビット列である秘密鍵を置換することによって生成されたベクトルの不確定性は、その秘密鍵が秘匿される限りにおいてその秘密鍵の不確定性に等しい。
【００５１】  そこで置換装置について図２４を使って説明すると、
入力されたベクトルＡ，Ｂに対し、それぞれの成分の内の同じ次元の値を法Ｎ（Ｎ
2009288758.tif 000199
は内積または和またはベクトル和を行うことにより、ベクトルＣを生成する装置であると言える。この時、ベクトルＣの不確定性は、法Ｎのときｌｏｇ２Ｎつまり二を底とするＮの対数（場合の数（確率の逆数）Ｎのビット表記）となり、法ｐのときはｌｏｇ２（ｐ−１）つまり二を底とするｐから一を減じた値の対数（場合の数（確率の逆数）ｐ−１（ｐから一を減じた値）のビット表記）であることは前述したとおりである。
【００５２】
2009288758.tif 000200
図２４において、
複数の入力値であるベクトルＡ，Ｂに対して出力値がベクトルＣとするとき、
Ａ，Ｂを、
二を下回らない自然数Ｎを法として
ベクトル和
するか、
または三を下回らない素数ｐを法として
内積するか
またはベクトル和および内積して
ベクトルＣとして出力することによって、
即ち、入力された二つのベクトルである
Ａ−１０１Ａ＝（ａｉ）ｉ＝１，２，．．．，ｎ、つまり任意の成分がａｉで表わされるｎ個の成分からなるベクトルＡ
およびＡ−１０１Ｂ＝（ｂｉ）ｉ＝１，２，．．．，ｎ、つまり任意の成分がｂｉで表わされるｎ個の成分からなるベクトルＢ
に対し、
それぞれの成分の内の同じ次元同士の値を
2009288758.tif 000201
積と和の演算を行い、
各成分を次元の順に並べてベクトルＡ−１０２Ｃ＝（ｃｉ）ｉ＝１，２，．．．，ｎつまり任意の成分がｃｉで表わされるｎ個の成分からなるベクトルＣの出力を得、
そのことによって、ベクトルＡの不確定性Ｈ（Ａ）とベクトルＢの不確定性Ｈ（Ｂ）が異
2009288758.tif 000202
Ｈ（Ｃ）つまりＨ（Ｂ）はＨ（Ｃ）と等しく、且つ、Ｈ（Ｂ）とＨ（Ｃ）はＨ（Ａ）を下回らず、即ちベクトルＣの不確定性Ｈ（Ｃ）がベクトルＢの不確定性Ｈ（Ｂ）と等しくなる
ように置換する装置である。
【００５３】  ここで、特に積または内積の演算は、図３７で説明すると、
2009288758.tif 000203
入力値であるベクトルＡ，Ｂに対して出力値がベクトルＣとすると、
ベクトルＡ，Ｂが共にｐ−１（ｐから一を減じた値）を法とするベクトルあるとき、
2009288758.tif 000204
ｐ−１を法とするＡ−１０１Ａ＝（ａｉ）ｉ＝１，２，．．．，ｎ
つまり任意の成分がａｉで表わされるｎ個の成分からなるベクトルＡ
およびＡ−１０１Ｂ＝（ｂｉ）ｉ＝１，２，．．．，ｎ
つまり任意の成分がｂｉで表わされるｎ個の成分からなるベクトルＢ
の各成分にｐを法として一を加えることで、ｐを法とするベクトルＡ−１０３
Ａ′＝（ａ′ｉ）ｉ＝１，２，．．．，ｎ
つまり任意の成分がａ′ｉで表わされるｎ個の成分からなるベクトルＡ′
およびＡ−１０３Ｂ′＝（ｂ′ｉ）ｉ＝１，２，．．．，ｎ
つまり任意の成分ががｂｉで表わされるｎ個の成分からなるベクトルＢ′
（但し、（ａ′ｉ，ｂ′ｉ）≠（０，０）、つまりベクトルＡ′およびＢ′の成分には０は含まれていない）を生成し、
ベクトルＡ−１０３Ａ′＝（ａ′ｉ）ｉ＝１，２，．．．，ｎ
つまり任意の成分がａ′ｉで表わされるｎ個の成分からなるベクトルＡ′
およびＡ−１０３Ｂ′＝（ｂ′ｉ）ｉ＝１，２，．．．，ｎ
つまり任意の成分がｂ′ｉで表わされるｎ個の成分からなるベクトルＢ′
のそれぞれの成分の内の同じ次元同士の値をｐを法として積で演算し、演算結果として出力されたベクトルＡ−１０３Ｃ′＝（ｃ′ｉ）ｉ＝１，２，．．．，ｎ
つまり任意の成分がｃ′ｉで表わされるｎ個の成分からなるベクトルＣ′
の各成分の値からｐを法として一を引いた値を生成することで実質的に法をｐ−１（ｐから一を減じた値）とし、
法をｐ−１（ｐから一を減じた値）とするベクトルＡ−１０２Ｃ＝（ｃｉ）ｉ＝１，２，．．．，ｎ
つまり任意の成分がｃｉで表わされるｎ個の成分からなるベクトルＣ
を得る
という演算を行うと定義される。
2009288758.tif 000205
尚、本発明で「素数ｐを法とする積」または「素数ｐを法とする内積」または「素数ｐを法とする積または内積」というときは、このような演算法を指す。
【００５４】  但し、この方法は法の変換方法としては全く正確ではない。つまり、あるｐ−１進法（法ｐ−１（ｐから一を減じた値））の値をｐ進法（法ｐ）に変換する方法としては数学的に妥当ではない。しかしながら、このような方法をとる目的は法の変換ではなく、法を素数とすることで積における演算結果における値の分布の一様性を確保することが目的なので何ら問題はない。しかも、このような方法であってもｐ進法の成分から一を減じてｐ−１進法（法ｐ−１（ｐから一を減じた値））に戻した時に、正しい値となるので、更に問題はない。
数学的には、零からｐ−２（ｐから二を減じた値）までの成分数ｐ−１（ｐから一を減じた値）の整数からなる順序集合を一からｐ−１（ｐから一を減じた値）までの成分数ｐ−１（ｐから一を減じた値）の整数からなる順序集合に順序どおりに全単写で写像している。
例えば法を二百五十七とするとき、法を二百五十六とする二つの値、二百四十と百四十六があるとする。この値を法二百五十六で演算すれば二百四十×百四十六≡二百二十四であるが、法二百五十七で演算すれば二百四十一×百四十七≡二百十八となり、そこから一を引いても二百二十四にはならない。
ところが、この二百十八に百四十七の逆数である七を掛けると二百十八×七≡二百四十一となり、そこから一を引けば元の法を二百五十六とする値二百四十が得られる。つまり、法とする世界のこのような変換を通しても積の演算が成立する。これは、たまたまそうなったのではなく、計算技術的にはごく当然のことで、法二百五十七での演算の合同式の左辺の値は二つとも法二百五十六の値に一加えたものであるから、その採りうる値は一から二百五十六の間の数値であり、その結果、右辺の採りうる値の範囲も一から二百五十六となり、その右辺の値にその逆数である自然数（やはり値の採りうる範囲は一から二百五十六）を掛けてもその演算結果の採りうる値の範囲は一から二百五十六となる。そこから一を引けば、元の法二百五十六の値に戻るわけである。もっとあからさまな言い方をすれば、素数を法として演算する必要があることから形式的に素数二百五十七を法としているだけであって、上記のような演算の実質は法二百五十六というわけである。
つまりここでは、演算処理の結果として得たいのは法を二百五十六とする値であって、法を素数二百五十七とする値ではないという点がポイントとなる。
もう一つ良い点は、演算する値にそれぞれ一を加えることで、成分における値の出現率が完全に一様になる点である。例えば、法二百五十七で演算する場合、零から二百五十六までの値で積の演算を行うと演算結果は零に大きく偏るが、一か
2009288758.tif 000206
算結果がＮ通りとなるのと同様に、演算結果は一から二百五十六までの値で完全に一様になる。
これら二点は、例えばＮ＝六（Ｎは六に等しい）とｐ＝七（ｐは七に等しい）やＮ＝十二（Ｎは十二に等しい）とｐ＝十三（ｐは十三に等しい）あるいはＮ＝十八（Ｎは十八に等しい）とｐ＝十九（ｐは十九に等しい）など多くの数の間でも
2009288758.tif 000207
たは二または三または四とするとき、二の二乗のｋ乗に等しく、
2009288758.tif 000208
るとき、二の二乗のｋ乗に一を加えた値に等しいとすると、より面白い処理あるいは軽量化した処理が可能なる。現在のコンピュータが二進法で構成されており、特に文字列がバイナリーコードの形で十六ビットまたは二百五十六ビットの単位で処理されていることから、暗号処理システムとしての値の取扱いがきわめて容易になる。
2009288758.tif 000209
とき、二の二乗のｋ乗に等しいＮと
2009288758.tif 000210
二の二乗のｋ乗に一を加えた値に等しい素数ｐではこの自然数と素数の関係が五段階で設定できることから、整数体、有理数体、あるいは累乗根などの一部の実数のほかに多重の複素数体（例えば自乗して虚数になる数など）を自然数で扱えるなど、より複雑な構造を簡単な演算で処理することが可能となる点は極めて重要と考えられる。
更にこのような積の演算は擬似ランダムビット生成においても利用できる。
また例えば、こうした置換や擬似ランダムビット生成のほかにＤｉｆｆｉｅ−Ｈｅｌｌｍａｎの指数鍵交換（Ｅｘｐｏｎｅｎｔｉａｌ  Ｋｅｙ  Ｅｘｃｈａｎｇｅ）方式がベクトルで小さな値を使って容易に扱えるようになることから、この方式で大きな不確定性が少ない計算量で容易に得られるようになるなど、
2009288758.tif 000211
二の二乗のｋ乗に一を加えた値に等しい素数ｐのメリットは大きい。
2009288758.tif 000212
は二または三または四とするとき、二の二乗のｋ乗に一を加えた値に等しい素数ｐに限定して
2009288758.tif 000213
あるベクトルＡ，Ｂに対して出力値がベクトルＣとすると、
ベクトルＡ，Ｂが共にｐ−１（ｐから一を減じた値）を法とするベクトルあるとき、
2009288758.tif 000214
たは三または四とするとき、二の二乗のｋ乗に一を加えた値に等しいとき、ｐを法としてＡ−１０１Ａ＝（ａｉ）ｉ＝１，２，．．．，ｎつまり任意の成分がａｉで表わされるｎ個の成分からなるベクトルＡおよびＡ−１０１Ｂ＝（ｂｉ）ｉ＝１，２，．．．，ｎつまり任意の成分がｂｉで表わされるｎ個の成分からなるベクトルＢの各成分に一を加えることで、ｐを法とするベクトルＡ−１０３Ａ′＝（ａ′ｉ）ｉ＝１，２，．．．，ｎつまり任意の成分がａ′ｉで表わされるｎ個の成分からなるベクトルＡ′およびＡ−１０３Ｂ′＝（ｂ′ｉ）ｉ＝１，２，．．．，ｎつまり任意の成分がｂ′ｉで表わされるｎ個の成分からなるベクトルＢ′（但し、（ａ′ｉ，ｂ′ｉ）≠（０，０）つまりベクトルＡ′およびＢ′の成分には零は含まれていない）を生成し、
ベクトルＡ′，Ｂ′のそれぞれの成分の内の同じ次元同士の値をｐを法として積で演算し、演算結果として出力されたＡ−１０３Ｃ′＝（ｃ′ｉ）ｉ＝１，２，．．．，ｎつまり任意の成分がｃ′ｉで表わされるｎ個の成分からなるベクトルＣ′の各成分の値からｐを法として一を引いた値を生成することで実質的に法をｐ−１とし、
各成分を次元の順にならべて法をｐ−１（ｐから一を減じた値）とする数ベクトルＡ−１０２Ｃ＝（ｃｉ）ｉ＝１，２，．．．，ｎつまり任意の成分がｃｉで表わされるｎ個の成分からなるベクトルＣを得る。
という演算を行う。
という風に定義することもできる。
【００５５】  更に、この積の演算の面白い点は、一言でいえば二つまたはそれ以上の未知数の積となることから、演算が非線型化するので生成値からは逆算不能であることである。即ち、入力値の一つが秘匿された固定値であっても逆算は不能であり、このことが和の置換との大きな違いである。
つまり、入力される固定値をｘ、入力される変数をｙ１，ｙ２、出力値をそれぞれｃ１，ｃ２とし、ｘｙ１：＝ｃ１，ｘｙ２：＝ｃ２、つまりｘにｙ１を掛けた値はｃ１に等しく、ｘにｙ２を
2009288758.tif 000215
割った値に等しくなり、ｙ１，ｙ２，ｃ１，ｃ２がそれぞれ一様かつ周期性のないランダムビット若しくは擬似ランダムビットからなるベクトルであれば、いずれの値も情報理論的に不確定である。
2009288758.tif 000216
ｙ２＝ｋｙ１であるからｐ−１（ｐから一を減じた値）通りのｙ２に対してｐ−１（ｐから一を減じた値）通りのｙ１となることによって情報理論的に値を確定させることができない。
法ｐにおける積の演算結果が一様であることの証明は、
2009288758.tif 000217
つまり、零を上回り素数ｐを下回る、つまり一を下回らず素数ｐから一を減じた値を上回らない任意の値ａ，ｂ，ｃと任意の整数ｍとｚがあるとき
ａ×ｂ≡ｃ  ｍｏｄ．ｐ，ａ×ｂ＝ｚ，ｚ＝ｃｘ−ｍｐが成り立っているとする。
つまり、ａにｂをかけた値が法ｐでｃに合同であり、ａにｂをかけた値がｚに等しく、ｚはｃにｘをかけた値からｍとｐをかけた値を減じた値に等しいとする
ｘ＝０のとき、ｚ＝−ｍｐ≡０であるからｚ≡０
つまり、ｘが零に等しい時、ｚはｍとｐをかけた値にマイナス一を掛けた値に等しく、その値は零に合同であり、従ってｚは零に合同
ｘ＝１のとき、ｚ＝ｃ−ｍｐ≡ｃ  ｍｏｄ．ｐであるから
つまり、ｘが一に等しい時、ｚはｃからｍとｐをかけた値を減じた値に等しく、その値はｃに合同であるから
ｃ＝１のとき、ｚ＝１
つまり、ｃが一に等しい時、ｚは一に等しい
ｃ＝２のとき、ｚ＝２
つまり、ｃが二に等しい時、ｚは二に等しい
2009288758.tif 000218
ｃ＝ｐ−１のとき、ｚ＝ｐ−１
つまり、ｃがｐから一を減じた値に等しい時、ｚはｐから一を減じた値に等しい
ｘ＝２のとき、ｚ＝２ｃ−ｍｐ≡２ｃ  ｍｏｄ．ｐであるから
つまり、ｘが二に等しい時、ｚはｃを二倍した値からｍとｐをかけた値を減じた値に等しく、その値はｃを二倍した値に合同であるから
ｃ＝１のとき、ｚ＝２
つまり、ｃが一に等しい時、ｚは二に等しい
ｃ＝２のとき、ｚ＝４
つまり、ｃが二に等しい時、ｚは四に等しい
2009288758.tif 000219
つまり、ｃがｐから一を減じた値を二で割った値に等しい時、ｚはｐから一を減じた値に等しい
2009288758.tif 000220
つまり、ｃがｐから一を減じた値を二で割った値に更に一を加えた値に等しい時、ｚはｐに一を加えた値に等しく、その値は一に合同である
2009288758.tif 000221
つまり、ｃがｐから一を減じた値を二で割った値に更に二を加えた値に等しい時、ｚはｐに三を加えた値に等しく、その値は三に合同である
2009288758.tif 000222
ｃ＝ｐ−１のとき、ｚ＝２（ｐ−１）≡ｐ−２  ｍｏｄ．ｐ
つまり、ｃがｐから一を減じた値に等しい時、ｚはｐから一を減じた値に二を掛けた値に等しく、その値はｐから二を減じた値に合同である
2009288758.tif 000223
ｘ＝ｐ−１のとき、ｚ≡（ｐ−１）ｃ  ｍｏｄ．ｐであるから、
つまり、ｘがｐから一を減じた値に等しい時、ｚはｃにｐから一を減じた値を掛けた値に合同であるから
ｃ＝１のとき、ｚ≡ｐ−１  ｍｏｄ．ｐ
つまり、ｃが一に等しい時、ｚはｐから一を減じた値に合同
ｃ＝２のとき、ｚ＝２（ｐ−１）≡ｐ−２  ｍｏｄ．ｐ
つまり、ｃが二に等しい時、ｚはｐから一を減じた値に二を掛けた値に等しく、その値はｐから二を減じた値に合同
2009288758.tif 000224
ｃ＝ｐ−２のとき、ｚ＝（ｐ−１）（ｐ−２）≡２  ｍｏｄ．ｐ
つまり、ｃがｐから二を減じた値に等しい時、ｚはｐから一を減じた値とｐから二を減じた値の積に等しく、その値は二に合同
ｃ＝ｐ−１のとき、ｚ＝（ｐ−１）２≡１  ｍｏｄ．ｐ
つまり、ｃがｐから一を減じた値に等しい時、ｚはｐから一を減じた値の二乗に等しく、その値は一に合同
よって、ａ，ｂが一からｐ−１までのｐ−１通りの値をとるとき、ｃも一からｐ−１までのｐ−１通りの値をとり、且つ（ａ，ｂ）とｃの関係は全単写、即ち置換である■
そこで、ｘ，ｙ１，ｙ２がｐ−１（ｐから一を減じた値）を法とする値であり、このとき演算にあたってｘ，ｙ１，ｙ２の各成分に法ｐで一を加えることで零を消し、法ｐで積の演算を行えば、演算結果はやはり零を含まず、且つ一からｐ−１（ｐから一を減じた値）までの値を一様に出現させることができる。
因って、このような置換では演算は完全に一方向（非可逆）となる。
Ｓｈａｎｎｏｎの情報理論では複数の平文を一つの暗号鍵で暗号化すれば情報理論的に解読可能になるとされている。
何故なら、例えば二つの平文ＭｉとＭｊを一つの暗号鍵Ｋで暗号化するということは、単純に｜Ｍｉ｜＋｜Ｍｊ｜のデータ長を持つ平文を暗号化することに等
2009288758.tif 000225
定性は平文の不確定性を下回ることになり、暗号化は計算量的完全性しか持ち得ない。即ち情報理論では解読可能ということになる。
暗号化（暗号文生成処理）がＸＯＲを含むベクトル和による場合は理屈としては確かにその通りであるが、
実際には更に悪いことに、計算量によらず、高々二つの暗号文を法二と法Ｎにおいて連立方程式で処理することによって暗号鍵Ｋが差分において求まることから極めて容易に解読されてしまうという問題がある。つまり、Ｐ≠Ｎ予想（Ｐ対ＮＰ問題）の問題とは無関係に、つまり計算量の問題とは全く無関係に解読できてしまうということである。
このことによって、全ての非対称鍵暗号つまり二重鍵暗号は鍵を固定値として用いる限りにおいて、どんなに逆算困難な形で暗号鍵が生成されたとしても、そのこととは全く無関係に容易に解読することが可能であると言える。
ところが、積（内積）による場合は解読不能であることになる。
また、もしそうであるならば、たとえ公開鍵（非対称鍵）方式であっても、この積による置換を用いることで完全秘匿で解読不能とすることができることになる。
【００５６】  次に、擬似ランダムビット生成器を用いて置換装置を構成する場合、生成された擬似ランダムビットは変数として用いられるわけであり、他の値、ｎ個の成分数を有するベクトルであって法Ｎにおいてその不確定性ＨがＨ＝ｌｏｇ２Ｎｎ
つまり不確定性Ｈが底を二とするＮのｎ乗の対数
である値を置換するために用いられるわけであるから、一様性や周期性に関しては、暗号化の完全秘匿という点ではさほど気にする必要はないはずである。つまり、真正ランダムのビット列にどのようなビット列をベクトル和あるいは内積しても真正ランダムであることには全く影響を与えない。
【００５７】  ところが、折り畳む方式でも元になる擬似ランダムビットに周期性があれば、周期性のあるもの同士を足し合わせる若しくは掛け合わせるわけであるから、生成値にも周期性が生じることになり、従って暗号鍵生成モデュールにおける置換装置にそのような擬似ランダムビット生成器が使われると、その周期のスパンの計算量によって攻撃可能となる。周期のスパンをλとすれば、法Ｎのとき、ｌｏｇ２Ｎλの不確定性となる。当然、一つの周期に含まれる成分数は全体の成分数よりも少ない訳であるから、その場合、計算量的完全秘匿または、解読可能となる。
【００５８】  抜き取る方式でも、抜き取りをランダムに行えば、もし元の擬似ランダムビットに周期性があったとしてもその周期性を消せるかも知れないが、今度は非線型性を持たせることが困難になる。従って、やはり生成結果に周期性が残ることになる。また、元の擬似ランダムビットに一様性がなければ、抜き取りの結果、更に一様性が失われる危険性がある。いずれにしても計算量的完全秘匿、または解読可能である。
【００５９】  擬似ランダムビットの生成そのものが非線型な擬似ランダムビット生成器であっても、生成値に周期性があれば、やはり、ｌｏｇ２Ｎλ
つまり二を底とするＮのλ乗の対数
の不確定性しかなく、計算量的完全秘匿または計算量的に解読可能である。
【００６０】  従って、元になる擬似ランダムビットは、周期性がなく、且つ、一様性のあるものでなければならない。
また、入力値であり変数であるシードｒｉとして、時間データのような連続的に変化するデータを用いる場合には、当然のことながら初期値鋭敏性が要求される。
【００６１】  そこで以下では、周期性がなく、一様性があり、且つ初期値鋭敏性のある擬似ランダムビット生成器とその非線型化について述べる。
【００６２】  図２５は本発明の擬似ランダムビット生成器、Ａ−００２擬似ランダムビッ
2009288758.tif 000226
擬似ランダムビット生成器は、
シードであるベクトルａと生成するべき成分数｜Ａ｜を入力値として受け取り、生成に伴って伸長されるベクトルの成分数を監視し、成分数の過不足を判定して不足であれば入力または生成されたベクトルをＡ−３０１セパレータに送るようＡ−２０３ベクトル配列生成部に指示し、十分であればＡ−２０３ベクトル配列生成部に通知してＡ−２０３ベクトル配列生成部において生成されたベクトルをＡ−２０３ベクトル配列生成部から受け取って外部に戻す働きをする
Ａ−２０１データ長管理部と、
受け取ったベクトルを二つのベクトルに分割してＡ−２０２表演算部に送出する
Ａ−３０１セパレータと、
Ａ−３０１セパレータから受け取った二つのベクトルを２次元の表の第一列と第一行に配置し、生成値を含む行方向および列方向の複数の成分に和または積の演算を行うことによって演算表を生成する
Ａ−２０２表演算部と、
Ａ−２０２表演算部において生成された表の成分から列ベクトル毎にデータを抜き出し、新たなベクトルとして配列を生成し、データ長管理部からの指示に基づいて送出する
Ａ−２０３ベクトル配列生成部と
から構成され、
【００６３】  シードであるベクトルａと生成する擬似ランダムビットの成分数｜Ａ｜をＡ−２０１データ長管理部に入力すると、Ａ−２０１データ長管理部はベクトルａの成分数が｜Ａ｜を下回れば、つまり、｜ａ｜＜｜Ａ｜ならばベクトルａをＡ−３０１セパレータに送り、
Ａ−３０１セパレータはベクトルａをベクトルＶ１とＶ２に分割（但し｜ａ｜＝｜Ｖ１｜＋｜Ｖ２｜。
つまりＶ１の成分数とＶ２の成分数を足したものはａの成分数に等しい）してＡ−２０２表演算部に送り、
（１）Ａ−２０２表演算部はベクトルＶ１、Ｖ２をそれぞれ二次元の表の第一行と第一列に配置し、表の各成分に対して行方向の複数の成分と列方向の複数の成分を用い（但し、例えば第二行第二列成分ではＶ１の第一成分とＶ２の第二成分を用い、第二行第三列成分ではＶ１の第一成分と第二行第二列成分とＶ２の第二成分を用いるという風に、一つの成分しか用いることができない場合は一つの成分だけを用いる）自然数Ｎを法として和または素数ｐを法として積または積と和を行うことにより二次元の演算表を生成し、
例えば、全ての演算を和とするならば、行方向に演算される成分数をψ、列方向に演算される成分数をξとする時、任意の成分をａｉｊとすれば、
2009288758.tif 000227
つまり、ａｉｊで表わされる二次元の表の第ｉ行第ｊ列の成分は、自然数Ｎを法として、ａｉｊが属する列のａｉｊの一つ上の行つまり第ｉ−１（ｉから一を減じた値）行目から上に第ψ番目の行つまり第ｉ−ψ（ｉからψ（二を下回らない自然数）を減じた値）行目までの全ての成分を足し合わせた値と、ａｉｊが属する行のａｉｊの一つ左の列つまり第ｊ−１（ｊから一を減じた値）列目から左に第ξ番目の列つまり第ｊ−ξ（ｊからξ（二を下回らない自然数）を減じた値）列目までの全ての成分を足し合わせた値を足し合わせた値に合同
その生成結果から第一列成分と第一行成分を除いた成分（生成結果を行列に見立
2009288758.tif 000228
について列ベクトル毎にまたは行ベクトル毎に成分を取り出したベクトル
（Ｂｊ）ｊ＝１，２，．．．，ｎ−１（但し、Ｂｊ＝Ａｊ＋１）、
つまり、任意の成分がＢｊで表わされるｎ−１（ｎから一を減じた値）個の成分からなるベクトルであって、第ｊ番目の成分がベクトルＡの第ｊ＋１（ｊに一を加えた値）番目の成分と等しいベクトル
を生成してＡ−２０３ベクトル配列生成部に送り、
（２）Ａ−２０３ベクトル配列生成部は、その取り出された列ベクトル
（Ｂｊ）ｊ＝１，２，．．．，ｎ−１＝（Ｂ１，Ｂ２，．．．，Ｂｎ−１）
つまり、ベクトル（Ｂｊ）ｊ＝１，２，．．．，ｎ−１はベクトルＢ１からベクトルＢｎ−１までのｎ−１
（ｎから一を減じた値）個のベクトルを成分とするベクトルの成分を展開してベクトル
Ｂ＝（ｂ１，ｂ２，．．．，ｂ（ｍ−１）（ｎ−１）−１，ｂ（ｍ−１）（ｎ−１））
つまり、ｂ１からｂ（ｍ−１）（ｎ−１）までの（ｍ−１）（ｎ−１）（ｍから一を減じた値とｎから一を減じた値を掛け合わせた値）個の成分からなるベクトルＢ
を生成し、
（３）Ａ−２０１データ長管理部はこの生成過程を常時チェックし、ベクトルＢの成分数｜Ｂ｜が｜Ａ｜を上回らないならばベクトルＢをＡ−３０１セパレータに送って、
（４）Ａ−３０１セパレータはベクトルＢをベクトルＶ１とＶ２に分割（但し｜Ｂ｜＝｜Ｖ１｜＋｜Ｖ２｜。つまりＶ１の成分数とＶ２の成分数を足したものはＢの成分数に等しい）してＡ−２０２表演算部に送り、
成分数｜Ｂ｜が｜Ａ｜を下回らなくなるまで上記（１）から（４）までの過程を繰り返し、成分数｜Ｂ｜が｜Ａ｜を下回らなくなったベクトルＢを出力値であるベクトルＡとして返すようにして擬似ランダムビットを生成することによって、実際の使用において用いられる程度（少なくとも数百メガバイト程度）のデータ長では全く周期性が認められず、且つ生成値は一様であり、初期値鋭敏性を持つ擬似ランダムビット生成器となる。
【００６４】  従来の擬似ラングムビット生成方式と比較した場合の本発明における擬似ランダムビット生成器の最大の特徴は、シードが複数の成分からなるベクトルであり、そのベクトル成分を二次元に配置することで、二次元の漸化式を構成し、指数的に成分数を増やしていく点にある。生成値の一様性を確保するには、演算に自然数を法とする場合は和のみ、素数を法とする場合は和および積が使えるが、和のみの演算が高速である。そこで以下では煩雑になるのを避けるため和のみの場合について説明する。
尚、生成過程に積の演算がある場合は非線型の擬似ランダムビット生成器となる。
また、和のみの場合でも演算段階ごとに生成値の組み換えが行われることから弱い非線型性がある（法をＮとする時、一つの演算段階ごとにｌｏｇ２Ｎビット（二を底とするＮの対数。場合の数（確率の逆数）Ｎのビット表記））の不確定性が生まれる）。
【００６５】  その前に、二次元の表による演算と高次元の表による演算について若干補足する。本発明の擬似ランダムビット生成器による方式では、表演算部における演算処理をｎ次元の表から二次元の表に還元して処理し、その生成値を再利用して次のシードとして順次ｎ次元まで高次元空間を生成していく。ところが、同じようにベクトルを用いて指数的に成分数を増加させる方式として、最初からｎ次元の表を一気に作る（一括処理する）方式がある。これは、シードのベクトルをｎ個に分割して、ｎ個のうちの最初の二つの成分から二次元の表を作成し、この表を配列生成部でベクトルに変換して次の演算表の一つの次元（第一行成分）とし、ｎ個のうちの三番目のベクトルをもう一つの次元（第一列成分）として追加して再び二次元の表を作成し、以下同様にして第ｎ次元でそのまま順次演算処理するのと数学的な構造は同じである。つまり、そうした方式でも演算表は二次元の表の演算に還元することができる。
【００６６】  尚、この場合、上記セパレータは入力されたベクトルをＶ１からＶｎまでｎ個に分割して表演算部に送り、表演算部で順次消費されることになる。その結果、そのような方式では前の段階の生成値を再びシードとして利用するような利用の仕方ができないので、伸長されるデータサイズにシードサイズによる限界があることから、本発明の擬似ランダムビット生成器のように一つのシードから理論上無限に擬似ランダムビットを生成し続けるということはできない。
【００６７】
2009288758.tif 000229
からなるベクトル）の二つに分割して二次元の表のそれぞれ第一列と第一行に配
2009288758.tif 000230
ｍ１行ｎ１列からなる表）を作る。ここでａｉｊはψ、ξをそれぞれ行方向、列方向で
2009288758.tif 000231
分がａｉｊで表わされる二次元の表の第ｉ行第ｊ列の成分は自然数Ｎを法として、ａｉｊが属する列のａｉｊの一つ上の行つまり第ｉ−１行目から上第ｉ−ψ行目までの全ての成分を足し合わせた値と、ａｉｊが属する行のａｉｊの一つ左の列つまり第ｊ−１列目から左第ｊ−ξ列目までの全ての成分を足し合わせた値を足し合わせた値に合同）とし、ここまでを演算の第一段階とする。次に、表Ａ１から第一行と第一列を除い
2009288758.tif 000232
ル）の二つに分割し、二次元の表のそれぞれ第一列と第一行に配置して表
2009288758.tif 000233
これを演算の第二段階とする。この第二段階の演算を必要なデータ長が得られるまで、または処理するコンピュータの処理能力において可能な範囲まで繰り返すことで擬似ランダムビットを生成する。
【００６８】  ここで、各段階における生成値からそのシードを逆算することを考えると、本発明の擬似ランダムビット生成器にはそのままでも弱い一方向性があることがわかる。即ち、今、ａ２２成分について見ると、ａ２２成分はａ２１とａ１２の法をＮ∈
2009288758.tif 000234
になる。従って、演算の一段階ごとにＮ通りの組み合わせが存在し、Ｎ＝２８（Ｎは二の八乗に等しい）ならば演算一段階について八ビットの不確定性（エントロピー）が生じ、演算十段階では八十ビットの不確定性となる。つまり２８０（二の八十乗）個の全ての可能な組み合わせを作ったとして、そのうちの一つが本当に使われたシードである。
そこで、Ｎ＝２８（Ｎは二の八乗に等しい）でシードの成分数を三十二とし、ｎ１＝ｎ２＝…＝３（ｎ１もｎ２も全部三に等しい）、ξ＝ψ＝３（ξもψも三に等しい）で生成する場合を考えると、演算十段階で百六十二万三千八百五十二バイト（約一．五五メガバイト）の擬似ランダムビットが生成される。生成速度は演算をベクトルとして扱うことによって法を小さくできる（但し、ＸＯＲではなく法Ｎ＞２（Ｎは三を下回らない）のベクトル和）ことから、一般的な従来技術と比べて格段に処理を軽量化できる（従来技術ではこの法の値を極力大きく設定するようにしていた）。例えば三十二バイトのシードから十メガバイト生成にかかる生成時間では、Ｊａｖａ言語によるプログラムで、２００７年において標準的と考えられる二．三ギガヘルツ動作のパーソナルコンピュータでほぼ三百ミリ秒である。速く
2009288758.tif 000235
とき、ｎ×ｎ＝ｎ２（ｎ×ｎはｎの二乗に等しい）とすることが最も効率的であるが、演算段階数が減ることから不確定性が小さくなるという問題が生ずる。
【００６９】  一方向性を強化するには、単純には表を三次元化する形が考えられる。そこでａ２２２成分について見ると、ａ２１１、ａ１２１、ａ１１２成分の組み合わせはＮ２（Ｎの二乗）通りとなるから、演算十段階でＮ２０（Ｎの二十乗）通り、Ｎ＝２８（Ｎは二の八乗に等しい）ならば百六十ビットの不確定性となる。ところが、三次元化すると演算五段階で百四十九万九百九十四バイト（−．四二メガバイト）生成されるので、結局その辺りのサイズでは不確定性は八十ビットしか生成されない。
【００７０】  生成値の周期性に関しては、所謂Ｍ系列を単に二次元化したような形であるにも関わらず、生成の手続き自体が演算段階ごとにシードとなる成分の組み換えを行うものであり、さらに二次元の演算処理の中で値の入念な攪拌が行われ、更に、二次元で生成された成分を列ベクトルまたは行ベクトル毎に抽出して生成するものであることから、周期性は少なくとも実用の範囲において全く存在しないと考えられる。実際、法Ｎ＝２８、シードサイズ三十二バイトで十メガバイトの擬似ランダムビットを生成し、生成値の先頭のビット列が生成値の中に現れる頻度をとってみても、先頭二バイトのデータと一致する成分の並びが現れる頻度は一千回の試行で１つの生成値について百五十〜百七十個出現したが、これは理論値の百六十（百六十＝十×千二十四の二乗÷二百五十六の二乗、つまり百六十は十に千二十四の二乗を掛けて、それを二百五十六の二乗で割ったものに等しい）にほぼ等しく、先頭四バイトでは稀にしか出現せず（理論値は一つの生成値に零．零零二四四一回、検査では一千回の生成で二回出現）、先頭５バイト以上では実際上ほとんど出現せず（一千回の試行では一度も出現せず）、期待値（理論値）通りである。
【００７１】  一様性に関しては、シードの成分が全て零でない限りにおいて、演算四段階目から五段階目で法Ｎにおけるすべての値の出現率（数）がほぼ一様になる。つまり、例えばシードサイズが三十二バイトのとき、一キロバイト程度を生成するだけでほぼ一様な擬似ランダムビットが得られる。
【００７２】  初期値鋭敏性に関し、本発明の擬似ランダムビット生成器は行方向、列方向共に長い腕を持つことから、シードであるベクトルの成分の値を何重にも取り込むことによって成分の小さな値の変化を増幅して敏感に反映し、その変化を演算段階ごとの組み換えが更に増幅し、一つの成分の値が一違うだけでも全く異なる擬似ランダムビットを生成する。
【００７３】  次に、擬似ランダムビット生成器の一方向化（非可逆化）について説明する。
抜き取り方式は、
そもそも本発明の擬似ランダムビット生成器ではａ２２成分に関し、ａ２１とａ１２の組み合わせがＮ通り存在することによってナチュラルに不完全ながら非可逆性を生じていたわけであるが、これを全てのシードの成分についても成立するよう、
2009288758.tif 000236
値は確定しないことになる。
但し、この抜き取り処理をするための負荷と、生成される成分数そのものが減少することによって、生成速度を含む生成効率がかなり大幅に低下することになる具体的には、生成においてａｉｊを算出するための少なくとも二つの成分が未知数となれば良いわけであるが、いずれにしてもＮ通りのａ２１とａ１２の組み合わせを決めると、第二行目の成分と第二列目の成分だけからシードの部分ベクトル（ａ１２，ａ１３，．．．，ａ１，ξ＋１）つまり、ａ１２，ａ１３，．．．，ａ１，ξ＋１のξ個の成分からなるベクトルと（ａ２１，ａ３１，．．．，ａψ＋１，１）つまり、ａ２１，ａ３１，．．．，ａψ＋１，１のψ個の成分からなるベクトルが差分で求まってしまう。従って他のどの成分を抜き取ったとしても、このままでは一つの演算段階の不確定性はｌｏｇ２Ｎビットつまり二を底とするＮの対数（場合の数（確率の逆数）のビット表記）であって、つまりＮ通りのままである。
【００７４】  そこで、図２６を使って説明すると、
図２６はａ１１成分のない行列Ａ＝（ａｉｊ）の一部左上隅の部分を抜き取って表した図である。
Ａから第一列に加えて第二列と第一行に加えて第二行を抜き取ることを考え、こ
2009288758.tif 000237
み合わせはＮ通り。これにａ３１を加えた組み合わせはＮ２（Ｎの二乗）通り。更にａ１３を加えた組み合わせはＮ３（Ｎの三乗）通り。以下同様にして、行方向、列方向にＮ（未知数の個数）−１（Ｎの［未知数の個数から一を減じた値］乗）通りの組み合わせが実現し、第一列目と第一行目だけでシードの不確定性を下回らない不確定性が実現すると考えられる。
【００７５】  ところが図２７は前記の行列Ａ＝（ａｉｊ）の左端を含む部分の成分の配列を表したものであるが、
ａｉｊは、ψ、ξをそれぞれ行方向、列方向で足し合わせる成分数とするとき、
2009288758.tif 000238
つまり、任意の成分がａｉｊで表わされる二次元の表の第ｉ行第ｊ列成分は、全ての演算が和であるならば、ａｉｊが属する列のａｉｊの一つ上の行つまり第ｉ−１（ｉから一を減じた値）行目から上に第ψ番目の行つまり第ｉ−ψ（ｉからψ（二を下回らない自然数）を減じた値）行目までの全ての成分を足し合わせた値と、ａｉｊが属する行のαｉｊの一つ左の列つまり第ｊ−１（ｊから一を減じた値）列目から左に第ξ番目の列つまり第ｊ−ξ（ｊからξ（二を下回らない自然数）を減じた値）列目までの全ての成分を足し合わせた値を足し合わせた値に合同
2009288758.tif 000239
成分）についてみるとａｉ，ｊ−１≡（ａｉ２＋…＋αｉ，ｊ−２）＋（ａｉ−ψ，ｊ−１＋…＋ａｉ−１，ｊ−１）であるから、容易にａｉ２（ａｉｊが含まれる行の第二列目の成分）が求まってしまう。すると同様にａｉ１（ａｉｊが含まれる行の第一列目の成分）が求まり、従って、ｉ行目以下の全ての未知数成分が求まることになる。
列方向についても同様に、ｊ列目以降の全ての未知数成分が求まる。つまり部分解読される。これでは複数の演算段階を持ったとしても、計算量的な完全性しか持ち得ない。
【００７６】
2009288758.tif 000240
との成分とξ＋１列ごとの成分が抜き取られる必要がある。今、αｉ，ｊ−１（αｉｊの左隣の成分）についてａｉ−ψ，ｊ−１（ａｉｊの左隣にあって、ψ行上の成分）が未知数であれば、ａｉ２（ａｉｊが含まれる行の第二列目の成分）はＮ通りとなる。
2009288758.tif 000241
行を除き、且つ、ψ＋１行ごとの行成分とξ＋１列ごとの列成分を除いた余因
2009288758.tif 000242
ｉｊ成分がＢｉｊで表わされる成分からなる行列である。この時、Ｂｉｊ自身も行列。
つまり（Ｂｉｊ）は、行列Ａから第一行と第二行および２＋ψｍ行（但しｍ＝１，２，．．．）及び第一列と第二列および２＋ξｎ列（但し、ｎ＝１，２，．．．）を除いた行列Ａの余因子行列である。
【００７７】  このような成分の抜き取り処理を行う装置が図２９から図３１に記載のＡ−３０２一方向化エクストラクタであって、
Ａ−３０２一方向化エクストラクタは、
2009288758.tif 000243
のｉｊ成分であるａｉｊの演算対象となる成分が、
第ｉ−１行目の成分であるａｉ−１，ｊから列方向に第ｉ−ψ行目の成分であるａｉ−ψ，ｊまでのψ個と、
第ｊ−１列目の成分であるａｉ，ｊ−１から行方向に第ｊ−ξ列目の成分であるａｉ，ｊ−ξまでのζ個
とすれば、
2009288758.tif 000244
その第一行と第二行および第２＋ψｍ行（但しｍ＝１，２，．．．）
及び第一列と第二列および第２＋ξｎ列（但し、ｎ＝１，２，．．．）
を除いた前記行列の余因子行列を生成し、その余因子行列の各列ベクトルまたは行ベクトルを並べて一つのベクトルとして生成し出力する装置である。
【００７８】  演算段階毎にこのような処理を行うか、または少なくとも演算の最終段階においてこのような処理を行うことにより、全ての演算が和であっても二次元の線型漸化式による非線型な擬似ランダムビット生成が実現する。
ソフトウェアによる処理の場合は演算の最終段階でのみこうした処理を行うようにすることで生成効率の面で処理の高速化が図れ、
また、ＬＳＩ等、専用のハードウェアで処理する場合はコスト対効果の問題があることから演算の各段階で処理するようにしても良い。
【００７９】
2009288758.tif 000245
て、シードと同じサイズにするようにすれば、完全非可逆（一方向）な置換となり、演算段階毎にこのような処理を行うかまたは少なくとも演算の最終段階においてこのような処理を行うことにより、全ての演算が和であっても二次元の線型漸化式による非線型な擬似ランダムビット生成による置換が実現する。
ソフトウェアによる処理の場合は演算の最終段階でのみこうした処理を行うようにすることで生成効率の面で処理の高速化が図れ、専用のハードウェアで処理する場合はコスト対効果の問題があることから演算の各段階で行うようにしても良い。
しかしながら、置換の場合、何段階も擬似ランダムビット生成を繰り返しても無駄であるから通常は一段階だけの擬似ランダムビット生成になると考えられ、従ってその一段階の演算によって生成された擬似ランダムビットから抜き取り処理を行うことによって置換が成立することになる。
【００８０】  演算に積が含まれれば二次元の非線型漸化式となり、成分の抜き取りがなくてもやはり擬似ランダムビット生成に非可逆性が付与される。
また更に抜き取り量を増やし均一に抜き取るあるいは折りたたむようにすれば完全非可逆（一方向）のハッシュ関数とすることも可能である。
【００８１】  そこで、Ａ−３０２一方向化エクストラクタによって構成される置換器は、図２９および図３０の構成図に示す構造を持つ。即ち、
弱い非線型性を持つ線型の擬似ランダムビット生成器であるＡ−００２擬似ラン
2009288758.tif 000246
よって非線型化させる置換器は、
2009288758.tif 000247
る表（行列）をＡとするとき、
Ａ−３０２一方向化エクストラクタ単体から構成され、入力値Ａに対し、その成分数が入力値Ａの成分数｜Ａ｜を下回らず且つ非線型化され情報理論的に
2009288758.tif 000248
Ａ−６０１一方向置換器（イ）と、
Ａ−３０２一方向化エクストラクタとＡ−３０３ベーシックエクストラクタから構成され、Ａ−３０２一方向化エクストラクタ単体から構成され、入力値Ａに対し、Ａ−３０２一方向化エクストラクタがその成分数が入力値Ａの成分数｜Ａ｜を下回らず且つ非線型化され情報理論的に逆算不能な余因子行列
2009288758.tif 000249
をベクトルＡとして出力する
Ａ−６０２一方向置換器（ロ）である。
【００８２】  折りたたみ方式は、擬似ランダムビットを、目的とするデータ長よりも長く生成し、それいくつか（任意）の成分数毎に等分に分割して、分割したそれぞれのベクトルをベクトル和若しくは内積することによって一方向性を持たせるようにする置換器であって、
図３１に示すように、
弱い非線型性を持つ線型の擬似ランダムビット生成器であるＡ−００２擬似ラン
2009288758.tif 000250
非線型化させる置換器は、
2009288758.tif 000251
ｌｏｇ２Ｎ｜Ｍｉ｜、つまりＶｉの不確定性Ｈ（Ｖｉ）はＮの［Ｍｉの成分数乗］の二を底とする対数
2009288758.tif 000252
の擬似ランダムビットＡ′を生成し、それをＡ−３０１セパレータでｎ個に分割し、
2009288758.tif 000253
または、図３２に示すように、
2009288758.tif 000254
擬似ランダムビットＡ′を生成し、それをＡ−３０１セパレータで二つ以上に分割
2009288758.tif 000255
とによって生成した値またはベクトルから、更に成分数を前記Ａ−００２擬似ラ
2009288758.tif 000256
クストラクタで任意の成分を抜き取り成分数を調整するようにした置換器である。
尚、この方式における擬似ランダムビット生成器は、Ａ−００２擬似ランダムビ
2009288758.tif 000257
トを生成するものであれば、擬似ランダムビット生成器であれば、その生成方法は線型でも非線型でも良い。
この定義は理論上の話であって、実際の運用では、入力値と同じ成分数を有する出力値を得るには、何倍にしてもその不確定性は変わらないので、最少である二倍の成分数を擬似ランダムビット生成し、それを二つに分けて、その二つに分けられたベクトル同士をベクトル和若しくは内積する形で用いることが最も効率的である。従って、他に特別な理由がない限り、ｎ＝２（ｎは二に等しい）で用いることになる。
【００８３】  Ａ−３０１セパレータとＡ−００１ａベクトル和型置換装置によって構成される置換器は、図３１および図３２の構成図に示す構造を持つ。即ち、
2009288758.tif 000258
る表（行列）をＡとし、その行列Ａから生成されたベクトルをＡ′とするとき、
Ａ−３０１セパレータとＡ−００１ａベクトル和型置換装置によって構成され、Ａ′が入力されるとＡ−３０１セパレータはＡ′を等分な二つのベクトルに
2009288758.tif 000259
のベクトルをベクトル和または内積することによって置換してベクトルＡを生成し出力する
Ａ−６０３置換器と、
Ａ−３０１セパレータとＡ−００１ａベクトル和型置換装置とＡ−３０３ベーシックエクストラクタによって構成され、Ａ′が入力されるとＡ−３０１セ
2009288758.tif 000260
することによって置換してベクトルＡ″を生成し、Ａ−３０３ベーシックエクストラクタがそのＡ″から任意の成分を｜Ａ″｜−｜Ａ′｜つまりベクトルＡ″の成分数｜Ａ″｜からＡ′の成分数｜Ａ′｜を引いた成分数だけ抜き取ることによって成分数｜Ａ′｜のベクトルＡ（３）を生成し、そのＡ（３）をベクトルＡとして出力する
Ａ−６０４折畳＋抜取置換器である。
【００８４】  上記の擬似ランダムビット生成器を用いる置換装置を暗号化に用いた場合、入力値Ａ′の不確定性が暗号化しようとする平文の不確定性を下回らないとするとき、
図２９のＡ−３０２一方向化エクストラクタのみから構成される場合は計算量的完全秘匿性を持つ暗号化の必要条件を満たし、
図３１の場合は、
｜Ａ′｜＜｜Ａ｜、つまり出力値Ａの成分数｜Ａ｜が入力値Ａ′の成分数｜Ａ′｜を下回らず且つ出力値Ａの成分数｜Ａ｜が入力値Ａ′の成分数｜Ａ′｜が等しくないとき、少なくとも計算量的完全秘匿性を持つ暗号化の必要条件を満たし、
｜Ａ′｜＞｜Ａ｜、つまり出力値Ａの成分数｜Ａ｜が入力値Ａ′の成分数｜Ａ′｜を上回らず且つ出力値Ａの成分数｜Ａ｜が入力値Ａ′の成分数｜Ａ′｜が等しくないとき、計算量的完全秘匿性を持つ暗号化の必要条件を満たし、
｜Ａ′｜＝｜Ａ｜、つまり出力値Ａの成分数｜Ａ｜が入力値Ａ′の成分数｜Ａ′｜と等しいとき、完全秘匿である暗号化の必要条件を満たし、
図３０および図３２の場合は完全秘匿である暗号化の必要条件を満たす。
【００８５】  図３３はＡ−５０１置換装置として図２９のＡ−６０１一方向置換器（イ）または図３１のＡ−６０３折畳置換器を用いた計算量的完全秘匿性の必要条件を満たす処理の流れを示す図であり、
暗号化が計算量的完全秘匿性を持つための必要条件を満たすＡ−００２擬似ラン
2009288758.tif 000261
一または複数のベクトルと、出力するベクトルの成分数｜Ａ｜を入力し、
入力されるベクトルが複数の場合はＡ−４０１連結装置でそれら複数のベクトルを連結して一つのベクトルとし（入力値が二つのベクトルａ、ｂであればそのａ、ｂを連結した一つのベクトル（α‖ｂ）を生成し）、
2009288758.tif 000262
−２０１データ長管理部で算定し、
その連結された一つのベクトル前記（ａ‖ｂ）をシードとしてＡ−００２擬似ランダ
2009288758.tif 000263
その行列Ａ′をＡ−６０１一方向置換器（イ）またはＡ−６０３折畳置換器からなるＡ−５０１置換器に入力して非線型な置換をして成分数｜Ａ｜を有するベクトルＡを得る。
このとき、Ａ−５０１置換装置が
Ａ−６０３折畳置換器であって、入力値である複数のベクトルの内の少なくともいずれか一つのベクトルが暗号化しようとする平文の不確定生成を下回らない不確定性を有し、且つ、出力値の成分数が入力値の内の暗号化しようとする平文の不確定生成を下回らない不確定性を有するベクトルの成分数と等しければ、この置換装置による暗号化は完全秘匿であることの必要条件を満たし、
Ａ−６０３置換装置であって、入力値である複数のベクトルの内の少なくともいずれか一つのベクトルが暗号化しようとする平文の不確定生成を下回らない不確定性を有さず、および／または、出力値の成分数が入力値の内の暗号化しようとする平文の不確定生成を下回らない不確定性を有するベクトルの成分数と等しくなければ、この置換装置による暗号化は計算量的完全（暗号的安全）であることの必要条件を満たし、
Ａ−６０１一方向置換器（イ）である場合は計算量的完全（暗号的安全）であることの必要条件を満たしている。
【００８６】
2009288758.tif 000264
過程の各演算段階において成分の抜き取りを行う処理の流れを示す図であって、Ａ−５０１置換装置として図２９のＡ−６０１一方向置換器（イ）を用いるもので、
暗号化が計算量的完全秘匿性を持つための必要条件を満たすＡ−００２擬似ラン
2009288758.tif 000265
（一）一または複数のベクトルと、出力するベクトルの成分数｜Ａ｜を入力し、
（二）入力されるベクトルが複数の場合はＡ−４０１連結装置でそれら複数のベクトルを連結して一つのベクトルとし（入力値が二つのベクトルａ、ｂであればそのａ、ｂを連結した一つのベクトル（ａ‖ｂ）を生成し）、
（三）その複数のベクトルが連結された一つのベクトル（前記（ａ‖ｂ））をシード
2009288758.tif 000266
ット生成し、
（四）その擬似ランダムビットをＡ−６０１一方向置換器（イ）からなるＡ−５０１置換器で非線型な置換をして行列Ａ′を生成し、
2009288758.tif 000267
判定し、
2009288758.tif 000268
（ろ）｜Ａ｜＞｜Ａ′｜であればその行列Ａ′を再びＡ−００２擬似ランダムビット生
2009288758.tif 000269
ことによってベクトルＡを得る。
このとき、この装置を用いた暗号化は計算量的完全であることの必要条件を満たしている。
【００８７】  図３５は図３３のＡ−５０１置換装置をＡ−６０２一方向置換器（ロ）またはＡ−６０３折畳置換器またはＡ−６０４折畳＋抜取置換器からなるＡ−５０２置換装置に置き換えた図であって、
暗号化が完全秘匿性を持つための必要条件を満たすＡ−００２擬似ランダムビッ
2009288758.tif 000270
一または複数のベクトルと、出力するベクトルの成分数｜Ａ｜を入力し、
入力されるベクトルが複数の場合はＡ−４０１連結装置でそれら複数のベクトルを連結して一つのベクトルとし（入力値が二つのベクトルａ、ｂであればそのａ、ｂを連結した一つのベクトル（ａ‖ｂ）を生成し）、
2009288758.tif 000271
−２０１データ長管理部で算定し、
その連結された一つのベクトル前記（ａ‖ｂ）をシードとしてＡ−００２擬似ランダ
2009288758.tif 000272
その行列Ａ′をＡ−６０２一方向置換器（ロ）またはＡ−６０３折畳置換器またはＡ−６０４折畳＋抜取置換器からなるＡ−５０１置換器に入力して非線型な置換をして成分数｜Ａ｜を有するベクトルＡを得る。
このとき、入力値であるベクトルの内の少なくともいずれか一つのベクトルが暗号化しようとする平文の不確定生成を下回らない不確定性を有し、且つ、出力値の成分数が入力値の内の暗号化しようとする平文の不確定生成を下回らない不確定性を有するベクトルの成分数と等しければ、この置換装置による暗号化は完全秘匿であることの必要条件を満たす。
【００８８】  図３６は図３４のＡ−５０１置換装置をＡ−６０２一方向置換器（ロ）からなるＡ−５０２置換装置に置き換えた図であって、Ａ−００２擬似ランダムビッ
2009288758.tif 000273
を行う処理の流れを示す図である。
暗号化が完全秘匿性を持つための必要条件を満たすＡ−００２擬似ランダムビッ
2009288758.tif 000274
（一）一または複数のベクトルと、出力するベクトルの成分数｜Ａ｜を入力し、
（二）入力されるベクトルが複数の場合はＡ−４０１連結装置でそれら複数のベクトルを連結して一つのベクトルとし（入力値が二つのベクトルａ、ｂであればそのａ、ｂを連結した一つのベクトル（ａ‖ｂ）を生成し）、
（三）その複数のベクトルが連結された一つのベクトル（前記（ａ‖ｂ））をシード
2009288758.tif 000275
ット生成し、
（四）その擬似ランダムビットをＡ−６０２一方向置換器（ロ）またはＡ−６０３折畳置換器またはＡ−６０４折畳＋抜取置換器からなるＡ−５０２置換器で非線型な置換して行列Ａ′を生成し、
2009288758.tif 000276
判定し、
2009288758.tif 000277
Ａとして出力し、
（ろ）｜Ａ｜＞｜Ａ′｜であればその行列Ａ′を再びＡ−００２擬似ランダムビット生
2009288758.tif 000278
ことによってベクトルＡを得る。
このとき、入力値であるベクトルの内の少なくともいずれか一つのベクトルが暗号化しようとする平文の不確定生成を下回らない不確定性を有すれば、この置換装置による暗号化は完全秘匿であることの必要条件を満たす。
【００８９】  上記の擬似ランダムビット生成器を用いる置換装置であって、図３３から図３６までの処理の流れ図において
入力値が複数で且つ出力値の成分数が入力値の成分数を上回る置換装置がＡ−００３擬似ランダムビット生成器型置換装置（イ）
であり、
入力値が複数で且つ出力値の成分数が入力値の成分数と等しい置換装置が、Ａ−００４擬似ランダムビット生成器型置換装置（ロ）
であり、
入力値が一つで且つ出力値の成分数が入力値の成分数と等しい置換装置はＡ−００５擬似ランダムビット生成器型置換装置（ハ）
である。
【発明の効果】
【００９０】  暗号化が完全秘匿であり、秘密鍵が完全秘匿または計算量的完全秘匿であるならば、使い捨て公開変数ｒｉを暗号文に添付して送受信および／または保管することが可能となる。つまり、今本発明の暗号化を関数ｆとするならば、秘密鍵は装置またはシステムの一部と看做すことができ、暗号鍵は処理の過程の一つと看做されるから、
暗号化ｆはｆ（ｒｉ，Ｍｉ）≡Ｅｉ（つまり、暗号文Ｅｉは使い捨て公開変数ｒｉと平文Ｍｉを関数に入力して得られる値に合同）という形で書き表され、
本発明の暗号化では入力値である変数が漏洩しても暗号文は完全秘匿即ち解読不能であり且つ秘密鍵も完全秘匿性を持つわけであるから、
送受信および／または保管される送信文ＴｉはＴｉ＝（ｒｉ‖Ｅｉ）＝（ｒｉ‖ｆ（ｒｉ，Ｍｉ））（つまり、送信文Ｔｉは使い捨て公開変数ｒｉと暗号文Ｅｉを連結したベクトル）という形で使い捨て公開変数ｒｉを暗号文Ｅｉに添付可能となる。
従って攻撃者によって送信文Ｔｉを盗まれても解読されることはなく、また保管時において従来方式のデータベースで送信文Ｔｉを特に暗号化を必要としないデータと同様に管理しても、データベース管理者あるいはシステム管理者によってさえ、その暗号化によって秘匿すべきとされた情報が漏洩することはなく、暗号をかけた本人は少なくとも二つの秘密鍵を秘匿管理すれば足りる。
【００９１】  また、少なくとも二つの秘密鍵を用い、万が一一つの秘密鍵が漏洩しても残りの秘密鍵による計算量的完全秘匿性が働くことから、ユーザの秘密鍵の管理が容易になる。たとえば、秘密鍵を別々の媒体に保管するようにしても良いし、あるいは一つの秘密鍵に指静脈などの生体情報を用いることによって、秘密鍵の秘匿管理および使い勝手の容易性を格段に高めることができる。
【発明を実施するための最良の形態】
【００９２】  本発明は特定の使用目的に対して発明された暗号処理の装置および方法に関するものではなく、暗号化に関し完全秘匿であり且つ秘密鍵の秘匿に関し計算量的完全秘匿もしくは完全秘匿である暗号処理の装置および方法に関するものであり、技術は使用目的に対して最良か否か判断されるものであるから、本発明の「実施するための」最良の形態は、その使用目的やユーザの能力あるいはユーザのニーズ等によって異なり、従って一つに絞り込むことは不可能若しくは無意味または非論理的である。【００９３】  暗号化が完全秘匿であると同時に、秘密鍵の秘匿の完全性に関しても完全秘匿であることが全ての暗号処理に関する装置および方法の本来の目的であると考えられるが、
実施場面においては、必ずしもそのような装置及び方法が最良とは言い切れない。【００９４】  例えば、図１０から図１９に示したような装置および方法、つまり秘密鍵がいずれもその暗号化しようとする平文の不確定性を下回らない不確定性を有する装置と方法では、暗号化および秘密鍵の秘匿に関し完全秘匿であるが、いずれの秘密鍵も平文の不確定性を下回らないとすれば、大きな秘密鍵であるから必ず媒体等に保管する必要があり、その保管が悪ければそこから機密情報の漏洩を起こすことになってしまう。あまり機密性の高くない情報を扱う一般ユーザにはあまり適さない装置及び方法である。しかしながら、極めて高い機密性を要求される情報の秘匿には最良の装置および方法であると考えられる。しかも構造的にはシンプルである。【００９５】  そこで図２０に示したように一つの秘密鍵を小さくし、秘密鍵の秘匿に関しては計算量的完全秘匿性を持たせるようにすれば、その小さな秘密鍵を短いテキストデータあるいは生体情報とすることが可能となり、毎回入力するようにすることで、もし平文の不確定性を下回らない大きな秘密鍵が盗まれたとしても、小さな秘密鍵の不確定性によって計算量的完全で機密情報を守ることができる。モニタリングやスパイウェアによって短いテキストデータあるいは生体情報として入力される秘密鍵の情報が盗まれない限り、今日的には機密情報が解読されることはない。さほど機密性の高くない情報を扱う一般ユーザには最良の装置および方法であると考えられる。
但し、図２０のような装置および方法であっても、更にもう一つ秘密鍵を追加して、置換装置を追加することによって、図３８から図４０に示すように（図３８から図４０に示すものに限らず、同じ構造を持ちながら置換装置の多数の組み合わせ（置換装置のヴァリエーションを除いても、少なくとも六の二乗かける五かける二通り、つまり少なくとも三百六十通り）が存在する）、暗号化と秘密鍵の秘匿に関し完全秘匿である装置および方法とすることも可能である。しかしながら、更に秘密鍵が増えることで、一般ユーザのレベルでは秘密鍵の管理が煩雑化し、そのことで却って機密情報の管理に穴が開きやすいという問題がある。但しプロユースにおいては望ましい装置および方法である。【００９６】  次に、装置及び方法としての技術的な立場から最良の方法を探れば、
この装置および方法がプログラムであっても、カスタムＬＳＩのようなハードウェアであっても、その部品（モデュール）の種類、点数が少ないほど資源効率が高く、一般的には処理速度も速くなる。従って、全ての置換装置を一つの種類で
2009288758.tif 000279
またはＡ−００４擬似ランダムビット生成器型置換装置（ロ）、またはＡ−００２
2009288758.tif 000280
（ハ）を組み合わせた置換装置を用いることが考えられる。
ところがＭ−１２００暗号文生成モデュールでは、Ａ−００４擬似ランダムビット生成器型置換装置（ロ）やＡ−００４擬似ランダムビット生成器型置換装置
2009288758.tif 000281
ビット生成器型置換装置（ハ）を組み合わせた置換装置のようにＡ−３０２エクストラクタを用いる方式では情報量の欠落が起こることから、復号できなくなってしまうので、この部分に用いることができない。従って、全体を一つの置換装
2009288758.tif 000282
る。【００９７】  処理速度から見れば、積の演算よりも和の演算の方が圧倒的に処理速度が速
2009288758.tif 000283
用いるようにすることが考えられる。また、Ａ−００４擬似ランダムビット生成器型置換装置（ロ）であっても、Ａ−３０１セパレータとＡ−００１ａベクトル
2009288758.tif 000284
全体としてもきわめて高速な処理が可能である。
そこで、資源効率をある程度考慮した装置及び方法であって処理速度的に最良の装置および方法には、
一つには、Ｍ−１１１０秘匿変数生成モデュールとＭ−１２００暗号文生成モデ
2009288758.tif 000285
またはＡ−００４擬似ランダムビット生成器型置換装置（ロ）、またはＡ−００２
2009288758.tif 000286
（ハ）を組み合わせた置換装置を用いる装置および方法があり、
また一つには、Ｍ−１１１０秘匿変数生成モデュールの全ての置換装置に非線型のＡ−００４擬似ランダムビット生成器型置換装置（ロ）、またはＡ−００２擬似
2009288758.tif 000287
を組み合わせた置換装置を用い、Ｍ−１１２０不可視化モデュールの置換装置とＭ−１２００暗号文生成モデュールの置換装置を全てＡ−００１ａベクトル和型
2009288758.tif 000288
上記二つの装置及び方法の内、いずれの装置および方法が速いかについては、プログラム言語やハードウェアにもよるので、一概には決められない。より詳細な設計が必要であり、その結果更なるテューンナップも可能であると考えられる。
2009288758.tif 000289
間のかかる処理は特に復号処理であって、復号において逆数をループ処理または逆数の一覧表の中から検索で見つけ出す処理負荷がきわめて大きい訳であるが、この処理を何らかの装置および／または方法によって高速化できるのであれば、
2009288758.tif 000290
良の選択となる。【００９８】  上記の中からいずれか一つを採り上げて実施例を示すならば、シンプル且つ使い勝手もまずまずであると考えられ、暗号化および秘密鍵の秘匿の完全性が完全秘匿である図３９の装置および方法を図１とともに用いて説明する。【００９９】  使用に当たってユーザは最初に秘密鍵Ｓ１、Ｓ２、Ｓ３とするデータを決める。ここで、秘密鍵Ｓ１は三十二バイトつまり二百五十六ビットを下回らないデータ長を持つテキストデータ、または指静脈などの生体情報または生体情報を複数組み合わせたデータとし、秘密鍵Ｓ２およびＳ３は一メガバイトを下回らないデータ長を持つデータであって、スキャナで読み込むことでディジタル化したデータ、あるいは趣味の写真データ、あるいはディジタルデータ化された音楽などとする。
ここで、ユーザによる秘密鍵の設定がそれぞれに定義されたデータ長を下回らないものであれば、処理にあたってシステムがデータ長をそれぞれのデータ長、つまり秘密鍵Ｓ１は三十二バイトつまり二百五十六ビットに、秘密鍵Ｓ２およびＳ３は一メガバイトに、データ長を調整して用いるものとする。【０１００】  ユーザが暗号化処理を開始すると、
システムは使い捨て公開変数ｒｉをミリ秒単位の時刻データから取得または生成し、Ｍ−１１１０秘匿変数生成モデュールにおいてＡ−００１ａベクトル和型置換装
2009288758.tif 000291
ガバイトまで伸長して変数Ｒｉを生成し、
2009288758.tif 000292
ことによって暗号鍵Ｋｉを生成する。【０１０１】  そこでユーザが暗号化しようとする平文Ｍｉを指定すると、
システムはその平文Ｍｉと前記暗号鍵ＫｉをＭ−１２００暗号文生成モデュールで
2009288758.tif 000293
その暗号文ＥｉにＭ−２０００公開変数添付モデュールにおいてＡ−４０１連結装置を使って使い捨て公開変数ｒｉを添付して送信文Ｔｉを得る。
ここで、平文Ｍｉが秘密鍵Ｓ２およびＳ３のデータ長一メガバイトを下回らない場合は、一メガバイトの単位でブロック暗号処理されることになる。【０１０２】  ユーザが復号処理を開始すると、
システムは送信文Ｔｉから使い捨て公開変数ｒｉと暗号文Ｅｉを抽出し、
Ｍ−１１１０秘匿変数生成モデュールにおいてＡ−００１ａベクトル和型置換装
2009288758.tif 000294
ガバイトまで伸長して変数Ｒｉを生成し、
2009288758.tif 000295
ことによって暗号鍵Ｋｉを生成し、
2009288758.tif 000296
マイナス一倍したベクトルとをベクトル和することによって置換して平文Ｍｉを得る。【０１０３】  送信文Ｔｉが送受信される場合であって、復号処理を行うユーザが暗号化処理を行うユーザと異なる場合、その送信文Ｔｉの受信者側での保管に当たっては、そのままの状態で保管することも可能であるが、特に社内文書として保管する場合は、社内専用の秘密鍵で暗号化することが望ましい。秘密鍵を秘密分散や多重分散などの方法で分散保管し、分散認証などを用いた認証システムでアクセスパーミッションを与えるようにして管理することによってユーザ自身は秘密鍵の情報を一切知ることなく、会社内で統一的に用いることが可能となる。【０１０４】  また最初の秘密鍵の交換についても、上記の秘密分散や多重分散を用いた方法でパーミッションを設定することで鍵交換不要とすることが可能である。【０１０５】  鍵交換を行う場合は、秘密鍵とする情報を一メガバイトを上回らないデータ長に圧縮して暗号化し送受信することで、直接受け渡しすることなく、完全秘匿に鍵交換することが可能となる。【０１０６】  つまり、送信者Ａ受信者Ｂがともに本発明のいずれかの暗号処理の装置および方法を用い、ＡはＡの秘密鍵を使ってこれから共有しようとする秘密鍵を暗号化して送信し、それを受信したＢはＢの秘密鍵でその暗号文を暗号化してＡに送信し、ＡはＡの秘密鍵を使ってそれを復号してＢに送信し、ＢはＢの秘密鍵を使って復号することによって共有しようとする秘密鍵を得ることができる。
但し、この方法では秘密鍵のサイズを超える対象を暗号化するにはブロック暗号となるため、正確な復号が行われず、従って、対象である共有しようとする秘密鍵の情報はＡおよびＢの秘密鍵のサイズ（上記の例では一メガバイト）を下回らなければならない。また、ＡとＢの秘密鍵のサイズ（上記の例では一メガバイト）が異なっても処理は正確に行われないことから、全く同じ装置および方法を用いる必要がある。【０１０７】  また、継続的な通信を行わない場合、例えば契約書の送受信などにおいて、ほぼ一回限りの送受信を秘密鍵の交換をすることなく完全秘匿に暗号通信することが可能である。その装置および方法は上記鍵交換とまったく同じ方法による。
【図面の簡単な説明】
【０１０８】
【図１】  本発明における暗号処理の装置および方法の全体的な構成と処理の流れを示す図である。
【図２】  本発明における暗号処理の装置および方法の基本的な構造単位の構成と処理の流れを示す図である。
【図３】  本発明における暗号処理の装置および方法の内、擬似ランダムビット生成器型置換装置（イ）の処理の流れを示す図である。
【図４】  本発明における暗号処理の装置の内、擬似ランダムビット生成器型置換装置（ロ）の処理の流れを示す図である。
【図５】
2009288758.tif 000297
【図６】  本発明における暗号処理に関し、暗号鍵生成モデュールに秘匿変数生成モデュールを組み込んだ場合の構成と処理の流れを示す図である。
【図７】  本発明における暗号処理に関し、暗号鍵生成モデュールと暗号鍵との間に非可逆処理モデュールを組み込んだ場合の構成と処理の流れを示す図である。
【図８】  図６をやや具体化し、且つ暗号文生成モデュールまで構成と処理の流れを示した図である。
【図９】  図７をやや具体化し、且つ暗号文生成モデュールまで構成と処理の流れを示した図である。
【図１０】  図８と図９をまとめた図である。
【図１１】  本発明における暗号処理に関し、暗号文と秘密鍵に関し完全秘匿である装置の基本的構成と処理の流れを示す図である。
【図１２】  図１１の変数Ｖｉを擬似ランダムビット生成されたものに置き換え、秘匿変数生成モデュールの置換装置を擬似ランダムビット生成器型置換装置（ロ）に置き換えた装置の構成と処理の流れを示す図である。
【図１３】  図１２の不可視化処理モデュールの置換装置を擬似ランダムビット生成器型置換装置（ロ）に置き換えた装置の構成と処理の流れを示す図である。
【図１４】  本発明における暗号処理に関し、二つの秘匿変数を用いる装置および方法の基本的な装置の構成と処理の流れを示す図である。
【図１５】
2009288758.tif 000298
【図１６】
2009288758.tif 000299
【図１７】  図１６の不可視化処理モデュールの置換装置を擬似ランダムビット生成器型置換装置（ロ）に置き換えた装置の構成と処理の流れを示す図である。
【図１８】  図１４の秘匿変数生成モデュールの置換装置を二つとも擬似ランダムビット生成器型置換装置（ロ）に置き換えた装置の構成と処理の流れを示す図である。
【図１９】  図１８の不可視化処理モデュールの置換装置を擬似ランダムビット生成器型置換装置（ロ）に置き換えた装置の構成と処理の流れを示す図である。
【図２０】  本発明における暗号処理の暗号鍵生成モデュールに関し、二つの秘密鍵の内、秘匿変数生成モデュールの置換装置で置換されるもについて暗号鍵の不確定性を下回る不確定性を持つ場合の装置の構成と処理の流れを示す図である。
【図２１】  本発明における暗号処理の秘匿変数生成モデュールの基本的な構成と処理の流れを示す図である。
【図２２】  本発明における暗号処理の不可視化処理モデュールの基本的な構成と処理の流れを示す図である。
【図２３】  置換における不確定性の拡張もしくは転移を示す図である。
【図２４】
2009288758.tif 000300
【図２５】
2009288758.tif 000301
【図２６】  本発明における擬似ランダムビット生成器の表演算部における左上隅のデータの配列と成分の抜き取りによる非線型化を示す図である。
【図２７】  本発明における擬似ランダムビット生成器の表演算部における中ほどの行のデータの配列と成分の抜き取りによる非線型化を示す図である。
【図２８】  本発明における擬似ランダムビット生成器の表演算部における成分の配列と成分の抜き取りによる非線型化を示す図である。
【図２９】  本発明における擬似ランダムビット生成器の非線型化のための成分抜き取りのための一方向化エクストラクタを用いた一方向置換器（イ）の構成と働きを示す図である。
【図３０】  本発明における擬似ランダムビット生成器の非線型化のための成分抜き取りのための一方向化エクストラクタを用いた一方向置換器（ロ）の構成と働きを示す図である。
【図３１】  本発明における擬似ランダムビット生成器の非線型化のための折り畳みのためのセパレータを用いた折畳置換器の構成と働きを示す図である。
【図３２】  本発明における擬似ランダムビット生成器の非線型化のための折り畳みのためのセパレータを用いた折畳置換器＋抜取置換器の構成と働きを示す図である。
【図３３】  本発明における置換装置であって、処理の最終工程で一方向化の処理を行うもので、暗号化が計算量的完全秘匿であるための必要条件を満たす処理の流れを示す図である。
【図３４】  本発明における置換装置であって、処理の各工程で一方向化の処理を行うもので、暗号化が計算量的完全秘匿であるための必要条件を満たす処理の流れを示す図である。
【図３５】  本発明における置換装置であって、処理の最終工程で一方向化の処理を行うもので、暗号化が完全秘匿であるための必要条件を満たす処理の流れを示す図である。
【図３６】  本発明における置換装置であって、処理の各工程で一方向化の処理を行うもので、暗号化が完全秘匿であるための必要条件を満たす処理の流れを示す図である。
【図３７】
2009288758.tif 000302
【図３８】  本発明における、暗号処理の装置および方法であって、秘密鍵を三つ使って暗号文および秘密鍵について完全秘匿性を持つ装置及び方法の内、全ての置換装置を擬似ランダムビット生成器型置換装置（ロ）とした場合の構成と処理の流れを示す図である。
【図３９】
2009288758.tif 000303
【図４０】
2009288758.tif 000304
【図４１】  本発明における置換処理装置の一覧である。
【図４２】  本発明における暗号処理の装置および方法を示す図の内、暗号文および秘密鍵について完全秘匿である装置および方法の一つを示す図。
【図４３】  本発明における暗号処理の装置と方法を示す図の内、暗号文および秘密鍵について完全秘匿である装置および方法の一つを示す図。
【図４４】  本発明における暗号処理の装置と方法を示す図の内、暗号文について完全秘匿であり、秘密鍵について計算量的完全秘匿である装置および方法の一つを示す図である。
【図４５】  本発明における暗号処理の装置と方法を示す図の内、暗号文について完全秘匿であり、秘密鍵について計算量的完全秘匿である装置および方法の一つを示す図である。
【符号の説明】
【０１０９】Ｍ−１０００    ：  暗号化モデュール
Ｍ−１１００    ：  暗号鍵生成モデュール
Ｍ−１１１０    ：  秘匿変数生成モデュール
Ｍ−１１２０    ：  不可視化処理モデュール
Ｍ−１１３０    ：  非可逆処理モデュール
Ｍ−１２００    ：  暗号文生成モデュール
Ｍ−２０００    ：  公開変数添付モデュール
2009288758.tif 000305
2009288758.tif 000306
つ線型の置換装置。擬似ランダムビット生成器型置換装置（イ）。
2009288758.tif 000307
持つ非線型の置換装置。擬似ランダムビット生成器型置換装置（ロ）。
2009288758.tif 000308
である非線型の置換装置。擬似ランダムビット生成器型置換装置（ハ）。
Ａ−１０１      ：  入力値であるベクトル
Ａ−１０２      ：  出力値であるベクトル
Ａ−１０３      ：  素数を法とするベクトルであって、成分に零を含まないベクトル。その素数から一を減じた値を法とするベクトルの各成分に対して、一を加えることで生成され、そのようにして生成されたベクトルの各成分から一を減じることで、その素数から一を減じた値を法とするベクトルとなる。
2009288758.tif 000309
成要素の一つ。
2009288758.tif 000310
器およびＡ−６０４置換器等に用いられるセパレータ。ベクトルを二つに分割する、または二つに分割したベクトルの一方を抜き取る働きをする。
Ａ−３０２      ：  一方向化エクストラクタ
Ａ−３０３      ：  ベーシックエクストラクタ
Ａ−４０１      ：  ベクトルの連結装置
Ａ−５０１      ：  置換器
Ａ−５０２      ：  置換器
Ａ−６０１      ：  一方向置換器（イ）
Ａ−６０２      ：  一方向置換器（ロ）
Ａ−６０３      ：  折畳置換器
Ａ−６０４      ：  折畳＋抜取置換器
Ａ−９０１      ：  置換装置Ａ
Ａ−９０２      ：  置換装置Ｂ
Ａ−９０３      ：  置換装置Γ
Ａ              ：  行列Ａまたは表Ａ
2009288758.tif 000311
2009288758.tif 000312
Ａ′            ：  行列Ａ′または表Ａ′。
｜Ａ｜          ：  行列Ａの成分数
｜Ａ′｜        ：  行列Ａ′の成分数
Ａ              ：  ベクトルＡ
Ａ′            ：  ベクトルＡ′（ベクトルＡプライム）
Ａ″            ：  ベクトルＡ″（ベクトルＡトゥープライム）
Ａ（３）        ：  ベクトルＡ（３）（ベクトルＡスリープライム）
｜Ａ｜          ：  ベクトルＡの成分数
｜Ａ′｜        ：  ベクトルＡ′の成分数
ａ              ：  スカラー
ａ              ：  ベクトルａ
ａｉｊ          ：  行列Ａのｉｊ（アイジェイ）成分。つまり、第ｉ（アイ）行第ｊ（ジェイ）列の成分
（ａｉｊ）      ：  ａｉｊ（但し、ｉ＝１，２，．．．，ｍ  ｊ＝１，２，．．．，ｎ、つまりｉ（アイ）は一からｍ（エム）までの連続する自然数、ｊ（ジェイ）は一からｎ（エヌ）までの連続する自然数）を成分とする行列Ａ
（ａｉ）ｉ＝１，２，．．．，ｎ  ：  ｎ個の成分からなるベクトルＡの成分表記における簡易表記
（ａｉ）ｉ＝１，２，．．．，ｎ  ：  ｎ個の成分からなるベクトルａｉを成分とするベクトルＡの成分表記の簡易表記
（ａ１，ａ２，．．．，ａｎ）    ：  ｎ個の成分からなるベクトルＡの成分表記
（ａ１，ａ２，．．．，ａｎ）    ：  ｎ個の成分からなるベクトルａｉを成分とするベクトルＡの成分表記。
ベクトルａ１，ａ２，．．．，ａｎからなるベクトル。
（ａ，ｂ，ｃ）≠（０，０，０）  ：  ａは零に等しくなく、ｂは零に等しくなく、ｃは零に等しくないことを表す式
（Ｂ１，Ｂ２，．．．，Ｂｎ）    ：  ｎ個のベクトルＢ１，Ｂ２，．．．，Ｂｎからなるベクトルまたは行列。特
2009288758.tif 000313
いて生成された行列Ａの列ベクトルをＢ１，Ｂ２，．．．，Ｂｎで表わしている。
2009288758.tif 000314
Ｅｉ            ：  第ｉ回目の暗号文
Ｈ              ：  不確定性（情報理論的エントロピー）
Ｈ（ａ）        ：  ベクトルａの不確定性（情報理論的エントロピー）。確率の逆数、つまり場合の数を二を底とする対数で表したもの。場合の数のビット表記で単位はビット。等価安全性とも呼ばれる。
Ｋｉ            ：  第ｉ回目の暗号化に暗号鍵として用いる変数
2009288758.tif 000315
Ｖｉから計算によって生成された秘匿変数。ケーアイプライム。この変数が秘匿されることによって暗号化および秘密鍵の秘匿に関し完全秘匿が成立する。
2009288758.tif 000316
Ｖｉから計算によって生成された秘匿変数。ケーアイトゥープライム。この変数が秘匿されることによって暗号化および秘密鍵の秘匿に関し完全秘匿が成立する。
Ｍｉ            ：  第ｉ回目の暗号化処理で暗号化する対象となる平文
Ｎ              ：  和またはベクトル和において法とする値。二を下回らない自然数
2009288758.tif 000317
ｐ              ：  積または内積において法とする値。三を下回らない素数
ｐ−１              素数ｐから一を減じた値。
2009288758.tif 000318
Ｐｉ            ：  第ｉ回目の暗号化処理に用いる使い捨て公開変数ｒｉまたは変数Ｖｉから計算によって生成された第ｉ回目の暗号化に用いる
2009288758.tif 000319
Ｒｉ            ：  第ｉ回目の暗号化処理に用いる使い捨て公開変数ｒｉまたは変数Ｖｉから計算によって生成された第ｉ回目の暗号化に用いる
ｒｉ            ：  第ｉ回目の暗号化処理に用いる使い捨て公開変数
Ｓ                  秘密鍵
Ｓｉ            ：  秘密鍵Ｓを変数νｉによって置換した第ｉ回目の暗号化処理に用いる変数鍵
2009288758.tif 000320
いる変数鍵
2009288758.tif 000321
いる変数鍵
2009288758.tif 000322
いる変数
Ｓ１            ：  秘密鍵
Ｓ２            ：  秘密鍵
Ｓ３            ：  秘密鍵
Ｔｉ            ：  送信文。Ｔｉ＝（ｒｉ‖Ｅｉ）
Ｖｉ            ：  第ｉ回目の暗号化処理に用いる変数
2009288758.tif 000323
νｉ            ：  第ｉ回目の暗号化処理に用いる変数であって、秘密鍵を置換するための変数
2009288758.tif 000324
鍵Ｓ１を置換する変数
2009288758.tif 000325
鍵Ｓ２を置換する変数
2009288758.tif 000326
∈              ：  集合論における演算記号。左辺に成分、右辺に集合を入れ、左辺の成分は右辺の集合に属することを表す。
≡              ：  合同を表す演算記号。左辺と右辺は合同であることを表す。
2009288758.tif 000327
＝              ：  等しいことを表す演算記号。等号。左辺と右辺は等しいことを表す。
2009288758.tif 000328
≠              ：  左辺と右辺が等しくないことを表す演算記号。不等号。
2009288758.tif 000329
＜              ：  右辺の値が左辺の値を上回ることを表す演算記号。
∀              ：  「全て（ｆｏｒａｌｌ）」を表す論理記号
2009288758.tif 000330
「自然数に属する任意の（つまり自然数から適当にとってきた値）ａ」を表す。
ｆ：Ａ→Ｂ      ：  関数ｆによるＡからＢへの写像、またはＡからＢへの写像ｆ
2009288758.tif 000331
【図１】
2009288758.tif 000442
【図２】
2009288758.tif 000443
【図３】
2009288758.tif 000444
【図４】
2009288758.tif 000445
【図５】
2009288758.tif 000446
【図６】
2009288758.tif 000447
【図７】
2009288758.tif 000448
【図８】
2009288758.tif 000449
【図９】
2009288758.tif 000450
【図１０】
2009288758.tif 000451
【図１１】
2009288758.tif 000452
【図１２】
2009288758.tif 000453
【図１３】
2009288758.tif 000454
【図１４】
2009288758.tif 000455
【図１５】
2009288758.tif 000456
【図１６】
2009288758.tif 000457
【図１７】
2009288758.tif 000458
【図１８】
2009288758.tif 000459
【図１９】
2009288758.tif 000460
【図２０】
2009288758.tif 000461
【図２１】
2009288758.tif 000462
【図２２】
2009288758.tif 000463
【図２３】
2009288758.tif 000464
【図２４】
2009288758.tif 000465
【図２５】
2009288758.tif 000466
【図２６】
2009288758.tif 000467
【図２７】
2009288758.tif 000468
【図２８】
2009288758.tif 000469
【図２９】
2009288758.tif 000470
【図３０】
2009288758.tif 000471
【図３１】
2009288758.tif 000472
【図３２】
2009288758.tif 000473
【図３３】
2009288758.tif 000474
【図３４】
2009288758.tif 000475
【図３５】
2009288758.tif 000476
【図３６】
2009288758.tif 000477
【図３７】
2009288758.tif 000478
【図３８】
2009288758.tif 000479
【図３９】
2009288758.tif 000480
【図４０】
2009288758.tif 000481
【図４１】
2009288758.tif 000482
【図４２】
2009288758.tif 000483
【図４３】
2009288758.tif 000484
【図４４】
2009288758.tif 000485
【図４５】
2009288758.tif 000486