(57)【要約】【課題】整数の暗号化及び復号化方法を提供する。【解決手段】本発明に係る方法は、守秘情報を参照する識別子情報等に係る整数Ｘｉを入力として受け付けるステップ、整数Ｘｉを桁の部分にブロック化するステップ、ブロック化した整数部分ごとに、積Ｎが整数部分を超える２つの素数Ａ及びＢを生成し、（Ａ−１）と（Ｂ−１）との積をＤとし、（Ａ−１）と（Ｂ−１）の最小公倍数をＫとするステップ、Ｄ又はＫと素である数Ｅを選択するステップ、整数部分に剰余計算を実施して暗号化するステップ、整数部分の桁の情報を保持するステップ、暗号化した整数部分に対して、ｍを任意の整数としてＥ×Ｆ＝ｍ×Ｋ＋１を成立するＦを選択するステップ、べき乗（ＹｉのＦ乗）の剰余計算で整数部分を復号化するステップ、保持した桁の情報を復元して元の整数を復号化するステップを含む。【選択図】図１
2010186076.tif 000002
【特許請求の範囲】
【請求項１】
整数Ｘｉを暗号化し復号化する方法であって、
積ＮがＸｉを超える２つの素数Ａ及びＢを生成するステップであって、前記積Ｎの桁を少なくとも二つに分割して前記積Ｎから少なくとも二つの整数部分を生成するステップと、
（Ａ−１）と（Ｂ−１）との積をＤとし、（Ａ−１）と（Ｂ−１）の最小公倍数をＫとし、Ｄ又はＫと素である数をＥとして、次式において項ＸｉのＥ乗が計算手段の整数演算に桁あふれを発生する条件で、次式の展開形を用いて整数Ｘｉを変換した整数Ｙｉを生成するステップであって、前記展開形は前記整数Ｘｉの桁を少なくとも二つに分割して前記整数Ｘｉから少なくとも二つの整数部分を生成するステップと、
【数３２】
2010186076.tif 000036
前記積Ｎ及び前記展開形に含まれるそれぞれの整数部分を関連づける情報を保持するステップと、
ｍを任意の整数として次式を成立するＦを用意するステップと、
【数３３】
2010186076.tif 000037
前記保持した前記それぞれの整数部分を関連づける情報に基づき、次式を用いて、前記整数Ｙｉを整数Ｘｎに復号化するステップと、
【数３４】
2010186076.tif 000038
を含む、整数を暗号化し復号化する方法。
【請求項２】
前記それぞれの整数部分を関連づける情報は、前記それぞれの整数部分の桁の情報である、請求項１に記載の整数を暗号化し復号化する方法。
【請求項３】
さらに、前記整数Ｘｉを変換した整数Ｙｉを生成する前に、前記整数Ｘｉから前記整数Ｘｉ以下の整数Ｔを加算して前記整数Ｘｉと置き換えるステップと、
前記変換した整数Ｙｉを整数Ｘｎに復号化した後に、前記整数Ｘｎに前記整数Ｔを減算して前記整数Ｘｎと置き換えるステップと、
を含む、請求項１に記載の整数を暗号化し復号化する方法。
【請求項４】
前記整数Ｔはランダムに発生した整数である、請求項３に記載の整数を暗号化し復号化する方法。
【請求項５】
さらに、暗号化のための鍵をランダムな規則により選択するステップを含み、
前記Ｅは前記暗号化のための鍵をランダムな規則により選択するステップにより選択される、
請求項１に記載の整数を暗号化し復号化する方法。
【請求項６】
さらに、
換字式暗号化を用いて整数を換字暗号した整数に変換するステップと、
換字式復号化を用いて前記換字暗号した整数を復号化するステップと、を含む、
請求項１に記載の整数を暗号化し復号化する方法。
【請求項７】
前記換字式暗号化の鍵は、ランダムな規則により選択される整数である、請求項６に記載の整数を暗号化し復号化する方法。
【請求項８】
前記換字式暗号化は、単表式暗号化、多表式暗号化及び自動鍵暗号化からなる群から選ばれ、
前記換字式復号化は、前記換字式暗号化に対応して単表式復号化、多表式復号化及び自動鍵復号化からなる群から選ばれる、
請求項６に記載の整数を暗号化し復号化する方法。
【請求項９】
前記展開形を用いて前記整数Ｘｉを前記整数Ｙｉに変換した後に、前記換字式暗号化を用いて前記整数Ｙｉを整数Ｚｉに変換する、べき剰余と換字とを連続する暗号化ステップと、
前記換字式復号化を用いて前記整数Ｚｉを前記整数Ｙｉに復号化した後に、前記整数ＹｉをＸｎに復号化する、換字とべき剰余とを連続する復号化ステップと、
を含む、請求項６に記載の整数を暗号化し復号化する方法。
【請求項１０】
前記べき剰余と換字とを連続する暗号化ステップ、及び前記換字とべき剰余とを連続する復号化ステップは、少なくとも２以上の同一の回数実施される、請求項９に記載の整数を暗号化し復号化する方法。
【請求項１１】
前記整数Ｘｉは前記換字式暗号化を用いて変換された整数である、換字とべき剰余とを連続する暗号化ステップと、
前記整数Ｙｉから復号化された前記整数Ｘｎに対して前記換字式復号化を用いて復号化する、べき剰余と換字を連続する復号化ステップと、
を含む、請求項６に記載の整数を暗号化し復号化する方法。
【請求項１２】
前記換字とべき剰余とを連続する暗号化ステップ、及び前記べき剰余と換字を連続する復号化ステップは、少なくとも２以上の同一の回数実施される、請求項１１に記載の整数を暗号化し復号化する方法。
【請求項１３】
前記少なくとも２以上の同一の回数は、所定の正の整数、前記所定の正の整数を暗号化した正の整数、及びランダムに発生した正の整数からなる群から選ばれる、請求項９又は１１に記載の整数を暗号化し復号化する方法。
【請求項１４】
前記整数Ｘｉは、識別子に含まれる文字又は数字の一部又は全体から、可逆的に変換された整数である、請求項１に記載の整数を暗号化し復号化する方法。
【請求項１５】
前記整数Ｘｉは、１次元画像又は２次元画像から可逆的に変換された１次元画像の一部又は全体から、可逆的に変換された整数である、請求項１に記載の整数を暗号化し復号化する方法。
【請求項１６】
さらに、暗号化に先立って、少なくとも一つの桁を元の整数に対して追加することにより桁を増した整数に置き換えるステップを含む、請求項１に記載の整数を暗号化し復号化する方法。
【請求項１７】
さらに、復号化の後に復号化した整数から前記追加した少なくとも一つの桁を除去するステップを含む、請求項１６に記載の整数を暗号化し復号化する方法。
【請求項１８】
請求項１から１７のいずれかに記載の方法の各ステップをコンピュータを用いて実行するための、コンピュータ・プログラム。
【請求項１９】
請求項１から１８のいずれかに記載の方法の各ステップを用いてエンコードした数値を含むコンピュータ可読媒体。
【請求項２０】
整数Ｘｉを暗号化し復号化する装置であって、
積ＮがＸｉを超える２つの素数Ａ及びＢを生成する素数生成部であって、前記積Ｎの桁を少なくとも二つに分割して前記積Ｎから少なくとも二つの整数部分を生成する素数生成部と、
（Ａ−１）と（Ｂ−１）との積をＤとし、（Ａ−１）と（Ｂ−１）の最小公倍数をＫとし、Ｄ又はＫと素である数をＥとして、次式において項ＸｉのＥ乗が計算手段の整数演算に桁あふれを発生する条件で、次式の展開形を用いて整数Ｘｉを変換した整数Ｙｉを生成する剰余暗号化実行部であって、前記展開形は前記整数Ｘｉの桁を少なくとも二つに分割して前記整数Ｘｉから少なくとも二つの整数部分を生成する剰余暗号化実行部と、
【数３５】
2010186076.tif 000039
前記積Ｎ及び前記展開形に含まれるそれぞれの整数部分を関連づける情報を保持する関連情報保持部と、
ｍを任意の整数として次式を成立するＦを用意する秘密鍵生成部と、
【数３６】
2010186076.tif 000040
前記関連情報保持部により保持した前記情報に基づき、次式を用いて、前記整数Ｙｉを整数Ｘｎに復号化する剰余復号化実行部と、
【数３７】
2010186076.tif 000041
を含む、整数を暗号化し復号化する装置。
【請求項２１】
整数Ｘｉを暗号化し復号化するシステムであって、
積ＮがＸｉを超える２つの素数Ａ及びＢを生成する素数生成手段であって、前記積Ｎの桁を少なくとも二つに分割して前記積Ｎから少なくとも二つの整数部分を生成する素数生成手段と、
（Ａ−１）と（Ｂ−１）との積をＤとし、（Ａ−１）と（Ｂ−１）の最小公倍数をＫとし、Ｄ又はＫと素である数をＥとして、次式において項ＸｉのＥ乗が計算手段の整数演算に桁あふれを発生する条件で、次式の展開形を用いて整数Ｘｉを変換した整数Ｙｉを生成する剰余暗号化手段であって、前記展開形は前記整数Ｘｉの桁を少なくとも二つに分割して前記整数Ｘｉから少なくとも二つの整数部分を生成する剰余暗号化手段と、
【数３８】
2010186076.tif 000042
前記積Ｎ及び前記展開形に含まれるそれぞれの整数部分を関連づける情報を保持する関連情報保持手段と、
ｍを任意の整数として次式を成立するＦを用意する秘密鍵生成手段と、
【数３９】
2010186076.tif 000043
前記関連情報保持部により保持した前記情報に基づき、次式を用いて、前記整数Ｙｉを整数Ｘｎに復号化する剰余復号化実行手段と、
【数４０】
2010186076.tif 000044
を含む、整数を暗号化し復号化するシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、整数の暗号化及び復号化の方法に関する、特に、本発明は、守秘情報を参照するための識別情報等を高い秘匿性で暗号化し復号化する方法に関する。
【背景技術】
【０００２】
従来より、法人組織等において構成員を識別するためにユニークな整数等を含む識別子を用いることが知られ、例えば国民健康保険制度等において加入者を識別するために８桁程度の数字が用いられ、又は銀行口座を識別するために銀行の支店及び口座のそれぞれに３桁から１０桁程度の数字等が用いられ、あるいはクレジット会員を識別するために１２桁程度の数字が用いられ、適当な区切り記号、文字列又は他の情報等を併用して、識別される本人が覚えやすい形式が適宜用いられている。
また、暗号及びデジタル署名を実現しうる方式として、桁数が大きい合成数の素因数分解問題が困難であることを安全性の根拠とした公開鍵暗号であるＲＳＡ暗号が知られている（特許文献１及び非特許文献１）。ＲＳＡ暗号は、暗号化の段階においては適当な正数によるべき乗と素数２個の積を法数とする剰余演算とを用い、復号化においては当該積の素因数を要するべき乗根を用いることにより、素因数を知らなければ復号化が困難になることによって暗号の安全性を確保している。
さらに、コンピュータ・ネットワークを介する情報の送受信においてセキュリティを確保するために、暗号化、認証、改ざん検出の機能を有するＳＳＬプロトコル等が知られている（非特許文献２）。ＳＳＬプロトコルに含まれる公開鍵証明書に基づく認証は、ＲＳＡ暗号を用いうることが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第４４０５８２９号明細書
【非特許文献】
【０００４】
【非特許文献１】「ＲＳＡ暗号」［ｏｎｌｉｎｅ］、平成２０年６月１２日、［平成２０年７月３０日検索］、インターネット、＜ＵＲＬ：ｈｔｔｐ：／／ｊａ．ｗｉｋｉｐｅｄｉａ．ｏｒｇ／ｗｉｋｉ／ＲＳＡ％Ｅ６％９Ａ％９７％Ｅ５％８Ｆ％Ｂ７＞
【非特許文献２】「Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ」［ｏｎｌｉｎｅ］、平成２０年７月２９日、［平成２０年７月３０日検索］、インターネット、＜ＵＲＬ：ｈｔｔｐ：／／ｊａ．ｗｉｋｉｐｅｄｉａ．ｏｒｇ／ｗｉｋｉ／Ｓｅｃｕｒｅ＿Ｓｏｃｋｅｔｓ＿Ｌａｙｅｒ＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、従来技術又は従来技術の組み合わせにおいては、暗号化前の数字又は文字と、復号化後の数字又は文字の形式との組み合わせ等を手がかりとして、公開鍵と対をなす秘密鍵が解読されると、同じ公開鍵及び秘密鍵の組み合わせを用いる暗号は全て解読可能になるという弱点があった。ＲＳＡ暗号においては素因数を特定するまでの所用時間の長さを暗号の安全性の根拠としていることから、解読に用いるコンピュータ機器等を高性能化することにより、一定の解読手法であってもより短時間で解読されて秘匿情報が漏洩する可能性が高まるという問題があった。
【０００６】
また、パーソナル・コンピュータ用のアプリケーション・ソフトウェア等においては内部で取り扱える数値の範囲の制約から、例えば倍精度型としてコンピュータで扱える整数の精度は１５桁程度までであり、例えば１６桁の整数の自然数のべき乗等の計算を実行させるとプロセッサのオーバーフローが発生して、正確な計算結果が得られない場合がある。このため、元の整数を桁の範囲で適宜分割し、分割して得られた整数ごとに独立して、計算中にオーバーフローが生じないように、べき剰余計算を実施する等の方策が必要であった。これは文章の暗号化において単位バイト数ごとに分割して平文を暗号化及び復号化することと同様であるが、こうした手法では、分割した整数又は語句ごとに暗号化及び復号のための鍵が関連づけられるために、第三者により多くの解読の手がかりを与えてしまうという問題があった。
例えば、クレジットカードの登録番号及び有効期限の年月は、典型的にはそれぞれ１６桁及び４桁の整数の形式を用いて表しうる。これらからなる２０桁の整数を暗号化し復号化することが可能な、高い秘匿性を有する方法が提供できれば、桁を分割して複数の整数を別個に暗号化する従来の技法と比較して、第三者による解読のための手がかりとなる情報を増やすことなく、セキュリティを確保することが可能になる。すなわち、個人情報を秘匿する技術として、倍精度型整数の精度の範囲を超える多桁の整数を暗号化し復号化する方法が求められている。
【０００７】
さらに、音声による通話又は印刷物等の文書を介する情報の漏洩においては、コンピュータ・ネットワークを用いて伝達される情報に対するＳＳＬプロトコル等のセキュリティ技術では対応できないため、音声又は文書等を含む多様な形態で個人情報を隠蔽しうる方法が必要であった。
【０００８】
本発明は、暗号化及び復号の諸段階の実施に要する処理時間は従来技術とほぼ同等のまま、パーソナル・コンピュータ用のアプリケーション・ソフトウェア等の有効数字の範囲内で、べき剰余を用いる暗号化及び復号の方法を提供することを目的とする。すなわち、本発明においては、２０桁程度の整数を、第三者による解読の手がかりを増大することなく、当該有効数字の範囲内で、べき剰余を用いて正確に暗号化及び復号化する方法を提供することを目的とする。これにより、本発明は、コンピュータ・ネットワークを含む情報通信を介して送受信される個人情報等のセキュリティを確保することを目的とする。また、本発明は、コンピュータ・ネットワーク、音声、又は文書等の多様な形態で送受信しうる暗号化された情報を、同一の識別番号等から生成することを目的とする。
【課題を解決するための手段】
【０００９】
本発明者は、計算過程において計算機が桁あふれを生じるような大きな数を意図的に発生する計算手順を用い、所定の手順で桁あふれを回避して暗号化及び復号化を実施することにより、個人情報を秘匿する方法を見出した（特願２００８−２４４７６１）。さらに、本発明者は、パーソナル・コンピュータ用のアプリケーション・ソフトウェア等の有効数字の範囲内で、多桁の整数のべき剰余を用いうる暗号化及び復号の方法を見出したことにより、本発明を完成するに至った。
本発明では、以下のような解決手段を提供する。
【００１０】
（１）  整数Ｘｉを暗号化し復号化する方法であって、積ＮがＸｉを超える２つの素数Ａ及びＢを生成するステップであって、積Ｎの桁を少なくとも二つに分割して積Ｎから少なくとも二つの整数部分を生成するステップと、（Ａ−１）と（Ｂ−１）との積をＤとし、（Ａ−１）と（Ｂ−１）の最小公倍数をＫとし、Ｄ又はＫと素である数をＥとして、次式において項ＸｉのＥ乗が計算手段の整数演算に桁あふれを発生する条件で、次式の展開形を用いて整数Ｘｉを変換した整数Ｙｉを生成するステップであって、展開形は整数Ｘｉの桁を少なくとも二つに分割して整数Ｘｉから少なくとも二つの整数部分を生成するステップと、
【数１】
2010186076.tif 000003
積Ｎ及び展開形に含まれるそれぞれの整数部分を関連づける情報を保持するステップと、ｍを任意の整数として次式を成立するＦを用意するステップと、
【数２】
2010186076.tif 000004
保持したそれぞれの整数部分を関連づける情報に基づき、次式を用いて、整数Ｙｉを整数Ｘｎに復号化するステップと、
【数３】
2010186076.tif 000005
を含む、整数を暗号化し復号化する方法。
【００１１】
本発明の暗号化及び復号化方法においては、整数演算を実施可能なコンピュータ装置等を用い、整数を入力して暗号化した整数を生成し、当該生成した暗号化した整数を復号化することにより、入力した整数を復元しうる。
入力に用いる整数は、コンピュータ処理可能な整数であればよく、文字又は画像等から可逆的に変換された整数でもよい。例えば、コンピュータ処理可能な文字のそれぞれに割り当てられた文字コード等を１桁、２桁又は４桁等の１６進数の整数として扱ってもよい。また、例えば、英字アルファベットに含まれる２６個の文字を、２６進数を表す１桁の整数として扱ってもよい。また、例えば、コンピュータ処理可能な画像に含まれる個々の画素を、ＲＧＢ各８ビットの整数の一組とする２４ビットの２進数の整数として扱ってもよい。
一実施形態において、構成員の識別番号等の個人情報は、コンピュータ処理可能な整数に可逆的に変換され、本発明の整数を暗号化し復号化する方法の入力に用いられる。
【００１２】
本発明の暗号化及び復号化方法に係る計算手段は、コンピュータに整数演算を実施させるプログラム等であり、アセンブラ又はコンパイラ等により生成された、インタープリタ等により変換された、あるいはスクリプト又はスプレッドシート等が内蔵する計算ルーチンにより呼び出される機械語プログラム等でありうる。
一実施形態において、桁あふれは、コンピュータが備える中央演算ユニット（ＣＰＵ）の演算レジスタに発生しうる。従って、特定のＣＰＵが有する演算レジスタの桁数に従って、有効な桁数の整数演算が実施されうる。例えば、レジスタ長が１６ビットのＣＰＵの場合、整数演算に用いうる整数は、例えば符号なし１６ビット整数として、１０進数の０〜６５５３５の範囲である。レジスタ長が３２ビットのＣＰＵの場合は、同様に符号なし３２ビット整数として、１０進数の０〜４２９４９６７２９５の範囲である。
別の実施形態において、桁あふれは、インタープリタ、スクリプト又はスプレッドシート等が整数演算のために用意する内部関数において発生しうる。従って、特定のインタープリタ、スクリプト又はスプレッドシート等が有する内部関数が表現可能な整数の桁数に従って、有効な桁数の整数演算が実施されうる。例えば、特定のコンパイラ等において符号なし１６ビット整数の型が定義された変数が表しうる整数は、１０進数の０〜６５５３５の範囲である。
【００１３】
本発明に係る整数を暗号化し復号化する方法において、積ＮがＸｉを超える２つの素数Ａ及びＢを生成するステップは、積Ｎの桁を少なくとも二つに分割して積Ｎから少なくとも二つの整数部分を生成しうる。一実施形態において、積Ｎは次式を用いて上位の桁を有する整数部分Ｎｕ及び下位の桁を有する整数部分Ｎｄに分割されうる。
【数４】
2010186076.tif 000006
式中、Ｍは記数法の底であり、Ｃｄは下位の桁の数であり、Ｃｄは少なくとも１である。別の実施形態において、積Ｎは２０桁の１０進数として扱われ、次式を用いて５桁の１０進数で表される４個の整数部分に分割されうる。
【数５】
2010186076.tif 000007
式中、Ｎ１５は積Ｎの２０位から１６位、Ｎ１０は１５位から１１位、Ｎ５は１０位から６位、Ｎ０は５位から１位をそれぞれ含む、５桁の１０進数である。すなわち、２０桁の１０進数として扱われうる積Ｎは、５桁の１０進数として表されるＮ１５、Ｎ１０、Ｎ５及びＮ０からなる４個の整数部分に置き換えうる。なお、積Ｎが２０桁に満たない場合には上位の桁をゼロ詰めして表してもよい。
【００１４】
一実施形態において、積Ｎと同様に、任意の整数Ｘは次式を用いて上位の桁Ｘｕ及び下位の桁Ｘｄに分割されうる。任意の整数Ｘは、本発明に係る整数を暗号化し復号化する方法において、倍精度型の精度の範囲を超える整数でありうる。例えば、任意の整数Ｘは、入力された整数Ｘｉが２０桁の整数である場合に、整数Ｘｉの２乗、３乗、４乗、等のべき乗の計算により生じうる整数でありうる。また例えば、任意の整数Ｘは、本発明に係る復号化において、整数Ｙｉの２乗、３乗、４乗、等のべき乗の計算により生じうる整数でありうる。
【数６】
2010186076.tif 000008
別の実施形態において、任意の整数Ｘは２０桁の１０進数として扱われ、次式を用いて５桁の１０進数で表される４個の整数部分に分割されうる。
【数７】
2010186076.tif 000009
式中、Ｘ１５は任意の整数Ｘの２０位から１６位、Ｘ１０は１５位から１１位、Ｘ５は１０位から６位、Ｘ０は５位から１位をそれぞれ含む、５桁の１０進数である。すなわち、２０桁の１０進数として扱われうる任意の整数Ｘは、５桁の１０進数として表されるＸ１５、Ｘ１０、Ｘ５及びＸ０からなる４個の整数部分に置き換えうる。なお、任意の整数Ｘが２０桁に満たない場合には上位の桁をゼロ詰めして表してもよい。
【００１５】
本発明に係る、整数を暗号化し復号化する方法においては、それぞれの整数部分を関連づける情報が保持される。これにより、本発明においては、積Ｎ又は任意の整数Ｘに対して、上述の桁の分割から生じた整数部分は互いに関連づけられる。従って、本発明においては、それぞれの整数部分は別個に暗号化され復号化されうる独立した整数ではなく、一つの整数として暗号化され復号化されうる。すなわち、本発明に係る整数を暗号化し復号化する方法においては、第三者による解読のための手がかりを増すことなく、情報を秘匿することが可能になる。
【００１６】
本発明の方法においては、式（Ｉ）で表されるべき乗の計算において、上述の桁あふれを含む任意の桁あふれを発生するよう、整数Ｅを選択する。桁あふれは、例えばＣＰＵ内部における整数演算中の桁あふれの発生の検出、又はコンパイラ等が適宜備える整数演算ライブラリに含まれる桁あふれに対するエラー処理ルーチン等の、当技術分野に公知の手法を用いて検出しうる。
【００１７】
本発明に係る暗号化及び復号化の方法に用いる展開形は、上述のように桁あふれを発生する条件を満たす整数のべき乗を代替する計算法を含む。具体的には、直接に式（Ｉ）を用いる代わりに、式（Ｉ）の項ＸｉのＥ乗における桁あふれを回避するために、当該項を複数の整数の積で表す公知の手法を用いうるが、これに限定しない。
【数８】
2010186076.tif 000010
式中、ｓは０＜ｓ＜Ｅを満たす整数である。展開した右辺のいずれかの項が桁あふれを発生する場合は適宜さらにその項を展開してもよい。式（ＩＶ）のような展開形は整数ｓの選択に計算回数が依存しうる。このように得られたＹｉは、元のＸｉを暗号化した整数でありうる。
【００１８】
また、本発明に係る整数を暗号化し復号化する方法において、式（ＩＩ）で表される整数Ｆは、任意のｍを含んで選択された素数Ａ及びＢに基づいて生成しうる右辺の式（ｍ×Ｋ＋１）の因数であれば何でもよい。整数Ｅ及びＦの対は、当業に公知の公開鍵暗号化技術における公開鍵及び秘密鍵の対として扱ってもよい。
【００１９】
本発明に係る整数を暗号化し復号化する方法においては、桁あふれを発生する条件で式（Ｉ）のＥを選択するため、本発明の方法を用いないコンピュータ装置等においては暗号化した整数Ｙｉを正確に得ることができず、情報秘匿性の高い暗号化を実施することが可能になる。また、桁の分割から生じるそれぞれの整数部分は別個に暗号化され復号化されうる独立した整数ではなく、全体として一つの整数として暗号化され復号化されうる。従って、本発明の方法においては、第三者による解読のための手がかりを増すことなく、情報を秘匿することが可能になる。
【００２０】
（２）  それぞれの整数部分を関連づける情報は、それぞれの整数部分の桁の情報である、（１）に記載の整数を暗号化し復号化する方法。
【００２１】
前述の式（Ｖ）及び式（ＶＩＩ）に例示したように、本発明に係る整数を暗号化し復号化する方法においては、積Ｎ及び任意の整数Ｘはそれぞれ桁を分割して得られる整数部分の集まりとして扱われうる。具体的には、積Ｎは、Ｎ１５、Ｎ１０、Ｎ５及びＮ０からなる４個の整数部分の集まりとして、任意の整数ＸはＸ１５、Ｘ１０、Ｘ５及びＸ０からなる４個の整数部分の集まりとして扱われうる。
【００２２】
それぞれの整数部分は、例えばＮ１５はＮ１０に対して上位の桁である等の相互の関係に基づく情報を伴いうる。積Ｎの他の整数部分及び任意の整数Ｘの整数部分についても同様である。従って、本発明に係る整数を暗号化し復号化する方法においては、それぞれの整数部分を関連づける桁の情報が保持される。これにより、本発明においては、分割した整数部分の集まりを一体の整数として扱うことが可能になる。
【００２３】
（３）  さらに、整数Ｘｉを変換した整数Ｙｉを生成する前に、整数Ｘｉから整数Ｘｉ以下の整数Ｔを加算して整数Ｘｉと置き換えるステップと、変換した整数Ｙｉを整数Ｘｎに復号化した後に、整数Ｘｎに整数Ｔを減算して整数Ｘｎと置き換えるステップと、を含む、（１）に記載の整数を暗号化し復号化する方法。
【００２４】
整数Ｔは、いわゆるオフセットであり、本発明に係る暗号化及び復号化においては、前述の換字式暗号化及び復号化に加えて、数値の加算によるオフセットの適用及び当該数値の減算によるオフセットの消去を用いて、情報の秘匿化を行いうる。
特に、べき剰余を用いる暗号化及び復号化においては、従来の公開鍵暗号化技術等では０、１、及び元の整数自身が変換されずに特異点となりうるが、本発明においてはオフセットを用いて従来法における特異点の数値を変更することが可能である。従って、本発明においては、従来法の特異点に係る問題を避けて暗号化及び復号化を実施することが可能になる。ここで、オフセットＴの加算により得られる整数（Ｘｉ＋Ｔ）が、上述の素数Ａ及びＢの積Ｎを超える場合は、入力として受け付ける整数Ｘｉの範囲を（Ｎ−Ｔ）未満としてもよく、積Ｎが整数（Ｘｉ＋Ｔ）を超えるように素数Ａ及びＢを改めて選択してもよく、適宜設計しうる。
【００２５】
（４）  整数Ｔはランダムに発生した整数である、（３）に記載の整数を暗号化し復号化する方法。
【００２６】
前述の変数Ｅ、変数Ｆ、素数Ａ、素数Ｂ、素数の積Ｎ、任意の整数ｍ等と同様に、整数Ｔも、第三者による暗号の解読に用いられる可能性又は危険性が伴う情報でありうる。本発明に係る整数を暗号化し復号化する方法においては、整数Ｔをランダムに発生した整数とすることにより、第三者による暗号の解読を困難としうる。
【００２７】
（５）  さらに、暗号化のための鍵をランダムな規則により選択するステップを含み、Ｅは暗号化のための鍵をランダムな規則により選択するステップにより選択される、（１）に記載の整数を暗号化し復号化する方法。
【００２８】
本発明に係る暗号化及び復号化の鍵はいずれも整数でありうる。換言すれば、整数として扱うことが可能な情報を、本発明に係る暗号化及び復号化の鍵として用いうる。例えば、文字コード等を用いて特定の文字情報と可逆的に対応する特定の整数を、本発明に係る暗号化及び復号化の鍵として用いてもよく、文字コードに限定せずに整数との関連づけが可能な情報を用いてもよい。
本発明に係る暗号化の鍵を選択するためのランダムな規則は、乱数の発生等を含むランダムな規則を用いることが可能である。例えば、整数の乱数を発生するためのコンピュータ・プログラムを用いて得られる整数を、本発明に係る暗号化の鍵として用いてもよい。これに限定せず、乱数賽等の機構、任意の時刻における電気的雑音の強度と関連づけた数値等をランダムな規則として、これらのランダムな規則に基づいて整数を選択して用いてもよい。
具体的には、本発明に係る整数を暗号化する方法においては、式（Ｉ）に含まれる整数Ｅは、ランダムな規則に基づいて選択されうる。また、本発明に係る整数を復号化する方法においては、式（ＩＩ）により整数Ｅと関連づけられる整数Ｆが選択されうる。
本発明に係る整数を暗号化する方法においては、このランダムな規則による整数Ｅの選択により、整数Ｆも選択される。すなわち、本発明に係る任意の時点におけるべき剰余の計算において選択される一対の整数Ｅ及び整数Ｆは、他のべき剰余の計算中に選択された他の一対の整数Ｅ及び整数Ｆとは関連性のない整数でありうる。従って、本発明に係る暗号化及び復号化に用いられる整数Ｅ及び整数Ｆの正しい値を用いることのない第三者に対して、本発明は極めて高い秘匿性を提供することが可能になる。
【００２９】
（６）  さらに、換字式暗号化を用いて整数を換字暗号した整数に変換するステップと、換字式復号化を用いて換字暗号した整数を復号化するステップと、を含む、（１）に記載の整数を暗号化し復号化する方法。
【００３０】
本発明に係る整数を暗号化し復号化する方法においては、上述のべき剰余を用いる暗号化及び復号化に加えて、換字式暗号化及び換字式復号化を、重畳して用いることが可能である。
【００３１】
換字式暗号化を用いて整数を換字暗号した整数に変換するステップにおいては、入力の整数の数値又は記数法における桁の数字に対して換字暗号が実施される。好適な換字式暗号化はシーザー暗号化であるが、これに限定しない。例えば、整数Ｙｉを換字暗号して整数Ｚｉに換字式暗号化することにおいて、次式のような変換を用いうる。
【数９】
2010186076.tif 000011
式中、Ｒは換字式暗号化の鍵として用いる整数であり、Ｒｏｔ（）は鍵Ｒを用いて整数Ｙｉを換字式暗号化する関数である。Ｒｏｔ（）は、十進法等の記数法を用いて整数Ｙｉを記述して得られる数字の並びを文字列として扱う、公知のシーザー暗号化を用いることができる。例えば、シーザー暗号化における鍵Ｒを整数３として、十進数の数字１文字からなる集合｛０，１，２，３，４，５，６，７，８，９｝の各要素に鍵Ｒを加算し、集合｛３，４，５，６，７，８，９，０，１，２｝の各要素を同一の順番で対応させて換字することが可能である。あるいは、シーザー暗号化とは異なって、鍵Ｒはランダムな順序を用いる情報又は所定の数字の並び方の情報等と関連づけ、対応させる集合はランダムな順序又は所定の数字の並び方でもよい。またあるいは、元の集合の一部の要素に対して鍵Ｒを用いる換字式暗号化を実施してもよく、当該一部の要素の選択には乱数を用いてもよく、当該一部の要素以外の残りの要素に対して公開鍵暗号化を含む任意の暗号化を実施してもよい。これらに限定せず、記数法の桁の数字を予め用意した規則に従って、可逆的かつ一対一に対応するように換字し、整数Ｙｉを整数Ｚｉに変換してもよい。これらの換字式暗号化は、ループカウンタＬに依存せずに毎回実施してもよく、ループカウンタＬに依存して、初回のみ又は偶数回のみ等、Ｌの所定の値に基づいて実施してもよく、適宜設計しうる。
【００３２】
さらに、本発明の方法に係る、換字式復号化を用いて換字暗号した整数を復号化するステップにおいては、前述の換字式暗号化を用いて変換された整数から、変換前の整数が復号化される。例えば、変換された整数Ｚｉから元の整数Ｙｉを復号化する場合に、次式に示す換字式復号化を用いうる。
【数１０】
2010186076.tif 000012
式中、Ｒｏｔ−１（）は、換字式暗号化により生成した整数Ｚｉに対して、暗号化の鍵Ｒを用いて元の整数Ｙｉに復号化する関数である。
【００３３】
本発明の方法は、暗号化において上述のべき剰余を用いる暗号化及び換字式暗号化の両者を用い、復号化においてこれらの両者を逆順で用いる。それぞれの暗号化の順序は何でもよく、暗号化において先に換字式暗号化を実施した後にべき剰余を用いる暗号化を実施してもよく、これらを入れ替えて暗号化してもよい。復号化は、対応する暗号化に含まれる換字式又はべき剰余による暗号化の手順を逆順で実施すればよい。
【００３４】
従来技術に係る公開鍵暗号化等の同じ方法を用いて暗号化を繰り返すことは、他の鍵による１回の暗号化と等価でありうるが、本発明においてはべき剰余と異なる方法である換字式暗号化を含み、これらを重畳することで互いに独立した暗号化を多重に用いることになり、元の情報を飛躍的に解読困難とすることができる。すなわち、Ｆが第三者に知られにくいこと、換字式暗号化及びべき剰余を用いる暗号化が独立して繰り返し用いられうることによる解読の困難さに基づいて、本発明においては高いセキュリティを確保しうる。重畳及び繰り返しの詳細は後述する。
【００３５】
さらに、本発明に係る整数を暗号化し復号化する方法においては、べき剰余による暗号化において特異点である０、１及びＮに対しても、これらの整数を換字式暗号化によって他の整数に変換することにより、べき剰余の特異点ではない整数に暗号化することが可能になる。すなわち、本発明に係る方法においては、従来技術における特異点を元の整数に含んでもよく、第三者による解読の手がかりとなりうる特異点がないことから、より高い秘匿性を提供することが可能になる。
【００３６】
（７）  換字式暗号化の鍵は、ランダムな規則により選択される整数である、（６）に記載の整数を暗号化し復号化する方法。
【００３７】
換字式暗号化の鍵Ｒは、第三者による暗号の解読に用いられる可能性又は危険性が伴う情報であり、本発明により暗号化される整数又は暗号化した整数を含む何らかの情報から推測されないことが望ましい。そこで、本発明に係る整数を暗号化し復号化する方法においては、換字式暗号化の鍵Ｒを、ランダムに発生した整数に基づいて選択することにより、第三者による暗号の解読を困難としうる。
【００３８】
一実施形態において、換字式暗号化の鍵Ｒは、予め素数の集合等を用意し、この集合の要素を順番付けし、最大の順番の数字以下の整数の乱数を発生させ、発生した乱数を順番として有する要素として選択することができる。別の実施形態において、換字式暗号化の鍵Ｒは、暗号化される整数以下の整数の乱数を発生させ、発生した乱数との差が最も小さい素数から選択することができる。他の変数の値を選択することについても同様である。またこれらの選択の手順に限らず、発生した乱数との関連づけが可能な選択の手順により、上記の変数の値を選択してもよい。このようにすることで、本発明に係る整数を暗号化し復号化する方法においては、第三者による暗号の解読をさらに困難としうる。
【００３９】
（８）  換字式暗号化は、単表式暗号化、多表式暗号化及び自動鍵暗号化からなる群から選ばれ、換字式復号化は、換字式暗号化に対応して単表式復号化、多表式復号化及び自動鍵復号化からなる群から選ばれる、（６）に記載の整数を暗号化し復号化する方法。
【００４０】
本発明に係る換字式暗号化は、当業に公知のシーザー暗号化を含む換字式暗号化を用いることが可能である。単表式暗号化は、単一換字式暗号化、単文字換字暗号化、単純換字暗号化を含む公知の暗号化でもよく、多表式暗号化は、ヴィジュネル暗号化、進行鍵暗号化、正方換字表を用いる暗号化を含む公知の暗号化でもよく、自動鍵暗号化は暗号化の鍵が元の整数又は暗号文、又はその両方に基づいて自動的に変更あるいは更新される暗号化でもよい。本発明に係る復号化においても、暗号化と同様に換字式復号化を用いることが可能であり、暗号化として列挙した種々の方法に対応する復号化の手順を用いることが可能である。
【００４１】
（９）  展開形を用いて整数Ｘｉを整数Ｙｉに変換した後に、換字式暗号化を用いて整数Ｙｉを整数Ｚｉに変換する、べき剰余と換字とを連続する暗号化ステップと、換字式復号化を用いて整数Ｚｉを整数Ｙｉに復号化した後に、整数ＹｉをＸｎに復号化する、換字とべき剰余とを連続する復号化ステップと、を含む、（６）に記載の整数を暗号化し復号化する方法。
【００４２】
このようにすることで、本発明に係る整数を暗号化する方法においては、異なる暗号化の方法を連続することにより、同じ暗号化の方法の繰り返しからは得られない、より秘匿性の高い暗号化が可能になる。本発明に係る整数を復号化する方法においても、対応する暗号化の手順を知らなければ正確な復号化ができないため、第三者による解読にはより多くの手間を必要とする。従って、本発明に係る整数を暗号化し復号化する方法においては、元の整数に対して極めて高い秘匿性を与えることが可能になる。
【００４３】
（１０）  べき剰余と換字とを連続する暗号化ステップ、及び換字とべき剰余とを連続する復号化ステップは、少なくとも２以上の同一の回数実施される、（９）に記載の整数を暗号化し復号化する方法。
【００４４】
このようにすることで、暗号化ステップにおいては、べき剰余と換字とが交互に繰り返される。隣接する暗号化の方法は互いに異なるので、それぞれの暗号化は互いに独立して実施される。すなわち、隣接する二つの暗号化は、等価な一つのべき剰余又は換字式暗号化と置き換えることはできないので、本発明に係る連続する暗号化ステップを用いて暗号化した整数は、第三者による解読により多くの手間を必要とする。同様に、連続する復号化ステップにおける隣接する二つの復号化は、等価な一つのべき剰余又は換字式暗号化と置き換えることはできないため、本発明に係る整数を暗号化し復号化する方法においては、元の整数に対して極めて高い秘匿性を与えることが可能になる。
【００４５】
（１１）  整数Ｘｉは換字式暗号化を用いて変換された整数である、換字とべき剰余とを連続する暗号化ステップと、整数Ｙｉから復号化された整数Ｘｎに対して換字式復号化を用いて復号化する、べき剰余と換字を連続する復号化ステップと、を含む、（６）に記載の整数を暗号化し復号化する方法。
【００４６】
本発明に係る整数を暗号化し復号化する方法においては、連続する暗号化ステップとして換字式暗号化とべき剰余を用いる暗号化とが交互に実施され、連続する復号化ステップとしてべき剰余を用いる復号化と換字式復号化とが、暗号化と対応して逆順で交互に実施されればよい。前述の（２）に示したように、暗号化においてべき剰余を用いる暗号化を先に実施する場合は、復号化において換字式復号化を先に実施すればよく、（４）に示すように暗号化において換字式暗号化を先に実施する場合は、復号化においてべき剰余を用いる復号化を先に実施すればよい。これらの連続する手順が実施可能であることは、本発明に係る方法を用いて暗号化したときの正確な情報に基づいてのみ、暗号化された整数が正しく復号化され、当該正確な情報に基づかない解読の試行では、復号化に膨大な手間を必要とすることを意味している。従って、本発明に係る整数を暗号化し復号化する方法においては、元の整数に対して極めて高い秘匿性を与えることが可能になる。
【００４７】
（１２）  換字とべき剰余とを連続する暗号化ステップ、及びべき剰余と換字を連続する復号化ステップは、少なくとも２以上の同一の回数実施される、（１１）に記載の整数を暗号化し復号化する方法。
【００４８】
前述の（９）に示した暗号化ステップと同様に、本発明においては、換字とべき剰余とを交互に繰り返して暗号化してもよい。隣接する暗号化の方法は互いに異なるので、それぞれの暗号化は互いに独立して実施されうる。すなわち、隣接する二つの暗号化は、等価な一つのべき剰余又は換字式暗号化と置き換えることはできないので、本発明に係る連続する暗号化ステップを用いて暗号化した整数は、第三者による解読により多くの手間を必要とする。同様に、連続する復号化ステップにおける隣接する二つの復号化は、等価な一つのべき剰余又は換字式復号化と置き換えることはできない。本発明においてはこれらの繰り返し手順が実施可能であり、本発明に係る方法を用いて暗号化したときの正確な情報に基づいてのみ、暗号化された整数が正しく復号化される。一方、当該正確な情報に基づかない第三者による解読の試行においては、復号化に膨大な手間を必要とする。従って、本発明に係る整数を暗号化し復号化する方法においては、元の整数に対して極めて高い秘匿性を与えることが可能になる。
【００４９】
（１３）  少なくとも２以上の同一の回数は、所定の正の整数、所定の正の整数を暗号化した正の整数、及びランダムに発生した正の整数からなる群から選ばれる、（９）又は（１１）に記載の整数を暗号化し復号化する方法。
【００５０】
当該回数は、コンピュータ・プログラムにおける制御のためのループカウンタ等に記憶させる数値として設定してもよい。当該回数は２回以上であればよいが、暗号化の強度を確保するために、予め下限を設定してもよい。また、暗号化及び復号化の計算処理のための時間を短縮するために、予め上限を設定してもよい。従って、本発明に係る整数を暗号化し復号化する方法における当該回数の値は、予め設定された下限及び／又は上限の範囲に従って、所定の正の整数、所定の正の整数を暗号化した正の整数、及びランダムに発生した正の整数からなる群から選ばれうる。当該回数を暗号化する方法は何でもよい。
このように、べき剰余を用いる暗号化及び換字式暗号化のいずれとも独立した変数でありうる当該回数を秘密とすることで、当該回数は第三者に不明となる。すなわち、第三者の解読の手間はさらに膨大となりうる。従って、本発明に係る整数を暗号化し復号化する方法においては、元の整数に対して極めて高い秘匿性を与えることが可能になる。
【００５１】
（１４）  整数Ｘｉは、識別子に含まれる文字又は数字の一部又は全体から、可逆的に変換された整数である、（１）に記載の整数を暗号化し復号化する方法。
【００５２】
本発明に係る識別子は、典型的にはコンピュータ処理可能な文字（文字としての数字を含む）又は数値であり、文字は文字コード等の公知技法を用いることによりユニークな整数に変換されうる。従って、本発明に係る整数の暗号化及び復号化の方法においては、ユニークな整数との関連づけが可能な文字又は数値を元の整数として暗号化し、復号化することができる。
【００５３】
（１５）  整数Ｘｉは、１次元画像又は２次元画像から可逆的に変換された１次元画像の一部又は全体から、可逆的に変換された整数である、（１）に記載の整数を暗号化し復号化する方法。
【００５４】
本発明に係る画像は、典型的にはコンピュータ処理可能な画像データであり、例えば一つの画素は、Ｒ（赤）Ｇ（緑）Ｂ（青）の各色ごとに８ビットの階調の値を含む符号なしの２４ビットの整数でありうる。２次元画像は、所定の手順に従って画素を並び替えることにより１次元画像に変換してもよい。このようにして、画素からなる画像は整数として扱うことができ、特定の画像はユニークな整数と関連づけられる。暗号化される元の整数に含まれる画素数は適宜設計しうる。従って、本発明に係る整数の暗号化及び復号化の方法においては、ユニークな整数との関連づけが可能な１次元又は２次元画像を元の整数として暗号化し、復号化することができる。
【００５５】
（１６）  さらに、暗号化に先立って、少なくとも一つの桁を元の整数に対して追加することにより桁を増した整数に置き換えるステップを含む、（１）に記載の整数を暗号化し復号化する方法。
【００５６】
このようにすることで、暗号化される整数Ｘｉに対して、任意に選択される桁数を追加した整数を生成して暗号化の入力に用いうる。桁数を増した整数Ｗｉは、元の整数Ｘｉが同一であっても、増した桁数及び当該桁数の整数に含まれる各桁の数字に依存して変化しうる。従って、同一のＸｉ及び任意に選択される桁数の整数に基づいて、互いに異なる整数Ｗｉを生成して暗号化に用いうる。
一実施形態において、暗号化される整数Ｘｉは生年月日の日付の情報を含む文字列に基づいて生成される４桁、６桁、又は８桁等の整数であり、任意に選択される桁数は例えば２桁の整数でありうる。本発明に係る整数を暗号化し復号化する方法のユーザ等は、自己の生年月日に基づく同一の整数及び任意に選択される２桁の整数から生成される、桁数を増した整数Ｗｉを暗号化の入力とし、当該２桁の整数を使い分けることにより、複数の暗号化した整数を生成して利用しうる。暗号化される整数は例えば１０桁等であっても、ユーザは全ての桁の数字を使用目的ごとに記憶する必要はなく、当該２桁の整数を使い分ければよい。
従って、本発明に係る整数を暗号化し復号化する方法においては、生年月日の日付等の個人情報を含む文字列と関連づけられる整数であっても、任意に選択される桁数を増して暗号化することにより、複数の暗号化した整数を生成して使い分けることが可能になる。
【００５７】
（１７）  さらに、復号化の後に復号化した整数から追加した少なくとも一つの桁を除去するステップを含む、（１６）に記載の整数を暗号化し復号化する方法。
【００５８】
このようにすることで、本発明に係る整数を暗号化し復号化する方法においては、復号化の後に、桁を増した整数Ｗｉから元の整数Ｘｉを完全に復号化することが可能になる。
【００５９】
（１８）  （１）から（１７）のいずれかに記載の方法の各ステップをコンピュータを用いて実行するための、コンピュータ・プログラム。
【００６０】
これにより、本発明に係る整数を暗号化し復号化する方法の各ステップをコンピュータに実行させうる。従って、暗号化及び復号化に係る各ステップはコンピュータを用いて自動的に処理されうる。
【００６１】
（１９）  （１）から（１８）のいずれかに記載の方法の各ステップを用いてエンコードした数値を含むコンピュータ可読媒体。
【００６２】
これにより、本発明に係る整数を暗号化し復号化する方法を用いて、記憶媒体に記録する任意のデータ、及び／又は記憶媒体の特定の記憶領域を参照するためのファイル割り当てテーブル等に含まれる数値を暗号化及び復号化しうる。当該データ又は当該数値は整数と見なしうるものであれば何でもよい。すなわち、本発明により、第三者に対して隠蔽したコンピュータ可読媒体を提供しうる。具体的には、コンピュータ可読媒体はフラッシュメモリ等の電気的記憶媒体、ＣＤ−ＲＯＭ等の光学読み取り可能媒体、ハードディスク等の磁気記憶媒体等の任意の形態を含む。本発明に係る整数を暗号化し復号化する方法を用いて提供しうるコンピュータ可読媒体は、暗号化又は復号化の諸段階においてコンピュータ・ネットワーク等を介する必要はなく、ネットワーク等から切り離されたオフライン状態でも本発明に係る暗号化及び復号化の方法を用いてエンコードした情報を記憶しうる。従って、本発明においては、通信技術と連携して動作するセキュリティ技術等とは独立して、単独で暗号化及び復号化の方法を用いるコンピュータ可読媒体を提供しうる。
【００６３】
（２０）  整数Ｘｉを暗号化し復号化する装置であって、積ＮがＸｉを超える２つの素数Ａ及びＢを生成する素数生成部であって、積Ｎの桁を少なくとも二つに分割して積Ｎから少なくとも二つの整数部分を生成する素数生成部と、（Ａ−１）と（Ｂ−１）との積をＤとし、（Ａ−１）と（Ｂ−１）の最小公倍数をＫとし、Ｄ又はＫと素である数をＥとして、次式において項ＸｉのＥ乗が計算手段の整数演算に桁あふれを発生する条件で、次式の展開形を用いて整数Ｘｉを変換した整数Ｙｉを生成する剰余暗号化実行部であって、展開形は整数Ｘｉの桁を少なくとも二つに分割して整数Ｘｉから少なくとも二つの整数部分を生成する剰余暗号化実行部と、
【数１１】
2010186076.tif 000013
積Ｎ及び展開形に含まれるそれぞれの整数部分を関連づける情報を保持する関連情報保持部と、ｍを任意の整数として次式を成立するＦを用意する秘密鍵生成部と、
【数１２】
2010186076.tif 000014
関連情報保持部により保持した情報に基づき、次式を用いて、整数Ｙｉを整数Ｘｎに復号化する剰余復号化実行部と、
【数１３】
2010186076.tif 000015
を含む、整数を暗号化し復号化する装置。
【００６４】
本発明に係る整数の暗号化及び復号化装置においては、ＣＰＵ内部における整数演算中の桁あふれの検出又はプログラム実行中の整数演算の桁あふれ発生の検出を実施可能であればよい。
また、本発明に係る整数の暗号化及び復号化装置においては、桁あふれを発生する条件で前述の式（Ｉ）のＥを選択した後に、例えば前述の式（ＩＶ）又は（Ｖ）を用いて積Ｎを展開し、さらに式（ＶＩ）又は（ＶＩＩ）を用いてＸｉを展開し、整数Ｘｉを暗号化した整数Ｙｉを正確に得ることができる。
さらに、本発明に係る装置においては、積Ｎ及び整数Ｘｉのそれぞれを分割して得られる整数部分の関連づけの情報を保持しうる。これにより、本発明に係る装置においては、入力の整数Ｘｉを一つの整数として暗号化し復号化することが可能になり、第三者による解読のための手がかりを増すことなく、情報を秘匿しうる。
【００６５】
従って、本発明に係る整数を暗号化及び復号化する装置においては、個人情報等と関連づけられた整数に対して高いセキュリティを確保した暗号化した整数を生成でき、この暗号化した整数を正しく復号化して元の整数を得られる。
【００６６】
（２１）  整数Ｘｉを暗号化し復号化するシステムであって、積ＮがＸｉを超える２つの素数Ａ及びＢを生成する素数生成手段であって、積Ｎの桁を少なくとも二つに分割して積Ｎから少なくとも二つの整数部分を生成する素数生成手段と、（Ａ−１）と（Ｂ−１）との積をＤとし、（Ａ−１）と（Ｂ−１）の最小公倍数をＫとし、Ｄ又はＫと素である数をＥとして、次式において項ＸｉのＥ乗が計算手段の整数演算に桁あふれを発生する条件で、次式の展開形を用いて整数Ｘｉを変換した整数Ｙｉを生成する剰余暗号化手段であって、展開形は整数Ｘｉの桁を少なくとも二つに分割して整数Ｘｉから少なくとも二つの整数部分を生成する剰余暗号化手段と、
【数１４】
2010186076.tif 000016
積Ｎ及び展開形に含まれるそれぞれの整数部分を関連づける情報を保持する関連情報保持手段と、ｍを任意の整数として次式を成立するＦを用意する秘密鍵生成手段と、
【数１５】
2010186076.tif 000017
関連情報保持部により保持した情報に基づき、次式を用いて、整数Ｙｉを整数Ｘｎに復号化する剰余復号化実行手段と、
【数１６】
2010186076.tif 000018
を含む、整数を暗号化し復号化するシステム。
【００６７】
本発明に係る整数を暗号化及び復号化するシステムにおいては、ＣＰＵ内部における整数演算中の桁あふれの検出又はプログラム実行中の整数演算の桁あふれ発生の検出を実施可能であればよく、これを用いて式（ＩＸ）で表されるべき乗計算に含まれる整数Ｅを選択してもよい。
また、本発明に係る整数を暗号化し復号化するシステムにおいては、桁あふれを発生する条件で前述の式（Ｉ）のＥを選択した後に、例えば前述の式（ＩＶ）又は（Ｖ）を用いて積Ｎを展開し、さらに式（ＶＩ）又は（ＶＩＩ）を用いてＸｉを展開し、整数Ｘｉを暗号化した整数Ｙｉを正確に得ることができる。
さらに、本発明に係るシステムにおいては、積Ｎ及び整数Ｘｉのそれぞれを分割して得られる整数部分の関連づけの情報を保持しうる。これにより、本発明に係るシステムにおいては、入力の整数Ｘｉを一つの整数として暗号化し復号化することが可能になり、第三者による解読のための手がかりを増すことなく、情報を秘匿しうる。
【００６８】
従って、本発明に係る整数を暗号化及び復号化するシステムにおいては、個人情報等と関連づけられた整数に対して高いセキュリティを確保した暗号化した整数を生成でき、この暗号化した整数を正しく復号化して元の整数を得られる。
【００６９】
本発明に係る整数を暗号化及び復号化する方法、装置、システム等は、コンピュータ・ネットワーク技術等の、既存の情報伝達技術等と組み合わせることができ、そのように組み合わせた技術もまた、本発明の技術範囲に含まれる。同様に、本発明の技法を含む情報記録システム、情報管理システム、情報処理システム等も、本発明の技術範囲に含まれる。さらに、本発明の技法は、暗号化及び復号化の諸段階を、ＦＰＧＡ（現場でプログラム可能なゲートアレイ）、ＡＳＩＣ（特定用途向け集積回路）、これらと同等のハードウェア・ロジック素子、プログラム可能な集積回路、又はこれらの組み合わせが記憶し得るプログラムの形態、すなわちプログラム製品として提供し得る。具体的には、入出力、データバス、メモリバス、システムバス等を備えるカスタムＬＳＩ（大規模集積回路）の形態として、本発明に係る暗号化及び復号化装置等を提供でき、そのように集積回路に記憶されたプログラム製品の形態も、本発明の技術範囲に含まれる。
【発明の効果】
【００７０】
本発明によれば、計算機が桁あふれを発生する条件において、有効数字の範囲内で当該整数を暗号化及び復号化する方法を用いて、個人を特定するための識別番号等を暗号化した整数を生成することができる。本発明においては、倍精度型の精度の範囲を超える多桁の整数であっても、相互に関連づけを有する整数部分の分割を用いてべき剰余を計算する方法を提供することにより、第三者による解読のための手がかりを増すことなく、情報を秘匿することが可能になる。すなわち、本発明は乱数を適用可能な目標に対して具体的な実装及び製品化が可能な形態を提供でき、簡単なロジックに比して解読の困難さを飛躍的に向上させたという効果がある。
従って、本発明によれば、第三者に対して生成した整数から当該識別番号等の推定を極めて困難として、当該識別番号を秘匿しうるという効果がある。また、本発明によれば、有効数字の範囲内で当該整数を暗号化及び復号化する方法に加えて、換字式暗号化を重畳して暗号化及び復号を実施することにより、第三者の解読は飛躍的に困難となって、当該識別番号等の秘匿性を高めることが可能である。また、本発明によれば、生年月日等の同一の個人情報を含む文字列を表す整数及び任意に選択される整数を用いて、ランダムに生成した鍵、又は桁数を増した整数を用いて暗号化及び復号化することにより、同一の個人情報等から複数の異なる暗号化した整数を生成して使い分けることが可能になる。さらに、本発明によれば、音声による通話又は印刷物等の文書等を含む多様な形態で個人情報を隠蔽することが可能になる。
【図面の簡単な説明】
【００７１】
【図１】本発明の一実施形態に係る、整数を暗号化する方法のフロー図である。
【図２】本発明の一実施形態に係る、暗号化した整数を復号化する方法のフロー図である。
【図３】本発明に係る、整数を暗号化する方法の別の実施形態のフロー図である。
【図４】本発明に係る、暗号化した整数を復号化する方法の別の実施形態のフロー図である。
【図５】本発明の一実施形態に係る、整数を暗号化する方法を用いる個人情報隠蔽手順の例を示す図である。
【図６】本発明の一実施形態に係る、整数を暗号化する方法を用いる個人情報隠蔽手順の別の例を示す図である。
【図７】本発明の一実施形態に係る、整数を暗号化する方法を用いる個人情報隠蔽手順のさらに別の例を示す図である。
【図８】本発明の一実施形態に係る、暗号化した整数の復号化手順の例を示す図である。
【図９】本発明の一実施形態に係る、暗号化の方法の諸段階をスプレッドシート形式の計算アプリケーション・パッケージを用いて実装する例を示す図である。
【図１０】本発明の一実施形態に係る、復号化の方法の諸段階をスプレッドシート形式の計算アプリケーション・パッケージに実装して計算する実施例を示す図である。
【発明を実施するための形態】
【００７２】
以下、本発明の実施形態について、図面を併用して説明する。
【００７３】
［暗号化及び復号化のフロー図］
図１及び図２に、本発明の一実施形態に係る、整数を暗号化し復号化する方法のフロー図を示す。図１は本発明に係る整数を暗号化する方法のフロー図の例であり、図２は当該暗号化した整数を復号化する方法のフロー図の例である。
【００７４】
［暗号化の諸段階］
まず、図１を参照し、暗号化の諸段階を説明する。本発明に係る整数を暗号化する方法は、図１のステップＳ１００において、変数領域を確保する。具体的には、次の表１に列挙する変数を用いる計算のためにコンピュータ装置等のメモリ領域が適宜確保される。
【表１】
2010186076.tif 000019
【００７５】
暗号化する整数としては、識別子等に含まれうる符号なしの整数が挙げられるが、これに限定せず、任意の形式の整数を本発明に係る方法に用いうる。好適には、暗号化する整数は０以上の任意の整数でありうる。
一実施形態において、計算に用いるコンピュータ装置等における整数Ｘｉ、Ｙｉ、Ｚｉ、Ｘｎ及びＹｎのワード長は、当該コンピュータ装置等が備えるＣＰＵの内部命令において一つの整数を表すために用いうるレジスタのビット幅の最大以内でありうる。例えば、１６ビットレジスタを用いて内部命令に含まれる整数演算を実施可能なＣＰＵを備えるコンピュータ装置においては、整数Ｘｉ、Ｙｉ、Ｚｉ、Ｘｎ及びＹｎのワード長は１６ビット以下であり、これらの整数の変数は１０進数の記法における０以上６５５３５以下でありうる。
【００７６】
次いで、本発明に係る整数を暗号化する方法は、ステップＳ１１０において、積ＮがＸｉを超える２つの素数Ａ及びＢを生成しうる。素数Ａ及びＢは、予め素数の集合等を用意して適宜選択してもよい。
【００７７】
一実施形態において、ステップＳ１１０は、積Ｎの桁を少なくとも二つに分割して積Ｎから少なくとも二つの整数部分を生成してもよい。例えば、積Ｎは次式を用いて上位の桁を有する整数部分Ｎｕ及び下位の桁を有する整数部分Ｎｄに分割してもよい。
【数１７】
2010186076.tif 000020
式中、Ｍは記数法の底であり、Ｃｄは下位の桁の数であり、Ｃｄは少なくとも１である。別の実施形態において、積Ｎは２０桁の１０進数として扱われ、次式を用いて５桁の１０進数で表される４個の整数部分に分割されうる。
【数１８】
2010186076.tif 000021
式中、Ｎ１５は積Ｎの２０位から１６位、Ｎ１０は１５位から１１位、Ｎ５は１０位から６位、Ｎ０は５位から１位をそれぞれ含む、５桁の１０進数である。すなわち、２０桁の１０進数として扱われうる積Ｎは、５桁の１０進数として表されるＮ１５、Ｎ１０、Ｎ５及びＮ０からなる４個の整数部分に置き換えうる。なお、積Ｎが２０桁に満たない場合には上位の桁をゼロ詰めして表してもよい。
【００７８】
次いで、本発明に係る整数を暗号化する方法は、ステップＳ１２０において、（Ａ−１）と（Ｂ−１）との積をＤに代入し、（Ａ−１）と（Ｂ−１）の最小公倍数をＫに代入する。
次いで、本発明に係る整数を暗号化する方法は、ステップＳ１３０において、Ｄ又はＫと素である数Ｅを生成する。
次いで、本発明に係る整数を暗号化する方法は、ステップＳ１４０において、次の式（ＸＩＩ）の右辺の項（ＸｉのＥ乗）が、計算手段の整数演算に桁あふれを発生するか否かを判定する。判定の結果が真であればステップＳ１５０に進み、偽であればステップＳ１３０に戻る。
【数１９】
2010186076.tif 000022
【００７９】
桁あふれの検出は、計算手段が備えるＣＰＵの内部動作の状況を記憶するための、ＣＰＵの特定のレジスタに含まれるフラグ（例えばステータス・レジスタ又はコンディション・レジスタ等に含まれるオーバーフロー・フラグ等）の値を参照してもよく、コンパイラ言語等により予めオペレーティング・システムに例外処理等を登録して当該例外処理の動作を参照してもよく、スクリプト言語又はコンパイラ言語等に付属するライブラリ等が備えるオーバーフロー・エラー処理を参照してもよく、適宜設計しうる。
【００８０】
次いで、本発明に係る整数を暗号化する方法は、ステップＳ１５０において、式（ＸＩＩＩ）の展開形を用いて、整数Ｘｉを暗号化した整数Ｙｉを生成しうる。式（ＸＩＩＩ）の展開形には、例えば次の式を用いうる。
【数２０】
2010186076.tif 000023
式中、Ｍは記数法の底であり、Ｃｄは前記下位の桁の数であり、Ｃｄは少なくとも１でありうる。すなわち、このようにして置き換えたＸｕ又はＸｄを用いて、式（ＸＩＩＩ）の剰余計算を実施しうる。このようにすることで、本発明に係る整数を暗号化し復号化する方法においては、桁あふれを発生する条件で前述の式（ＸＩＩＩ）のＥを選択した後に、式（ＸＩＶ）を用いてＸｉを展開し、桁あふれを避けて、暗号化した整数であるＹｉを正確に得ることができる。
【００８１】
一実施形態において、積Ｎと同様に、本発明に係る方法は、ステップＳ１５０において、整数Ｘｉを含む任意の整数Ｘに対して、次式を用いて上位の桁Ｘｕ及び下位の桁Ｘｄに分割された整数部分を生成しうる。Ｘｕ及びＸｄは上述の式（ＸＩＶ）と同様である。任意の整数Ｘは、本発明に係る整数を暗号化し復号化する方法において、倍精度型の精度の範囲を超える整数でありうる。例えば、任意の整数Ｘは、入力された整数Ｘｉが２０桁の整数である場合に、整数Ｘｉの２乗、３乗、４乗、等のべき乗の計算により生じうる整数でありうる。また例えば、任意の整数Ｘは、本発明に係る復号化において、整数Ｙｉの２乗、３乗、４乗、等のべき乗の計算により生じうる整数でありうる。
【数２１】
2010186076.tif 000024
【００８２】
例えば、記数法の底であるＭを２とし、Ｘｉの桁数を１６桁、下位の桁数Ｃｔを８桁とする場合、式（ＩＸ）は次式のように表される。
【数２２】
2010186076.tif 000025
【００８３】
例えば、本発明に係る整数を暗号化し復号化する方法の実施手段等が１６ビット幅のレジスタを有するＣＰＵを備えるコンピュータ装置等である場合に、元の整数Ｘｉの値が１０進数の６５５３２等であると、任意の整数Ｘに対するべき乗の計算において、最も小さい整数のべき数でありうる２を用いた時点で、当該ＣＰＵが備える１６ビット幅のレジスタを用いて表しうる整数の上限値６５５３５を超えてしまう。すなわち、単に元の整数をそのままべき乗する通常の計算方法に従って式（ＸＩＩＩ）の右辺に含まれるＸｉのＥ乗の計算を実施すると、正確なべき乗の値が得られない場合がある。
本発明に係る方法においては、例えば式（ＸＶＩ）により表される桁の分割を用いて上位の桁と下位の桁をそれぞれ整数部分として分割しうる。例えば任意の整数Ｘとして１０進数の６５５３２を用い、これを２進数の１１１１１１１１１１１１１１００（２）として表し、上位８桁と下位８桁等に分割し、上位８桁に含まれる整数１１１１１１１１（２）（１０進数の２５５）及び下位８桁に含まれる整数１１１１１１００（２）（１０進数の２５２）を用い、２５５の２乗、２５５と２５２の積、２５２の２乗をそれぞれ計算すると、これらの整数の積はいずれも当該ＣＰＵが備える１６ビット幅のレジスタを用いて表しうる整数の範囲内にあることは明白である。３２ビット幅のレジスタ、６４ビット幅のレジスタ等についても同様である。特に、６４ビットのデータ長を有する整数は倍精度型の精度の範囲にあり、当該精度の範囲を超えうるべき乗等の計算結果に対して、本発明に係る方法は桁あふれによる誤りを避けることが可能である。
従って、例えば前述の式（ＸＩＩＩ）として表されるＸｉのべき乗の計算において、最も少ない回数であるＸｉの２乗の場合に、式（ＸＶ）の右辺の２乗からは、Ｘｕの２乗、Ｘｕ・Ｘｄ、及びＸｄの２乗が生成され、これらはいずれも元のＸｉの桁数以下の整数でありうるため、桁あふれを避けられる。すなわち、Ｘｉの任意のべき乗において、式（ＸＶ）の手順を繰り返すことにより、べき乗の計算過程での桁あふれを避けることが可能になる。
【００８４】
別の実施形態において、入力の整数Ｘｉを含む任意の整数Ｘは２０桁の１０進数として扱われ、次式を用いて５桁の１０進数で表される４個の整数部分に分割されうる。
【数２３】
2010186076.tif 000026
式中、Ｘ１５は任意の整数Ｘの２０位から１６位、Ｘ１０は１５位から１１位、Ｘ５は１０位から６位、Ｘ０は５位から１位をそれぞれ含む、５桁の１０進数である。すなわち、２０桁の１０進数として扱われうる任意の整数Ｘは、５桁の１０進数として表されるＸ１５、Ｘ１０、Ｘ５及びＸ０からなる４個の整数部分に置き換えうる。なお、任意の整数Ｘが２０桁に満たない場合には上位の桁をゼロ詰めして表してもよい。
【００８５】
分割する桁数は、計算手段等が備えるＣＰＵの整数演算のためのレジスタのビット幅等に基づいて適宜設定しうる。好適には、式（ＸＶ）に示したように、符号なし整数演算のためのレジスタのビット幅を等分した上位の桁数及び下位の桁数を、分割した桁として用いうる。より好適には、式（ＸＶＩＩ）に示したように、入力の整数Ｘｉを２０桁の整数として表し、これを４個の５桁の整数に分割したそれぞれの整数部分を、分割した桁として用いうる。
【００８６】
以上の諸段階により、元の整数Ｘｉから、べき剰余を用いて暗号化した整数であるＹｉを得られる。整数Ｙｉを表すために必要なワード長は、元の整数Ｘｉを表すためのワード長と同じでありうるが、これに限定せず、暗号化した整数Ｙｉの用途等に応じて、又は他のセキュリティ手段又は方法等を組み合わせて、桁数を増す数字等を追加してもよく、あるいは整数Ｙｉを文字に変換して適宜記号等を含む文字を任意に追加してもよい。
【００８７】
次いで、本発明に係る整数を暗号化する方法は、ステップＳ１６０において、上述の用に分割したそれぞれの整数部分を関連づける情報を保持する。具体的には、分割前の整数に対するそれぞれの整数部分の桁の情報が保持される。例えば、分割前の整数Ｘに対して、整数部分であるＸ１５、Ｘ１０、Ｘ５、及びＸ０のそれぞれが、任意の整数Ｘの２０位から１６位、１５位から１１位、１０位から６位、及び５位から１位であることの情報が保持される。
【００８８】
本発明に係る、整数を暗号化し復号化する方法においては、積Ｎ及び展開形に含まれるそれぞれの整数部分を関連づける情報が保持される。これにより、本発明においては、積Ｎ又は任意の整数Ｘに対して、上述の桁の分割から生じた整数部分は互いに関連づけられる。従って、本発明においては、それぞれの整数部分は別個に暗号化され復号化されうる独立した整数ではなく、一つの整数として暗号化され復号化されうる。すなわち、本発明に係る整数を暗号化し復号化する方法においては、第三者による解読のための手がかりを増すことなく、情報を秘匿することが可能になる。
【００８９】
このようにすることで、本発明に係る整数を暗号化し復号化する方法においては、桁あふれを発生する条件で式（ＸＩＩＩ）のＥを選択するため、本発明の方法を用いないコンピュータ装置等においては暗号化した整数Ｙｉを正確に得ることができず、情報秘匿性の高い暗号化を実施することが可能になる。
【００９０】
一実施形態において、本発明に係る暗号化の方法における任意の２個の整数の積は、次式のように置き換えて展開しうる。一例として、２個の整数として整数Ｐ及びＱを示す。式中、Ｐ及びＱはそれぞれ２０桁の１０進数として表し、上位の桁に数字が存在しない場合はゼロ詰めしてもよい。
【数２４】
2010186076.tif 000027
Ｐ又はＱはいずれも、上述の積Ｎでもよく、入力の整数Ｘｉでもよく、任意の整数Ｘでもよい。式（ＸＶＩＩＩ）のように展開することにより、分割された整数部分どうしの積である式中の各項に含まれるＰ１５Ｑ１５、Ｐ１５Ｑ１０等はいずれも倍精度型の精度の範囲にある。
【００９１】
式（ＸＶＩＩＩ）と同様に、２個の素数の積であるＮを次式のように表してもよい。式中、素数Ａ及びＢはそれぞれ２０桁の１０進数として表し、上位の桁に数字が存在しない場合はゼロ詰めしてもよい。
【数２５】
2010186076.tif 000028
【００９２】
本発明に係る整数を暗号化する方法においては、桁ごとに差分を算出することにより、Ｎに対する剰余を求めてもよい。一例として、次式に２個の整数ＰＱの積のＮに対する剰余を示す。剰余の算出においては、公知の計算技法を任意に用いることが可能である。例えば、第２式の差（ＰＱ−ＡＢ）が負である場合の剰余はＰＱでありうる。
【数２６】
2010186076.tif 000029
【００９３】
［復号化の諸段階］
次に、復号化の諸段階を説明する。本発明に係る整数を復号化する方法は、図２のステップＳ２００において、変数領域を確保する。この変数領域の確保は、前述の暗号化の諸段階におけるステップＳ１００と同様でもよく、暗号化及び復号の諸段階を単独のコンピュータ装置等に内蔵し、共通の変数領域を暗号化及び復号の両方の諸段階に用いてもよい。
【００９４】
次いで、本発明に係る整数を復号化する方法は、ステップＳ４１０において、整数部分を関連づける情報を復元する。この関連づけは、図１を用いて示した本発明に係る暗号化のステップＳ１６０により保持された、整数部分どうしの関連づけの情報である。従って、ステップＳ４１０の動作により、複数の整数部分に対して、それぞれに関連づけられた桁の情報が復元される。例えば、整数部分であるＸ１５、Ｘ１０、Ｘ５、及びＸ０のそれぞれが、任意の整数Ｘの２０位から１６位、１５位から１１位、１０位から６位、及び５位から１位であることの情報が復元され、分割前の整数Ｘの桁を正しく再現することが可能になる。
【００９５】
次いで、本発明に係る整数を復号化する方法は、ステップＳ２１０において、ｍを任意の整数として次の式（ＸＶＩ）を成立するＦを生成する。
【数２７】
2010186076.tif 000030
式（ＸＸＩ）において、整数Ｆは、任意のｍを含んで選択された素数Ａ及びＢに基づいて生成しうる右辺の式（ｍ×Ｋ＋１）の因数であれば何でもよい。
次いで、本発明に係る暗号化した整数を復号化する方法は、ステップＳ２２０において、次の式（ＸＸＩＩ）を用いて前記暗号化したＹｉをＸｎに復号化する。
【数２８】
2010186076.tif 000031
【００９６】
このようにすることで、本発明に係る整数を暗号化し復号化する方法においては、桁あふれを発生する条件で式（ＸＩＩＩ）のＥを選択するため、本発明の方法を用いないコンピュータ装置等においては暗号化した整数Ｙｉを正確に得ることができず、情報秘匿性の高い暗号化を実施することが可能になる。さらに、本発明の整数を暗号化し復号化する方法においては、暗号化の過程である式（ＸＩＩＩ）に含まれず、復号の過程である式（ＸＸＩ）及び式（ＸＸＩＩ）に含まれる整数Ｆが第三者に知られにくい又は推定されにくいことに基づいて高いセキュリティを確保しうる。
【００９７】
式（ＸＸＩ）に含まれる任意の２個の整数の積の算出には、上述の式（ＸＶＩＩＩ）又は式（ＸＩＸ）に示した、桁を分割した整数部分ごとの積の展開を用いてもよい。式（ＸＸＩＩ）に含まれる剰余計算には、上述の式（ＸＸ）に示した、桁を分割した整数部分ごとの積の展開を用いてもよい。すなわち、本発明に係る整数を暗号化し復号化する方法においては、暗号化と同様に復号化においても、倍精度型の精度の範囲を超える整数の積又は剰余を正しく求めることが可能である。さらに、本発明においては、倍精度型の精度を超える整数の積又は剰余を用いる暗号化及び復号化の鍵の種類及び数は、倍精度型の精度の範囲内にある整数の暗号化及び復号化の鍵の種類及び数と同等である。従って、本発明においては、第三者による解読のための手がかりを増すことなく、倍精度型の精度を超える整数を暗号化し復号化することが可能である。
【００９８】
図１及び図２に示した本発明に係る整数を暗号化し復号化する方法においては、個人を識別するための識別子等を整数型の識別子として受け付けて暗号化しうる。これに限らず、本発明に係る整数を暗号化し復号化する方法においては、整数のべき乗及び剰余計算等を実施可能なコンピュータ装置等が受け付けうる、種々のデータもまた暗号化に用いうる。例えば、整数に変換した画像を本発明の方法を用いて暗号化することにより、第三者に対して隠蔽した画像の伝達が可能になる。また例えば、記憶媒体の特定の記憶領域を参照するためのファイル割り当てテーブル等を本発明の方法を用いて暗号化することにより、第三者に対して隠蔽した記憶媒体等を提供しうる。これらの、本発明に係る整数を暗号化する方法を用いて提供しうる記憶媒体等は、暗号化の諸段階においてコンピュータ・ネットワーク等を介する必要はなく、ネットワーク等から切り離されたオフライン状態でも暗号化及び復号化を実施可能である。従って、本発明においては、通信技術と連携して動作するセキュリティ技術等とは独立して、単独で暗号化及び復号化の方法を提供しうる。
【００９９】
［暗号化及び復号化の別の実施形態］
図３及び図４を用いて、本発明の別の実施形態に係る暗号化及び復号化の別の実施形態を説明する。まず、図３を参照し、暗号化の諸段階を説明する。前述の図１を用いて示した実施形態及び前述の表１と共通する箇所は説明を省略する。本発明に係る整数を暗号化する方法は、図３のステップＳ１０５において、変数領域を確保する。具体的には、前述の表１に示した変数に加えて、次の表２に示す変数を追加した計算のためにコンピュータ装置等のメモリ領域が適宜確保される。
【表２】
2010186076.tif 000032
【０１００】
このとき、ループカウンタＬ等の初期設定を適宜実施してもよい。
例えば、べき剰余を用いる暗号化及び換字式暗号化の組み合わせを全体として３回繰り返す場合に、ステップＳ１０５においてループカウンタＬに整数３を設定してもよい。これに限定せず、ループカウンタＬは、所定の正の整数、前記所定の正の整数を暗号化した正の整数、及びランダムに発生した正の整数からなる群から選択してもよい。
ループカウンタＬは、べき剰余を用いる暗号化及び換字式暗号化のいずれとも独立した変数であり、暗号化による秘匿性の強度に影響し、暗号化及び復号化のために計算時間に影響しうる。
ループカウンタＬに対して、秘匿性の強度を確保するために、予め下限を設定してもよい。さらに、暗号化及び復号化の計算処理のための時間を短縮するために、予め上限を設定してもよい。従って、本発明に係る整数を暗号化し復号化する方法におけるループカウンタＬの値は、予め設定された下限及び／又は上限の範囲に従って、所定の正の整数、前記所定の正の整数を暗号化した正の整数、及びランダムに発生した正の整数からなる群から選ばれうる。ループカウンタＬを第三者に秘密とすることで、それぞれの暗号化の方法における秘匿性に加えて、第三者の解読の手間はさらに膨大となりうる。従って、本発明に係る整数を暗号化し復号化する方法においては、元の整数に対して極めて高い秘匿性を与えることが可能になる。
【０１０１】
他の、べき剰余を用いる暗号化に含まれる変数であるオフセットＴ及び任意の整数ｍ、並びに換字式暗号化に含まれる変数である鍵Ｒも同様に、第三者に秘密となるように選択してもよい。
【０１０２】
後続のステップＳ１０は、前述の図１を用いて示した本発明に係る暗号化の諸段階と同等である。ステップＳ１０に含まれるステップＳ１１０からステップＳ１６０までの動作により、暗号化された整数Ｙｉ及び計算過程で用いた複数の整数部分を相互に関連づける情報が保持される。また、任意にオフセットＴを用いて、暗号化された整数Ｙｉをオフセットしてもよい。具体的には、ステップＳ１５０の動作により生成したＹｉに換えて、オフセットした（Ｙｉ＋Ｔ）を用いてもよい。
【０１０３】
次いで、本発明に係る整数を暗号化する方法は、ステップＳ３０に含まれる換字式暗号化の諸段階を、順次実施する。ステップＳ３０は、次のＳ３１０及びＳ３２０の各ステップを含む。まず、本発明に係る整数を暗号化する方法は、ステップＳ３１０において、鍵Ｒで整数Ｙｉを換字式暗号化し、整数Ｚｉを生成する。例えば、整数Ｚｉは、次式で表される。
【数２９】
2010186076.tif 000033
式中、Ｒは換字式暗号化の鍵として用いる整数であり、Ｒｏｔ（）は鍵Ｒを用いて整数Ｙｉを換字式暗号化する関数である。具体的には、Ｒｏｔ（）は、十進法等の記数法を用いて整数Ｙｉを記述して得られる数字の並びを文字列として扱う、公知のシーザー暗号化を用いることができる。例えば、シーザー暗号化における鍵Ｒを整数３として、十進数の数字１文字からなる集合｛０，１，２，３，４，５，６，７，８，９｝の各要素に鍵Ｒを加算し、集合｛３，４，５，６，７，８，９，０，１，２｝の各要素を同一の順番で対応させて換字することが可能である。あるいは、シーザー暗号化とは異なって、鍵Ｒはランダムな順序を用いる情報又は特定の数字の並び方の情報等と関連づけ、対応させる集合は｛８，０，２，４，６，３，７，９，５，１｝のように昇順ではない順序でもよい。これらに限定せず、記数法の桁の数字を予め用意した規則に従って、可逆的かつ一対一に対応するように換字し、整数Ｙｉを整数Ｚｉに変換してもよい。
例えば、英字アルファベットを２６進数の１桁の数字として扱い、ｕｎｉｘ（登録商標）オペレーティング・システムが備える文字列をシーザー暗号化するためのｒｏｔ１３関数等を利用してもよい。また例えば、このｒｏｔ１３関数が有する鍵である、整数の１３に換えて任意の１桁の整数を鍵に用い、同様の関数を１０進数の整数に対するシーザー暗号化の関数として定義して用いてもよい。
【０１０４】
次いで、本発明に係る整数を暗号化する方法は、ステップＳ３２０において、必要であれば桁数の情報を保持する。例えば、換字式暗号化により生成した整数Ｚｉの最上位がゼロである場合に、この情報を変換前の整数Ｙｉの桁数として保持してもよい。当該保持した桁数の情報は、後述する復号化の諸段階において生成する整数の確認のために用いられてもよい。すなわち、ステップＳ３２０の動作は、前述のステップＳ１６０の動作とは異なって、換字式暗号化により生じる桁数の変化等の情報を保持するために用いうる。
【０１０５】
ステップＳ１０及びステップＳ３０を続けて実施した後に、本発明に係る整数を暗号化する方法は、ステップＳ１８０において、ループカウンタＬをデクリメントする。さらに、ステップＳ１９０において、ループカウンタＬが０以下であるかを判定する。判定の結果が真であれば終了し、偽であればステップＳ１９５に進み、上述の式（ＸＩＩ）から生成した整数ＺｉをＸｉとして、ステップＳ１０の諸段階を繰り返す。
なお、繰り返しにおいて、変数Ａ、Ｂ、Ｄ、Ｋは同じ値を再利用してもよい。変数Ｅ及びＦの対も同じ値を再利用してもよいが、より好適には、ループカウンタＬの値に依存して変数Ｅ及びＦの対を変化することにより、第三者による解読をさらに困難にすることが可能になる。
このようにして、ステップＳ１９０の判定が真になるまで上述の諸段階を繰り返し、暗号化した整数Ｚｉが得られる。例えば、ループカウンタＬを３とした場合には、上述のステップＳ１０及びステップＳ３０からなる諸段階が３回繰り返される。
【０１０６】
従って、本発明に係る整数を暗号化する方法においては、ループカウンタＬが０以下となるまで、ステップＳ１０に含まれるべき剰余を用いる暗号化の諸段階、及びステップＳ３０に含まれる換字式暗号化の諸段階が、続けて繰り返して実行される。べき剰余を用いる暗号化の諸段階と換字式暗号化の諸段階とは、全体を入れ替えてもよい。すなわち、ステップＳ１００の変数初期化の後にステップＳ３０に含まれる換字式暗号化の諸段階を実施し、その後にステップＳ１０に含まれるべき剰余を用いる暗号化の諸段階を実施し、ステップＳ１８０及びステップＳ１９０、適宜ステップＳ１９５を実施してもよい。
【０１０７】
このように、本発明に係る整数を暗号化する方法においては、べき剰余を用いる暗号化の諸段階と換字式暗号化の諸段階とを重畳して用いることにより、いずれかの暗号化のみを用いる場合と比較して、極めて高い秘匿性を確保することが可能になる。
【０１０８】
次に、本発明に係る整数を暗号化し復号化する方法の別の実施形態の、復号化の諸段階を説明する。
【０１０９】
本発明に係る整数を暗号化する方法は、図４のステップＳ２０５において、変数領域を確保し、ループカウンタＬを初期化する。この変数領域の確保は、前述の暗号化の諸段階におけるステップＳ１０５と同様でもよく、暗号化及び復号化の諸段階を一つのコンピュータ装置等に内蔵し、共通の変数領域を暗号化及び復号化の両方の諸段階に用いてもよい。ループカウンタＬの初期化は、復号化と対応する暗号化におけるループカウンタＬの値を繰り返し用いうる。例えば、暗号化においてループカウンタＬを３とした場合には、復号化においても同様にループカウンタＬを３とする。
次いで、本発明に係る暗号化した整数を復号化する方法は、ステップＳ４０に含まれる換字式暗号を復号化する諸段階、及びステップＳ２０に含まれるべき剰余を用いる復号化の諸段階を実施する。ここで、復号化の対象になる数は、図３を用いて前述した暗号化した整数Ｚｉである。
【０１１０】
ステップＳ４０は、Ｓ４１０及びＳ４２０の各ステップを含む。ステップＳ４１０では、必要であれば整数Ｚｉの桁数の情報が復元される。これは、単に暗号化の過程のステップＳ３２０において保持した情報との照合のために行われてもよい。ステップＳ４２０においては、換字式暗号の復号化が実施され、暗号化した整数Ｚｉから整数Ｙｉを生成する。例えば、整数Ｙｉは次式により復号化される。
【数３０】
2010186076.tif 000034
式中、Ｒｏｔ−１（）は、換字式暗号化により生成した整数Ｚｉを、鍵Ｒを用いて元の整数Ｙｉに復号化する関数である。
【０１１１】
次いで、本発明に係る整数を復号化する方法においては、べき剰余を用いる復号化の諸段階を実施する。ステップＳ２０に含まれるステップＳ４１０、ステップＳ２１０、及びステップＳ２２０は、図２を用いて前述した復号化の諸段階と共通であり説明を省略する。なお、ステップＳ１５０においてオフセットした（Ｙｉ＋Ｔ）を用いた場合は、Ｘｎの復号化において、ステップＳ２２０の動作に先立って、整数Ｙｉに換えてオフセットを消去した（Ｙｉ−Ｔ）が用いられる。
【０１１２】
ステップＳ４０及びステップＳ２０を続けて実施した後に、本発明に係る整数を復号化する方法は、ステップＳ２８０において、ループカウンタＬをデクリメントする。さらに、ステップＳ２９０において、ループカウンタＬが０以下であるかを判定する。判定の結果が真であれば終了し、偽であればステップＳ２９５に進み、上述の式（ＸＶ）から生成した整数ＸｎをＺｉとして、ステップＳ４０の諸段階を繰り返す。このようにして、ステップＳ２９０の判定が真になるまで上述の諸段階を繰り返し、復号化した整数Ｘｎが得られる。例えば、ループカウンタＬを３とした場合には、上述のステップＳ４０及びＳ２０からなる諸段階が３回繰り返される。
【０１１３】
従って、本発明に係る整数を復号化する方法においては、ループカウンタＬが０以下となるまで、ステップＳ４０に含まれる換字式暗号を復号化する諸段階、及びステップＳ２０に含まれるべき剰余を用いる復号化の諸段階が、続けて繰り返して実行される。換字式暗号を復号化する諸段階とべき剰余を用いる復号化の諸段階とは、暗号化の諸段階の逆順であればよく、全体を入れ替えてもよい。すなわち、ステップＳ２００の変数初期化の後にステップＳ２０に含まれるべき剰余を用いる復号化の諸段階を実施し、その後にステップＳ４０に含まれる換字式暗号を復号化する諸段階を実施し、ステップＳ２８０及びステップＳ２９０、適宜ステップＳ２９５を実施してもよい。
【０１１４】
このように、本発明に係る整数を復号化する方法においては、換字式暗号を復号化する諸段階とべき剰余を用いる復号化の諸段階とを重畳して用い、対応する暗号化の諸段階により暗号化された整数Ｚｉから、元の整数Ｘｉと等しい整数Ｘｎに復号化することが可能になる。
【０１１５】
［個人情報隠蔽手順の形態］
図５に、本発明の一実施形態に係る、整数を暗号化する方法を用いる個人情報隠蔽手順の例を示す。
暗号化手段１００は、本発明に係る入力された整数から暗号化した整数を生成する手段である。暗号化手段１００は、特定の個人２０が有する識別のための数字及び／又は文字を含む識別子等を、整数型の識別子３０として受け付ける。例えば、個人２０は事業体等に所属する構成員の１人であり、整数型の識別子３０は当該事業体において複数の構成員を識別するために適宜用いられる、複数の桁の整数を含む構成員識別子等でありうる。また例えば、整数型の識別子３０はクレジットカード番号等の、特定の個人２０と関連づけられた個人情報でありうる。典型的には、特定の個人２０と整数型の識別子３０とは１対１に関連づけられ、他の構成員等とは関連づけられない。また、構成員識別子等が英文字等を含む場合、整数型の識別子３０は、英文字及び数字の全体又はその一部をコンピュータ処理可能な文字コードの集まりとして扱い、個々の文字コードを１６進法の整数として、整数型の識別子３０を構成してもよい。本発明に係る整数を暗号化し復号化する方法においては、このように変換された１６進法の整数を暗号化し、当該暗号化した１６進法の整数から元のコンピュータ処理可能な文字コードの集まりを復号化しうる。構成員識別子等が画像データの場合についても、１６進法の整数の集まりとして元の画像データを扱うことにより、同様に暗号化及び復号化が可能である。
【０１１６】
暗号化手段１００は、受け付けた整数型の識別子３０の桁に基づいて適宜分割し、整数部分３２、３４を生成する。図５には、整数型の識別子３０から２個の整数部分３２、３４が生成されることを示すが、これに限定せず、生成される整数部分の個数は２個以上であれば何個でもよい。好適には、それぞれの整数部分３２、３４は倍精度型の精度の範囲内にあり、６４ビットの２進数を用いて表される整数でありうる。例えば、整数型の識別子３０は２０桁の１０進数であり、暗号化手段１００はこれを５桁ごとに４個の１０進数に分割し、それぞれの整数部分の桁の情報３５を保持しうる。このような桁の分割のためには、例えば、図１を用いて示した実施形態のステップＳ１５０の動作及び式（ＸＶＩＩ）に示した桁の分割の方法を用いてもよい。それぞれの整数部分の桁の情報３５は、式（ＸＶＩＩ）に示したように、分割前の整数Ｘに対して、整数部分であるＸ１５、Ｘ１０、Ｘ５、及びＸ０のそれぞれが、任意の整数Ｘの２０位から１６位、１５位から１１位、１０位から６位、及び５位から１位であることの情報でありうる。
【０１１７】
識別用途Ａ（１２２）、識別用途Ｂ（１２４）及び識別用途Ｃ（１２６）は、整数型の識別子３０を用いて特定の個人２０を識別することが必要な任意の用途でありうる。図１にはこれらの３つの識別用途を図示するが、これらに限定せず、識別用途の種類、個数等は適宜設定しうる具体的には、これらの用途は、特定の個人２０による電子メール送受信等を含む事業体内部のコンピュータ・ネットワーク利用又は事業体と関連づけられるオンライン銀行業務又は保険サービス等の利用、あるいは事業体による特定の個人２０の業務に係る記録行為等でありうる。それぞれの識別用途Ａ（１２２）、識別用途Ｂ（１２４）及び識別用途Ｃ（１２６）は、暗号化手段１００において互いに他を区別するための情報を含んでもよい。すなわち、識別用途Ａの固有情報（６２）、識別用途Ｂの固有情報（６４）及び識別用途Ｃの固有情報（６６）等は、互いに他と異なればよい。例えば、これらの識別用途の固有情報は特定の整数の値でもよく、前述の式（ＸＩＩＩ）に含まれるＮ又はＥの値として、それぞれ独立して異なる値を用いてもよい。
【０１１８】
暗号化手段１００は、受け付けた整数型の識別子３０に対して、識別用途Ａの固有情報（６２）、識別用途Ｂの固有情報（６４）又は識別用途Ｃの固有情報（６６）を用い、それぞれの識別用途の固有情報ごとに独立して、暗号化計算Ａ（７２）、暗号化計算Ｂ（７４）又は暗号化計算Ｃ（７６）を実施しうる。当該暗号化計算には、前述のように、整数のべき乗を含む計算のために暗号化手段１００が用いるコンピュータ装置等において桁あふれを発生する条件で、式（ＸＩＩＩ）の展開形を用いて暗号化した整数を生成する諸段階を含む。当該暗号化計算の結果として、暗号化した整数Ａ（４２）、暗号化した整数Ｂ（４４）又は暗号化した整数Ｃ（４６）が生成される。
【０１１９】
生成したそれぞれの暗号化した整数Ａ（４２）、暗号化した整数Ｂ（４４）又は暗号化した整数Ｃ（４６）のそれぞれは、独立して、対応する識別用途Ａ（１２２）、識別用途Ｂ（１２４）又は識別用途Ｃ（１２６）のために提供されうる。
例えば、識別用途Ａ（１２２）が事業体内部のコンピュータ・ネットワーク利用等である場合、本発明に係る暗号化手段１００は、特定の個人２０を識別するための整数型の識別子３０に替えて暗号化した整数Ａ（４２）を、情報伝達経路Ａ（８２）を介して当該事業体のコンピュータ・ネットワーク１３２等に提供しうる。情報伝達経路Ａ（８２）は例えば当該事業体内のローカルエリアネットワーク等でありうる。
また、例えば、識別用途Ｂ（１２４）が事業体による特定の個人２０の業務に係る記録行為等である場合、本発明に係る暗号化手段１００は、特定の個人２０を識別するための整数型の識別子３０に替えて暗号化した整数Ｂ（４４）を、情報伝達経路Ｂ（８４）を介して当該事業体の勤務管理記憶装置１３４等に提供しうる。情報伝達経路Ｂ（８４）は例えば当該事業体の出入口等に適宜備えられた入構者記録のための端末装置及び記憶装置等でありうる。
【０１２０】
これらのコンピュータ処理可能な数値データに限らず、暗号化手段１００は、特定の個人２０を識別するための整数型の識別子３０に替えて暗号化した整数Ｃ（４６）を、情報伝達経路Ｃ（８６）を介して不特定の他者１３６等に提供しうる。情報伝達経路Ｃ（８６）は、口頭又は文書等を含む任意の形式でもよい。例えば、不特定の他者１３６は当該事業体と独立して運営される団体加入保険サービス業の受け付け担当者であり、当該事業体の構成員である特定の個人２０は、情報伝達経路Ｃ（８６）として一般公衆回線の電話等を用い、当該団体保健サービスにおいて自己を特定するための情報として、暗号化した整数Ｃ（４６）を送信しうる。この送信は、通話、ファクシミリ、電子メール等の任意の形態を含む。従って、電話等の通話の音声がたまたま周囲にいる第三者に聞かれてしまう等の状況により、この送信の内容が無関係の第三者に傍受されても、本発明に係る暗号化手段１００により暗号化した整数Ｃ（４６）は、特定の個人２０を識別するための整数型の識別子３０とは異なる整数であるため、当該第三者は傍受内容から当該整数型の識別子３０を知ることができない。すなわち、本発明に係る暗号化手段１００を用いることにより、個人情報を隠蔽することが可能になる。
このようにして、本発明に係る暗号化手段１００においては、特定の個人２０に関連づけられる整数型の識別子３０から、識別用途ごとに異なる暗号化した整数を生成し、当該特定の個人２０の個人情報を隠蔽しうる。
【０１２１】
さらに、本発明に係る暗号化手段１００は、特定の識別用途において複数の構成員の識別子を一括して暗号化してもよい。
本発明に係る暗号化手段１００は特定の識別用途に対して特定の個人情報を隠蔽しうる。暗号化手段１００が受け付ける整数型の識別子３０が個々の特定の個人２０ごとに異なることにより、別個の整数型の識別子３０ごとに、暗号化した整数が生成される。従って、識別用途Ａ（１２２）、識別用途Ａの固有情報（６２）及び暗号化計算Ａ（７２）が一定であっても、異なる整数型の識別子３０を有する事業体内の複数の構成員等は、それぞれが異なる暗号化した整数Ａ（７２）を得ることができる。
例えば、事業体のネットワーク管理者等は、識別用途Ａの固有情報（６２）をネットワーク・メンテナンスの日時等の特定の条件に従って選択することにより、当該事業体の複数の構成員のネットワーク・アカウント情報のそれぞれを別個に一括して暗号化しうる。ネットワーク管理者等は識別用途Ａの固有情報（６２）を選択する条件を管理することにより、複数の構成員のアカウント情報を一括して暗号化して保持し、管理しうる。さらに式（ＸＶＩ）及び式（ＸＶＩＩ）に含まれる整数Ｆが第三者に知られにくい又は推定されにくいことにより、この値を知らない第三者に対して明示的なアカウント情報を隠蔽することが可能になる。
【０１２２】
図５には、特定の個人２０から事業体のコンピュータ・ネットワーク１３２、事業体の勤務管理記憶装置１３４、又は不特定の他者１３６等に向けて、本発明に係る暗号化手段１００を用いて整数型の識別子３０を暗号化して送信することを示すが、送受信の主体を入れ替えても、本発明に係る暗号化手段１００を用いることができる。すなわち、事業体のコンピュータ・ネットワーク１３２に接続されたサーバ装置（図示せず）等が記憶した整数型の識別子３０を本発明に係る暗号化手段１００への入力として、上述の手順に従って暗号化した整数Ａ（４２）等を生成し、特定の個人２０に送信してもよい。このようにすることで、事業体等は、構成員の識別情報又は事業に関連する情報等を暗号化し、当該暗号化した識別子等を使用するよう従業員に促して、セキュリティを高めることが可能になる。
【０１２３】
本発明に係る暗号化手段１００は、具体的にはパーソナル・コンピュータ等で実行可能な汎用のワークシート等のアプリケーションに内蔵された整数計算ライブラリ等を用いて実施しうる。従って、本発明に係る整数を暗号化し復号化する方法においては、特に専用の計算機等を用意することなく、既存の計算機を用いて社員番号等の暗号化及び復号化を実施することも可能である。さらに、本発明においては、本発明に係る整数を暗号化し復号化する方法によらなければ暗号化又は復号化のいずれかの諸段階における桁あふれが発生して、正確な暗号化及び／又は復号化ができないため、本発明の方法を実施しない第三者に対して構成員の識別子等の個人情報を隠蔽することが可能になる。
【０１２４】
［個人情報隠蔽手順の別の形態］
図６に、本発明の一実施形態に係る、整数を暗号化する方法を用いる個人情報隠蔽手順の別の例を示す。図５と共通する箇所は説明を省略する。
【０１２５】
図６においては、暗号化手段１００は特定の個人２０から受け付けた整数型の識別子３０に対して、追加の桁３７を適宜追加しうる。この追加の桁は整数型の識別子３０と同様に整数でありうる。追加の桁３７の桁数は何桁でもよく、例えば２桁、３桁、又は４桁等でもよい。追加の桁３７は、整数型の識別子３０に対して左側から追加してもよく右側から追加してもよい。あるいは、整数型の識別子３０を予め定めた桁において分割し、追加の桁３７を挿入してもよく、追加の桁３７の追加の態様は適宜設定しうる。また、追加の桁３７の値は何でもよく、本発明に係る整数の暗号化及び復号化を利用する事業体又はシステム等により任意に用意されてもよく、あるいは整数型の識別子３０から予め定めた手順により生成してもよい。例えば、整数型の識別子３０の各桁の数字の和を算出した値の下位２桁等を、追加の桁３７としてもよい。さらに、追加の桁３７は、識別用途Ａ（１２２）、識別用途Ｂ（１２４）及び識別用途Ｃ（１２６）等に依存してそれぞれの識別用途ごとに独立して用意されてもよい。
追加の桁３７を追加することにより、整数型の識別子３０及び追加の桁３７に含まれる各桁の数字を含む新たな整数である、桁増しした識別子３８が生成されうる。
【０１２６】
一実施形態において、桁増しした識別子３８は、整数型の識別子３０の右に追加の桁３７を追加した整数として生成される。例えば、整数型の識別子３０が１６桁の整数であり、追加の桁３７が４桁の整数である場合、桁増しした識別子３８は２０桁の整数であり、桁増しした識別子３８は次式で表される。
【数３１】
2010186076.tif 000035
式中、Ｗ３８は桁増しした識別子３８の値、Ｗ３０は整数型の識別子３０の値、Ｗ３７は追加の桁３７の値であり、Ｍは記数法の底である。例えば、これらの整数が１０進法の整数であるときには、Ｗ３８の値はＷ３０を１００００倍してＷ３７を加えた値でありうる。記数法は１０進法に限らず、２進法、８進法又は１６進法等を任意に用いうる。桁増しする桁の数は４桁に限らず適宜設定しうる。
【０１２７】
追加の桁３７を含む桁増しした識別子３８に対する暗号化の諸段階は、図１及び図３に示した実施形態のフロー図、又は図５に示した実施形態の識別用途に依存して実施しうる暗号化の手順等と同様である。すなわち、桁増しした識別子３８は、暗号化手段１００において、例えば２０桁の整数として表され、５桁ごとに４個の１０進数に分割され、分割されたそれぞれの整数部分どうしを関連づける情報が保持される。次いで、式（ＸＩＩＩ）に示したべき剰余を用いる暗号化が実施され、適宜、オフセット、換字式暗号化の重畳が用いられ、暗号化が実施されうる。図６に示す形態の暗号化の諸段階により生成される暗号化した整数は、コンピュータ・ネットワーク１３２又は勤務管理記憶装置１３４等を用いてコンピュータ処理可能なデータとして生成してもよく、不特定の他者１３６が知りうる音声又は出版物等の形態で生成してもよい。
【０１２８】
一実施形態において、構成員の生年月日に含まれる数字等を識別子として利用する事業体等は、本発明に係る整数を暗号化し復号化する方法を用い、当該構成員の生年月日に含まれる数字等に追加して、任意の４桁の数字を追加の桁３７として組み合わせうる。これにより、生年月日が同一の構成員が複数存在しても、任意の４桁の数字が相互に異なれば、生成する暗号化された数字は互いに異なるので、追加の桁３７を用いることにより当該事業体等は暗号化した整数を用いて構成員を識別しうる。
【０１２９】
このようにして、予め定めた桁数の追加の桁３７を追加することにより、本発明に係る暗号化手段１００の暗号化の諸段階に入力される整数は、特定の個人２０等が有する識別のための情報そのものではなくなる。桁を追加して得られる整数を暗号化することにより、本発明に係る整数の暗号化においては、特定の個人２０等の個人情報をさらに隠蔽した暗号化が可能になる。
【０１３０】
［個人情報隠蔽手順のさらに別の形態］
図７に、本発明の一実施形態に係る、整数を暗号化する方法を用いる個人情報隠蔽手順のさらに別の例を示す。図５と共通する箇所は説明を省略する。
【０１３１】
図７に示す個人情報隠蔽手順においては、本発明に係る暗号化手段１００が、乱数発生手段３９及びオフセット情報４０を含みうることを示す。
【０１３２】
一実施形態において、本発明に係る暗号化手段１００は乱数発生手段３９を用いて乱数を発生させ、当該発生した乱数に基づいて、整数型の識別子３０を暗号化しうる。具体的には、図１を用いて前述したステップＳ３０に含まれる換字式暗号化の鍵Ｒの選択に、当該発生した乱数を用いることができる。具体的には、換字式暗号化の鍵Ｒの選択は、発生した乱数に対して直近の素数を選択してもよい。すなわち、重複無く素数を含む集合から、当該発生した乱数との差が最も小さい素数を選択してもよい。あるいは、換字式暗号化の鍵Ｒの選択は、重複無く素数を含む集合からそれぞれの要素（すなわち素数）を昇順又は降順に配列した数列を用意し、乱数の上限を当該集合の要素数として、発生した乱数を項番号とする要素（すなわち素数）を当該数列から選択してもよい。これらに限らず、乱数と素数の関連づけは適宜設計しうる。
【０１３３】
別の実施形態において、本発明に係る暗号化手段１００はオフセット情報４０を用いて整数型の識別子３０をオフセットした後に、図１又は図３を用いて示した暗号化の諸段階を実施しうる。すなわち、本発明に係る暗号化手段１００は、整数型の識別子３０に整数型の所定の定数を加算又は減算しうる。この加算又は減算される所定の定数は、元の整数への復号化の段階において減算又は加算されることにより、整数型の識別子３０が正しく復元されうる。オフセット情報４０は定数に限らず、本発明に係る暗号化手段１００が一つの整数型の識別子３０を受け付けて動作するごとに、毎回異なる値を選択して用いてもよい。この異なる値の選択において、上述の乱数発生手段３９を用いてもよい。
【０１３４】
また別の実施形態において、本発明に係る暗号化手段１００は乱数発生手段３９を用いて乱数を発生させ、当該発生した乱数に基づいて、図３に示したステップＳ１９０のループカウンタＬを選択してもよい。図４に示したステップＳ２９０のループカウンタＬは、図３に示したステップＳ１９０のループカウンタＬと同一の値でありうる。すなわち、ループカウンタＬは、所定の正の整数、前記所定の正の整数を暗号化した正の整数、及びランダムに発生した正の整数からなる群から選ばれうる。
ループカウンタＬは、暗号化の強度を確保するために、予め下限を設定してもよい。また、暗号化及び復号化の計算処理のための時間を短縮するために、予め上限を設定してもよい。従って、本発明に係る整数を暗号化し復号化する方法におけるループカウンタＬの値は、予め設定された下限及び／又は上限の範囲に従って、所定の正の整数、前記所定の正の整数を暗号化した正の整数、及びランダムに発生した正の整数からなる群から選ばれうる。このように、べき剰余を用いる暗号化及び換字式暗号化のいずれとも独立した変数でありうるループカウンタＬを秘密とすることで、第三者の解読の手間はさらに膨大となりうる。
【０１３５】
さらに別の実施形態において、本発明に係る暗号化手段１００は、公開鍵暗号化技術における公開鍵に対して、オフセット情報４０を用いてオフセットした公開鍵を生成してもよい。具体的には、式（Ｉ）に含まれる変数Ｅを決定した後に、当該変数Ｅに整数型の所定の定数を加算又は減算して公開鍵としてもよい。従って、この整数型の所定の定数が加算又は減算されていることを知らない第三者が解読のために当該公開鍵を用いることは無駄な手順となる。従って、オフセット情報４０を公開鍵に適用することにより、暗号化された整数等の情報の秘匿性はさらに高められる。
【０１３６】
また別の実施形態において、本発明に係る暗号化手段１００は、上述の乱数発生手段３９及びオフセット情報４０の両者を用いて、整数型の識別子３０を暗号化してもよい。
【０１３７】
図７においては、識別用途Ａ（１２２）、識別用途Ｂ（１２４）及び識別用途Ｃ（１２６）等のそれぞれに対して暗号化の過程を一つの矢印として表しているが、図１を用いて前述したように、本発明に係る暗号化の方法においては、それぞれの識別用途ごとに、べき剰余を用いる暗号化及び換字式暗号化が所定の繰り返し回数だけ交互に重畳されうる。それぞれの識別用途ごとに生成した、暗号化した整数Ａ（４２）、暗号化した整数Ｂ（４４）又は暗号化した整数Ｃ（４６）は、乱数発生手段３９を用いて発生した乱数の情報、べき剰余を用いる暗号化の情報、及び換字式暗号化の情報の全てを正確に用いなければ、いずれも正しく復号化することができない。従って、本発明の実施の形態における個人情報隠蔽手順においては、正確な復号化のための情報の種類をより多く必要とすることで、周知の公開鍵暗号化技術等に比較してさらに秘匿性を高めることが可能になる。
【０１３８】
［復号化の手順の例］
図８に、本発明の一実施形態に係る、暗号化した整数の復号化手順の例を示す。図８においては、説明の簡潔化のためにコンピュータ処理可能な数値に関し、図５を示して説明した暗号化手段１００が生成した暗号化した整数Ａ（４２）及び／又は暗号化した整数Ｂ（４４）に対する復号化を説明するが、通話又は文書等の形態で伝達しうる暗号化した整数の復号化についても同様である。図５又は図６と共通する箇所は説明を省略する。
【０１３９】
図８は、本発明に係る復号化手段１１０が、暗号化した整数Ａ’（５２）及び／又は暗号化した整数Ｂ’（５４）を受け付け、整数型の復号化した識別子４１を生成することを示す。ここで、暗号化した整数Ａ’（５２）は、整数型の識別子３０に対して暗号化手段１００が暗号化計算Ａ（７２）を用いて生成した暗号化した整数Ａ（４２）が、情報伝達経路Ａ（８２）を介してコンピュータ・ネットワーク１３２等に伝達された後に、さらに情報伝達経路Ａ’（１０２）を介して本発明に係る復号化手段１１０に伝達したものでありうる。従って、整数型の数値としては、暗号化した整数Ａ’（５２）は対応する暗号化した整数Ａ（４２）と同一でありうる。
同様に、暗号化した整数Ｂ’（５４）は暗号化した整数Ｂ（４４）と同一でありうる。
【０１４０】
本発明に係る復号化手段１１０は、暗号化した整数Ａ’（５２）及び暗号化した整数Ｂ’（５４）に対して、図１又は図３に示したステップＳ２００からステップＳ２２０の諸段階を実施し、整数型の復号化した識別子４１を生成しうる。
暗号化した整数Ａ’（５２）は、暗号化手段１００による暗号化計算Ａ（７２）において識別用途Ａ（１２２）の固有情報（６２）を用いて生成した暗号化した整数Ａ（４２）でありうる。当該固有情報（６２）は、前述の式（ＶＩＩＩ）に含まれるＮ又はＥの値、及びＫの値でありうるので、例えば、暗号化計算Ａ（７２）において用いられたＥの値及びＫの値を固有情報（９２）として復号化計算Ａ（１１２）に用いうる。
同様に、暗号化計算Ｂ（７４）において用いられたＥの値及びＫの値を固有情報（９４）として復号化計算Ｂ（１１４）に用いうる。
固有情報（９２）及び／又は固有情報（９４）は、予め復号化手段１１０が記憶してもよく、予め定められた手順に従って暗号化手段１００又は復号化手段１１０の一方又は両方が生成してもよく、適宜設定しうる。
【０１４１】
図８は、情報伝達経路Ａ（８２）、情報伝達経路Ｂ（８４）、情報伝達経路Ａ’（１０２）及び情報伝達経路Ｂ’（１０４）としてコンピュータ処理可能な数値を伝達しうるネットワーク等の情報伝達経路を示すが、これらに限らず、音声又は文書等を含む任意の伝達経路又は伝達手段を介して、暗号化した整数を暗号化手段１００から復号化手段１１０に向かって伝達しうる。
本発明に係る整数を暗号化し復号化する方法には、これらの伝達経路又は伝達手段を介して伝達される整数が暗号化されていること、桁あふれを発生する条件での暗号化に用いた特定の数値で復号化する本発明の方法によらなければ元の整数を復号化することはできないという特徴がある。従って、本発明においては、伝達経路又は伝達手段等にアクセスする可能性のある第三者に対して個人情報を隠蔽し、所定の固有情報及び所定の暗号化及び所定の復号化の方法を用いる本発明の実施手段等のみが当該個人情報を正確に復号化することが可能になる。
【０１４２】
図８には、暗号化手段１００及び復号化手段１１０のそれぞれを別個に示したが、これに限らず、暗号化手段１００及び復号化手段１１０を一体の装置としてもよい。暗号化した整数を伝達する伝達経路又は伝達手段等の形態は、コンピュータ・ネットワークでもよく、一般公衆回線の電話を含む通話、ファクシミリ、電子メール等の形態でもよく、任意に設定しうる。それぞれの伝達経路又は伝達手段に依存して、一つの整数型の識別子３０から独立して別個に暗号化した整数を生成してもよく、さらに図４に示した追加の桁３７、図７に示した乱数発生手段３９、オフセット情報４０、又はこれらの組み合わせを適宜用いて整数型の識別子３０を加工した後に暗号化してもよい。このようにして、本発明に係る整数を暗号化し復号化する方法においては、構成員識別子等の一つの識別子から、当該識別子を用いる各種の情報伝達手段ごとに、個人情報を隠蔽した整数を識別子に替えて提供しうる。暗号化又は復号化の諸段階はコンピュータ装置等を用いて自動的に実施しうるので、本発明に係る方法のユーザはこれらの手順を特に意識することなく、自己の個人情報を隠蔽した整数を自己の識別子に替えて用いうる。
【０１４３】
図８には、整数型の識別子３０が暗号化され、事業体のコンピュータ・ネットワーク１３２又は事業体の勤務管理記憶装置１３４等に向けて送信された後に、上述の用に復号化されうることを示すが、送受信の主体を入れ替えても、本発明に係る復号化手段１１０を用いることができる。すなわち、事業体のコンピュータ・ネットワーク１３２に接続されたサーバ装置（図示せず）等が記憶した整数型の識別子３０を本発明に係る暗号化手段１００で暗号化して構成員等に送信し、構成員等は上述の手順に従って、本発明に係る復号化手段１１０を用いて整数型の識別子３０を復号化してもよい。
【実施例】
【０１４４】
［実施例１：ワークシートの内部関数を用いて整数を暗号化する例］
図９に、本発明の一実施形態に係る、暗号化の諸段階をスプレッドシート形式の計算アプリケーション・パッケージを用いて実装する例を示す。スプレッドシート形式の計算アプリケーション・パッケージとしてはマイクロソフト社製エクセル２００７等を用いうるが、これに限らず、整数のべき乗及び剰余計算を実施可能なパッケージ・ソフトウェア等を任意に用いうる。
図９に示す整数の暗号化計算ワークシート２００は、複数の行及び列の形態に配列されるセルを含む、スプレッドシート形式の計算アプリケーションのデータでありうる。整数の暗号化計算ワークシート２００に含まれる個々のセルは、１組の行番号及び列番号を用いて特定しうる。
【０１４５】
整数の暗号化計算ワークシート２００に含まれる、２行１列から１５行１列の領域、及び２行２列から１５行（２ｎ＋１）列の領域は、図３に示したステップＳ１０５からステップＳ１９５における暗号化の諸段階に係る計算のために用いられうる。
具体的には、２行１列から１５行１列の領域は、図３に示したステップＳ１０５における変数領域を確保するために用いられる。２行２列から１５行（２ｎ＋１）列の領域は、図３に示したステップＳ１０及びステップＳ３０の繰り返しのために用いられる。図９には、変数Ａ、Ｂ、Ｄ、Ｋはそれぞれ同じ値が繰り返して用いられ、変数Ｅ、Ｆ、Ｔはループカウンタに依存して繰り返しの各回において変化する例を示す。
【０１４６】
例示的実施形態において、２行１列のセルは暗号化の入力Ｘｉを記憶するために用いうる。１列の他のセルには、べき剰余を用いる復号化における素数Ａ及びＢ、（Ａ−１）と（Ｂ−１）との積Ｄ及び最小公倍数Ｋ、公開鍵及び秘密鍵の対でありうる整数Ｅｉ及びＦｉ、換字式暗号化鍵Ｒｉ、オフセットＴｉ、ループカウンタＬ等が適宜定義され得る。
【０１４７】
すなわち、３行１列のセル及び４行２列のセルは、２個の素数Ａ及びＢを記憶するために用いうる。また、Ａ及びＢの積が入力Ｘｉを超えることの判定を、例えば３行２列のセルを用いて表示してもよい。このＡ及びＢの積は、前述の式（ＸＩＩＩ）における積Ｎであり、Ｎは本発明に係る整数の暗号化に含まれる剰余計算の底でありうる。
【０１４８】
さらに、本発明の実施形態係る整数の暗号化計算ワークシート２００は、積Ｎの展開形を、配列の形態を用いて３行２列に記憶してもよい。例えば、積Ｎは２０桁の整数として扱われ、積Ｎの２０位から１６位、１５位から１１位、１０位から６位、及び５位から１位のそれぞれを、５桁の１０進数として表されるＮ１５、Ｎ１０、Ｎ５及びＮ０からなる４個の整数部分に展開されてもよい。３行２列のセルには、これらの集合｛Ｎ１５，Ｎ１０，Ｎ５，Ｎ０｝が配列の形態で記憶されてもよい。
【０１４９】
７行１列のセルは、（Ａ−１）及び（Ｂ−１）の積であるＤ値を記憶するために用いうる。８行１列のセルは、（Ａ−１）と（Ｂ−１）の最小公倍数であるＫ値を記憶するために用いうる。Ｄ値及び／又はＫ値は、上述の積Ｎと同様に、展開された整数部分の集合でもよい。９行１列のセルは、Ｄ値又はＫ値と素である整数Ｅｉを記憶するために用いうる。この整数Ｅｉは、公開鍵暗号化技術における公開鍵として用いうる。１１行１列のセルは、前述の式（ＸＶＩ）を成立する整数Ｆを記憶するために用いうる。この整数Ｆｉは、公開鍵暗号化技術における秘密鍵として用いうる。１３行１列のセルは、換字式暗号化の鍵Ｒｉを、１４行１列のセルはオフセットＴｉを、１５行１列はループカウンタＬを記憶するために用いうる。
【０１５０】
１０行の各セルは、整数Ｅｉによるべき乗がワークシート内蔵の整数演算においてオーバーフローを発生しているか否かを表示するために用いうる。例えば、当該オーバーフローが発生することは、整数Ｅｉによるべき乗の値がスプレッドシート形式の計算アプリケーション・パッケージにおいて取り扱い可能な範囲を超えていることを表す「エラー」等の文字等により表されてもよく、又は当該エラーに対応して論理値の偽を表す数値等を表示してもよい。同様に、１２行の各セルは、整数Ｆｉによるべき乗がワークシート内蔵の整数演算においてオーバーフローを発生しているか否かを表示するために用いうる。これらの整数Ｅｉによるべき乗又は整数Ｆｉによるべき乗がオーバーフローを発生することを条件として、本発明に係るべき剰余を用いる暗号化の方法は、式（ＸＸ）に示した展開形を用いて正確なべき剰余を得ることができる。具体的には、１行２列の元の整数Ｘｉに対して、１４行２列のオフセットＴ１を用いてオフセットした整数から、暗号化した整数として２行２列に整数Ｙ１を得ることができる。このときに、当該べき剰余を用いる暗号化から生じる公開鍵Ｅ１及び秘密鍵Ｆ１が、それぞれ９行２列、１１行２列に記憶される。
【０１５１】
なお、添え字ｉを伴う変数は配列でもよい。すなわち、１個のセルに割り当てられるＥｉ、Ｆｉ、Ｒｉ及びＴｉのそれぞれは、｛Ｅ１，Ｅ２，…，Ｅｎ｝，｛Ｆ１，Ｆ２，…，Ｆｎ｝，｛Ｒ１，Ｒ２，…，Ｒｎ｝，｛Ｔ１，Ｔ２，…，Ｔｎ｝等の配列又は配列の形式を用いる数列（適宜、漸化式又は任意の関数により各項を定義してもよい）でもよく、行ごとにこれらの配列に含まれる個々の整数を取り出して用いてもよい。
【０１５２】
さらなる例示的実施形態において、２列は、べき剰余を用いる暗号化のために用いられる。図９においては、２行２列には、べき剰余を用いる暗号化を１回実施して得られる整数Ｙ１が記憶される。３列は、換字式暗号化のために用いられ、図９においては、２行３列には、Ｙ１から換字式暗号化により生じる、変換された整数Ｚ１が記憶される。
他の２列のセルには、暗号化の諸段階から生じる変数の値が適宜記憶される。例えば、９行２列には公開鍵Ｅ１、１１行２列には秘密鍵Ｆ１、１４行２列にはオフセットＴ１がそれぞれ記憶される。同様に、他の３列のセルに関しては、１３行３列には換字式暗号化の鍵Ｒ１、１５行３列には１回デクリメントされたループカウンタ（Ｌ−１）がそれぞれ記憶される。
このようにして、入力Ｘｉから、２列にはべき剰余を用いる暗号化における変換後の整数Ｙ１、他の変数Ｅ１、Ｆ１、及びＴ１が記憶され、３列には整数Ｙ１から変換される整数Ｚ１、他の変数Ｒ１、及びデクリメントされたループカウンタ（Ｌ−１）が記憶される。
【０１５３】
なお、一つのセルに配列等を定義して複数の定数、変数又は計算式を任意に含みうることは当技術分野において公知である。すなわち、２行１列のセルは１個の整数Ｘｉを記憶してもよく、配列の形式を用いて数列｛Ｘ１，Ｘ２，Ｘ３，…，Ｘｋ｝を記憶してもよい。ここに、Ｘｋは、べき剰余を用いる暗号化における鍵の絶対値に依存して定義される、暗号化可能な整数の個数であり、この数列に含まれる整数の個数は最小公倍数Ｋと同じ値でもよく、当該個数はＫ−１，Ｋ−２，Ｋ−３等でもよく任意に設定しうる。数列｛Ｘ１，Ｘ２，Ｘ３，…，Ｘｋ｝の初項Ｘ１は０でもよく、１でもよく、２以上の整数でもよい。例えば、初項の値を整数２として、数列に含まれる整数の個数をＫ−１個とする場合は、全体としてこの数列にはＫ−２個の整数が含まれうる。本発明に係る整数を暗号化する方法は、このようなＫ−２個の整数のそれぞれを別個に暗号化し、暗号化した数列を得ることができるが、これに限定せずに、暗号化した数列に含まれる整数の個数は適宜設計しうる。従って、本発明のユーザは、予め計算された暗号化した数列から適宜抽出して暗号化した整数を用いることも可能である。
【０１５４】
次いで、本発明に係る整数を暗号化する方法は、換字式暗号化を用いて、２行２列に記憶された整数Ｙ１を、２行３列の整数Ｚ１に変換する。この変換は、換字式暗号化の鍵として１３行３列のＲ１を用いうる。
換字式暗号化により整数Ｚ１が得られた後に、本発明に係る整数を暗号化する方法は、１５行１列のループカウンタＬをデクリメントし、１５行３列に当該デクリメントした値である（Ｌ−１）を記憶する。当該デクリメントした値がゼロ以下である場合は、暗号化の諸段階を終了させる。当該デクリメントしたループカウンタの値がゼロより大きければ、２行３列のＺ１の値を上述の２行１列のＸｉの値のように取り扱い、べき剰余を用いる暗号化の諸段階及び換字式暗号化の諸段階を繰り返し、２行５列にＺ２として暗号化した整数を得られる。
【０１５５】
このようにして、本発明に係る整数を暗号化する方法は、べき剰余を用いる暗号化及び換字式暗号化の組み合わせを繰り返し実施し、ループカウンタがゼロ以下となることを条件として、２行（２ｎ＋１）列に整数Ｚｎとして暗号化した整数が得られる。
【０１５６】
［実施例２：ワークシートの内部関数を用いて整数を復号化する例］
図１０に、本発明の一実施形態に係る、復号化の諸段階をスプレッドシート形式の計算アプリケーション・パッケージを用いて実装する例を示す。図１０に示す整数の復号化計算ワークシート２２０は、複数の行及び列の形態に配列されるセルを含む、スプレッドシート形式の計算アプリケーションのデータでありうる。整数の復号化計算ワークシート２２０に含まれる個々のセルは、１組の行番号及び列番号を用いて特定しうる。
【０１５７】
整数の復号化計算ワークシート２２０に含まれる、２行１列から１５行１列の領域、及び２行２列から１５行（２ｎ＋１）列の領域は、図４に示したステップＳ２０５からステップＳ２９５における暗号化の諸段階に係る計算のために用いられうる。
具体的には、２行１列から１５行１列の領域は、図３に示したステップＳ２０５における変数領域の確保及びループカウンタＬの初期化のために用いられる。２行２列から１５行（２ｎ＋１）列の領域は、図４に示したステップＳ４０及びステップＳ２０の繰り返しのために用いられる。
【０１５８】
例示的実施形態において、２行１列のセルは復号化の入力Ｚｉを記憶するために用いうる。１列の他のセルには、前述の図９を用いて示したべき剰余を用いる復号化における変数と同一である。すなわち、復号化の入力Ｚｉに対応する暗号化の過程において、すでに用いられた値をそれぞれの変数Ａ，Ｂ，Ｄ，Ｋ，Ｅｉ、Ｆｉ、Ｒｉ，Ｔｉに用いることができる。従って、復号化においては、対応する暗号化の変数の値を再利用し、入力Ｚｉに対応するループカウンタＬを初期化してもよい。
【０１５９】
本発明に係る整数の復号化においては、対応する暗号化と逆の手順により、暗号化された整数から元の整数を復号化する。例えば、べき剰余及び換字式の暗号化がこの順番の組み合わせで繰り返された場合、対応する復号化は、換字式及びべき剰余の復号化をこの順番で同じ回数だけ繰り返す。
【０１６０】
まず、換字式復号化を用いて、入力Ｚｉを変換する手順を説明する。換字式復号化においては、２行１列に記憶された整数Ｚｎを、２行２列の整数Ｙｎに変換する。この変換のための換字式暗号化の鍵は１３行２列のＲｎであり、当該Ｒｎは対応する暗号化に用いられた、図９の整数の暗号化計算ワークシート２００における１３行（２ｎ＋１）列のＲｎと同一でありうる。
【０１６１】
次いで、本発明に係る整数の復号化において、２行２列のＹｎに対してべき剰余を用いる復号化を実施し、さらにオフセットを消去して、２行３列に整数Ｘｎ−１が得られる。べき剰余の指数には１１行３列のＦｎが用いられ、オフセットの値としては１４行３列のＴｎが用いられる。本発明に係るべき剰余を用いる復号化の方法は、式（ＸＸ）に示した展開形を用いて正確なべき剰余を得ることができる。
【０１６２】
べき剰余を用いる復号化により整数Ｘｎ−１が得られた後に、本発明に係る整数を復号化する方法は、１５行１列のループカウンタＬをデクリメントし、１５行３列に当該デクリメントした値である（Ｌ−１）を記憶する。当該デクリメントした値がゼロ以下である場合は、復号化の諸段階を終了させる。当該デクリメントしたループカウンタの値がゼロより大きければ、２行３列のＸｎ−１の値を上述の２行１列のＺｉの値のように取り扱い、換字式復号化の諸段階及びべき剰余を用いる復号化の諸段階を繰り返し、２行５列にＸｎ−２として復号化した整数を得られる。
【０１６３】
１０行及び１２行の各セルは、暗号化と同様に、整数Ｅｉ及び整数Ｆｉによるべき乗がワークシート内蔵の整数演算においてオーバーフローを発生しているか否かを表示するために用いうる。これらの整数Ｅｉによるべき乗又は整数Ｆｉによるべき乗がオーバーフローを発生することを条件として、本発明に係るべき剰余を用いる復号化の方法は、式（ＶＩＩ）に示した展開形を用いて変換前の整数を展開し、正確なべき剰余を得ることができる。
【０１６４】
さらなる例示的実施形態において、２列は、べき剰余を用いる復号化のために用いられる。図１０においては、２行２列には、べき剰余を用いる復号化を１回実施して得られる整数Ｙ１が記憶される。３列は、換字式復号のために用いられ、図１０においては、２行３列には、Ｙ１から換字式復号化により生じる、変換された整数Ｚ１が記憶される。
他の２列のセルには、復号化の諸段階から生じる変数の値が適宜記憶される。例えば、９行２列には公開鍵Ｅ１、１１行２列には秘密鍵Ｆ１、１４行２列にはオフセットＴ１がそれぞれ記憶される。同様に、他の３列のセルに関しては、１３行３列には換字式暗号化の鍵Ｒ１、１５行３列には１回デクリメントされたループカウンタ（Ｌ−１）がそれぞれ記憶される。
このようにして、入力Ｘｉから、２列にはべき剰余を用いる暗号化における変換後の整数Ｙ１、他の変数Ｅ１、Ｆ１、及びＴ１が記憶され、３列には整数Ｙ１から変換される整数Ｚ１、他の変数Ｒ１、及びデクリメントされたループカウンタ（Ｌ−１）が記憶される。
【０１６５】
このようにして、本発明に係る整数を復号化する方法は、換字式復号化及びべき剰余を用いる復号化の組み合わせを繰り返し実施し、ループカウンタがゼロ以下となることを条件として、２行（２ｎ＋１）列に整数Ｘ１として復号化した整数が得られる。これらの復号化の諸段階が、対応する暗号化の諸段階の逆順で実施されることにより、図１０に示す整数の復号化計算ワークシート２２０の２行（２ｎ＋１）列に得られる整数Ｘ１は、図９に示した整数の暗号化計算ワークシート２００の２行１列に入力された元の整数Ｘｉと等しくなる。
【０１６６】
本発明に係る整数の暗号化及び復号化の方法の諸段階を用いることにより、べき剰余を用いる暗号化及び復号化の諸段階のいずれにおいても、計算過程において桁あふれを発生することにより、本発明の方法を用いない計算手段等においては、正しい暗号化も復号化も実施することはできない。さらに、べき剰余に加えて換字式暗号化及び復号化を重畳することにより、本発明の方法においては情報の秘匿性を飛躍的に高めることが可能になる。これにより、本発明に係る整数の暗号化及び復号化の方法及び該方法の実施手段等は、個人情報等と関連する整数の形態の情報に対して高い秘匿性を付与することが可能になる。
【０１６７】
［解読のための所要時間］
本発明に係る整数を暗号化する方法を用いて生成した整数に対して、解読の可能性を総当たりにより探索する場合の所要時間を例示する。これは、いわゆるブルート・フォース・アタック（総当たり攻撃）を用いて秘密情報を解読するための計算時間でありうる。
コンピュータの計算能力が毎秒１ペタフロップス、すなわち１秒間に１０の１５乗命令数であると仮定すると、当該コンピュータは１年間に約１０の２２乗命令数を実行することが可能である。
本発明に係る整数を暗号化する方法において、元の整数が６桁の１０進数であり、べき剰余を用いる暗号化及び換字式暗号化が連続して実行されるとする。暗号化において、この連続して実行される暗号化が５回繰り返される場合、当該５回繰り返された暗号化に含まれる独立した五重の換字式暗号化の組み合わせの総数は１０の３０乗（すなわち、１０の６乗の５乗）であり、前述のコンピュータによる総当たり計算の所要時間は約１０の８乗年（すなわち約１億年）と算出できる。本発明に係る暗号化の方法においては、さらに五重の独立したべき剰余を用いる暗号化が実施され、これらの暗号化に用いられる鍵は乱数発生手段によりランダムに選択されうるので、総当たりによる解読の所要時間は１億年をはるかに超える天文学的数字の時間でありうる。従って、本発明は乱数を適用可能な目標に対して具体的な実装及び製品化が可能な形態を提供でき、簡単なロジックに比して解読の困難さを飛躍的に向上させたという効果がある。
このように、本発明においては、べき剰余を用いる暗号化及び換字式暗号化を連続して複数回繰り返し実行することにより、元の整数から極めて秘匿性の高い暗号化した整数を生成することが可能である。本発明においては、第三者による解読の手間を膨大化することにより、守秘情報を参照するための識別情報等を高い秘匿性で暗号化し復号化することができる。
【０１６８】
以上、本発明の実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。上記実施形態に、多様な変更又は改良を加えることができる。そのような変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【符号の説明】
【０１６９】
２０  特定の個人
３０  整数型の識別子
３２、３４  整数部分
３５  整数部分の桁の情報
３７  追加の桁
３９  乱数発生手段
４０  オフセット情報
４１  整数型の復号化した識別子
４２、４４、４６、５２、５４  暗号化した整数
６２、６４、６６、９２、９４  固有情報
７２、７４、７６  暗号化計算
８２、８４、１０２、１０４  情報伝達経路
１００  暗号化手段
１１０  復号化手段
１１２、１１４  復号化計算
１２２、１２４、１２６  識別用途
【図１】
2010186076.tif 000045
【図２】
2010186076.tif 000046
【図３】
2010186076.tif 000047
【図４】
2010186076.tif 000048
【図５】
2010186076.tif 000049
【図６】
2010186076.tif 000050
【図７】
2010186076.tif 000051
【図８】
2010186076.tif 000052
【図９】
2010186076.tif 000053
【図１０】
2010186076.tif 000054