説明

整数の暗号化及び復号化方法

【課題】整数の暗号化及び復号化方法を提供する。
【解決手段】本発明に係る方法は、守秘情報を参照する識別子情報等に係る整数Xiを入力として受け付けるステップ、積Nが入力整数Xiを超える2つの素数A及びBを生成し、(A−1)と(B−1)との積をDとし、(A−1)と(B−1)の最小公倍数をKとするステップ、ランダムな規則を用いてD又はKと素である数Eを選択するステップ、べき乗(XiのE乗)が計算機の整数演算に桁あふれを発生する条件で剰余計算を実施して暗号化するステップ、暗号化した整数に対して、mを任意の整数としてE×F=m×K+1を成立するFを選択するステップ、べき乗(YiのF乗)の剰余計算で復号化するステップ、を含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、整数の暗号化及び復号化の方法に関する、特に、本発明は、守秘情報を参照するための識別情報等を高い秘匿性で暗号化し復号化する方法に関する。
【背景技術】
【0002】
従来より、法人組織等において構成員を識別するためにユニークな整数等を含む識別子を用いることが知られ、例えば国民健康保険制度等において加入者を識別するために8桁程度の数字が用いられ、又は銀行口座を識別するために銀行の支店及び口座のそれぞれに3桁から10桁程度の数字等が用いられ、あるいはクレジット会員を識別するために12桁程度の数字が用いられ、適当な区切り記号、文字列又は他の情報等を併用して、識別される本人が覚えやすい形式が適宜用いられている。
また、暗号及びデジタル署名を実現しうる方式として、桁数が大きい合成数の素因数分解問題が困難であることを安全性の根拠とした公開鍵暗号であるRSA暗号が知られている(特許文献1及び非特許文献1)。RSA暗号は、暗号化の段階においては適当な正数によるべき乗と素数2個の積を法数とする剰余演算とを用い、復号化においては当該積の素因数を要するべき乗根を用いることにより、素因数を知らなければ復号化が困難になることによって暗号の安全性を確保している。
さらに、コンピュータ・ネットワークを介する情報の送受信においてセキュリティを確保するために、暗号化、認証、改ざん検出の機能を有するSSLプロトコル等が知られている(非特許文献2)。SSLプロトコルに含まれる公開鍵証明書に基づく認証は、RSA暗号を用いうることが知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許第4405829号明細書
【非特許文献】
【0004】
【非特許文献1】「RSA暗号」[online]、平成20年6月12日、[平成20年7月30日検索]、インターネット、<URL:http://ja.wikipedia.org/wiki/RSA%E6%9A%97%E5%8F%B7>
【非特許文献2】「Secure Sockets Layer」[online]、平成20年7月29日、[平成20年7月30日検索]、インターネット、<URL:http://ja.wikipedia.org/wiki/Secure_Sockets_Layer>
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、従来技術又は従来技術の組み合わせにおいては、暗号化前の数字又は文字と、復号化後の数字又は文字の形式との組み合わせ等を手がかりとして、公開鍵と対をなす秘密鍵が解読されると、同じ公開鍵及び秘密鍵の組み合わせを用いる暗号は全て解読可能になるという弱点があった。RSA暗号においては素因数を特定するまでの所用時間の長さを暗号の安全性の根拠としていることから、解読に用いるコンピュータ機器等を高性能化することにより、一定の解読手法であってもより短時間で解読されて秘匿情報が漏洩する可能性が高まるという問題があった。
また、RSA暗号化等の公開鍵暗号化方式においては、元の情報と暗号化した情報との組み合わせが第三者に漏洩すると、当該組み合わせを手がかりとして暗号化及び復号化のための鍵を解析される可能性があった。
さらに、音声による通話又は印刷物等の文書を介する情報の漏洩においては、コンピュータ・ネットワークを用いて伝達される情報に対するSSLプロトコル等のセキュリティ技術では対応できないため、音声又は文書等を含む多様な形態で個人情報を隠蔽しうる方法が必要であった。
【0006】
本発明は、暗号化及び復号化の諸段階の実施に要する処理時間は従来技術とほぼ同等のまま、乱数等のランダムな規則に基づいて暗号化のための鍵を選択し、同じ鍵が繰り返して用いられないようにすることにより、鍵を作成した時点の情報をもたなければ復号化が不可能となる手順を用い、解読を飛躍的に困難にする方法を提供することを目的とする。本発明は、公開鍵暗号方式だけでは暗号化が不十分な数字に対しても、秘匿性の高い情報の変換を実施できることを目的とする。これらによって、本発明は、コンピュータ・ネットワークを含む情報通信を介して送受信される個人情報等のセキュリティを確保することを目的とする。また、本発明は、コンピュータ・ネットワーク、音声、又は文書等の多様な形態で送受信しうる暗号化された情報を、同一の識別番号等から生成することを目的とする。
【課題を解決するための手段】
【0007】
本発明者は、計算過程において計算機が桁あふれを生じるような大きな数を意図的に発生する計算手順を用い、所定の手順で桁あふれを回避して暗号化及び復号化を実施することにより、個人情報を秘匿する方法を見出した(特願2008−244761)。さらに、本発明者は、乱数等のランダムな規則に基づいて鍵を選択することにより、第三者には同一の鍵の組み合わせが作成しえない方法を導入して秘匿性を飛躍的に向上しうることを見出したことにより、本発明を完成するに至った。
本発明では、以下のような解決手段を提供する。
【0008】
(1) 整数Xiを暗号化し復号化する方法であって、暗号化のための鍵をランダムな規則により選択するステップと、積NがXiを超える2つの素数A及びBを生成するステップと、(A−1)と(B−1)との積をDとし、(A−1)と(B−1)の最小公倍数をKとし、D又はKと素である数をEとして、次式において項XiのE乗が計算手段の整数演算に桁あふれを発生する条件で、次式の展開形を用いて整数Xiを変換した整数Yiを生成するステップと、
【数1】

mを任意の整数として次式を成立するFを用意するステップと、
【数2】

次式を用いて変換した整数Yiを整数Xnに復号化するステップと、
【数3】

を含み、式中、Eは暗号化のための鍵をランダムな規則により選択するステップにより選択される、整数を暗号化し復号化する方法。
【0009】
本発明の暗号化及び復号化方法においては、整数演算を実施可能なコンピュータ装置等を用い、整数を入力して暗号化した整数を生成し、当該生成した暗号化した整数を復号化することにより、入力した整数を復元しうる。
入力に用いる整数は、コンピュータ処理可能な整数であればよく、文字又は画像等から可逆的に変換された整数でもよい。例えば、コンピュータ処理可能な文字のそれぞれに割り当てられた文字コード等を1桁、2桁又は4桁等の16進数の整数として扱ってもよい。また、例えば、英字アルファベットに含まれる26個の文字を、26進数を表す1桁の整数として扱ってもよい。また、例えば、コンピュータ処理可能な画像に含まれる個々の画素を、RGB各8ビットの整数の一組とする24ビットの2進数の整数として扱ってもよい。
一実施形態において、構成員の識別番号等の個人情報は、コンピュータ処理可能な整数に可逆的に変換され、本発明の整数を暗号化し復号化する方法の入力に用いられる。
【0010】
本発明に係る素数A及びBの組み合わせは、積NがXiを超え、和が最も小さくなる組み合わせとなるように選択してもよい。このようにすることで、素数A及びBの組み合わせを限られた範囲の素数として、後続の諸段階の計算に要する計算機のリソースの膨大化を抑制し、効率的な暗号化及び複合化の計算を実施することが可能になる。
【0011】
本発明に係る暗号化及び復号化の鍵はいずれも整数でありうる。換言すれば、整数として扱うことが可能な情報を、本発明に係る暗号化及び復号化の鍵として用いうる。例えば、文字コード等を用いて特定の文字情報と可逆的に対応する整数を、本発明に係る暗号化及び復号化の鍵として用いてもよく、文字コードに限定せずに整数との関連づけが可能な情報を用いてもよい。
本発明に係る暗号化の鍵を選択するためのランダムな規則は、乱数の発生等を含むランダムな規則を用いることが可能である。例えば、整数の乱数を発生するためのコンピュータ・プログラムを用いて得られる整数を、本発明に係る暗号化の鍵として用いてもよい。これに限定せず、乱数賽等の機構、任意の時刻における電気的雑音の強度と関連づけた数値等をランダムな規則として、これらのランダムな規則に基づいて整数を選択して用いてもよい。
具体的には、本発明に係る整数を暗号化する方法においては、式(I)に含まれる整数Eは、ランダムな規則に基づいて選択されうる。また、本発明に係る整数を復号化する方法においては、式(II)により整数Eと関連づけられる整数Fが選択されうる。
本発明に係る整数を暗号化する方法においては、このランダムな規則による整数Eの選択により、整数Fも選択される。すなわち、本発明に係る任意の時点におけるべき剰余の計算において選択される一対の整数E及び整数Fは、他のべき剰余の計算中に選択された他の一対の整数E及び整数Fとは関連性のない整数でありうる。従って、本発明に係る暗号化及び復号化に用いられる整数E及び整数Fの正しい値を用いることのない第三者に対して、本発明は極めて高い秘匿性を提供することが可能になる。
【0012】
本発明の暗号化及び復号化方法に係る計算手段は、コンピュータに整数演算を実施させるプログラム等であり、アセンブラ又はコンパイラ等により生成された、インタープリタ等により変換された、あるいはスクリプト又はスプレッドシート等が内蔵する計算ルーチンにより呼び出される機械語プログラム等でありうる。
一実施形態において、桁あふれは、コンピュータが備える中央演算ユニット(CPU)の演算レジスタに発生しうる。従って、特定のCPUが有する演算レジスタの桁数に従って、有効な桁数の整数演算が実施されうる。例えば、レジスタ長が16ビットのCPUの場合、整数演算に用いうる整数は、例えば符号なし16ビット整数として、10進数の0〜65535の範囲である。レジスタ長が32ビットのCPUの場合は、同様に符号なし32ビット整数として、10進数の0〜4294967295の範囲である。
別の実施形態において、桁あふれは、インタープリタ、スクリプト又はスプレッドシート等が整数演算のために用意する内部関数において発生しうる。従って、特定のインタープリタ、スクリプト又はスプレッドシート等が有する内部関数が表現可能な整数の桁数に従って、有効な桁数の整数演算が実施されうる。例えば、特定のコンパイラ等において符号なし16ビット整数の型が定義された変数が表しうる整数は、10進数の0〜65535の範囲である。
【0013】
本発明の方法においては、式(I)で表されるべき乗の計算において、上述の桁あふれを含む任意の桁あふれを発生するよう、整数Eの範囲を選択する。桁あふれは、例えばCPU内部における整数演算中の桁あふれの発生の検出、又はコンパイラ等が適宜備える整数演算ライブラリに含まれる桁あふれに対するエラー処理ルーチン等の、当技術分野に公知の手法を用いて検出しうる。さらに、本発明の方法においては、当該範囲からランダムな規則により整数Eを選択する。
【0014】
本発明に係る暗号化及び復号化の方法に用いる展開形は、上述のように桁あふれを発生する条件を満たし、かつランダムな規則により選択された整数Eを用いて、整数のべき乗を代替する計算法を含む。具体的には、直接に式(I)を用いる代わりに、式(I)の項XiのE乗における桁あふれを回避するために、当該項を複数の整数の積で表す公知の手法を用いうるが、これに限定しない。
【数4】

式中、sは0<s<Eを満たす整数である。展開した右辺のいずれかの項が桁あふれを発生する場合は適宜さらにその項を展開してもよい。式(IV)のような展開形は整数sの選択に計算回数が依存しうる。このように得られたYiは、元のXiを暗号化した整数でありうる。
【0015】
また、本発明に係る整数を暗号化し復号化する方法において、式(II)で表される整数Fは、任意のmを含んで選択された素数A及びBに基づいて生成しうる右辺の式(m×K+1)の因数である整数の集合から選択されうるものであれば何でもよい。整数E及びFの対は、当業に公知の公開鍵暗号化技術における公開鍵及び秘密鍵の対として扱ってもよい。
【0016】
(2) さらに、換字式暗号化を用いて整数を換字暗号した整数に変換するステップと、換字式復号化を用いて換字暗号した整数を復号化するステップと、を含む、(1)に記載の整数を暗号化し復号化する方法。
【0017】
本発明の方法に係る、換字式暗号化を用いて整数を換字暗号した整数に変換するステップにおいては、入力の整数の数値又は記数法における桁の数字に対して換字暗号が実施される。好適な換字式暗号化はシーザー暗号化であるが、これに限定しない。例えば、整数Yiを換字暗号して整数Ziに換字式暗号化することにおいて、次式のような変換を用いうる。
【数5】

式中、Rは換字式暗号化の鍵として用いる整数であり、Rot()は鍵Rを用いて整数Yiを換字式暗号化する関数である。Rot()は、十進法等の記数法を用いて整数Yiを記述して得られる数字の並びを文字列として扱う、公知のシーザー暗号化を用いることができる。例えば、シーザー暗号化における鍵Rを整数3として、十進数の数字1文字からなる集合{0,1,2,3,4,5,6,7,8,9}の各要素に鍵Rを加算し、集合{3,4,5,6,7,8,9,0,1,2}の各要素を同一の順番で対応させて換字することが可能である。あるいは、シーザー暗号化とは異なって、鍵Rはランダムな順序を用いる情報又は所定の数字の並び方の情報等と関連づけ、対応させる集合はランダムな順序又は所定の数字の並び方でもよい。またあるいは、元の集合の一部の要素に対して鍵Rを用いる換字式暗号化を実施してもよく、当該一部の要素の選択には乱数を用いてもよく、当該一部の要素以外の残りの要素に対して公開鍵暗号化を含む任意の暗号化を実施してもよい。これらに限定せず、記数法の桁の数字を予め用意した規則に従って、可逆的かつ一対一に対応するように換字し、整数Yiを整数Ziに変換してもよい。これらの換字式暗号化は、ループカウンタLに依存せずに毎回実施してもよく、ループカウンタLに依存して、初回のみ又は偶数回のみ等、Lの所定の値に基づいて実施してもよく、適宜設計しうる。
【0018】
さらに、本発明の方法に係る、換字式復号化を用いて換字暗号した整数を復号化するステップにおいては、前述の換字式暗号化を用いて変換された整数から、変換前の整数が復号化される。例えば、変換された整数Ziから元の整数Yiを復号化する場合に、次式に示す換字式復号化を用いうる。
【数6】

式中、Rot−1()は、換字式暗号化により生成した整数Ziに対して、暗号化の鍵Rを用いて元の整数Yiに復号化する関数である。
【0019】
本発明の方法は、暗号化において上述のべき剰余を用いる暗号化及び換字式暗号化の両者を用い、復号化においてこれらの両者を逆順で用いる。それぞれの暗号化の順序は何でもよく、暗号化において先に換字式暗号化を実施した後にべき剰余を用いる暗号化を実施してもよく、これらを入れ替えて暗号化してもよい。復号化は、対応する暗号化に含まれる換字式又はべき剰余による暗号化の手順を逆順で実施すればよい。
【0020】
本発明に係る整数を暗号化し復号化する方法においては、桁あふれを発生する条件で式(I)の整数Eを選択するため、本発明の方法を用いないコンピュータ装置等においては暗号化した整数Yiを正確に得ることができず、情報秘匿性の高い暗号化を実施することが可能になる。また、同じ方法を用いて暗号化を繰り返すことは、他の鍵による1回の暗号化と等価でありうるが、本発明においてはべき剰余と異なる方法である換字式暗号化を含み、これらを重畳することで互いに独立した暗号化を多重に用いることになり、元の情報を飛躍的に解読困難とすることができる。すなわち、Fが第三者に知られにくいこと、換字式暗号化及びべき剰余を用いる暗号化が独立して繰り返し用いられうることによる解読の困難さに基づいて、本発明においては高いセキュリティを確保しうる。重畳及び繰り返しの詳細は後述する。
【0021】
また、本発明に係る整数を暗号化し復号化する方法においては、べき剰余による暗号化において特異点である0、1及びNに対しても、これらの整数を換字式暗号化によって他の整数に変換することにより、べき剰余の特異点ではない整数に暗号化することが可能になる。すなわち、本発明に係る方法においては、従来技術における特異点を元の整数に含んでもよく、第三者による解読の手がかりとなりうる特異点がないことから、より高い秘匿性を提供することが可能になる。
【0022】
さらに、本発明に係る整数を暗号化し復号化する方法において、べき剰余による暗号化において0、1及びNが特異点であることを利用し、これら以外の整数に対して換字式暗号化を実施してもよい。具体的には、整数Nに対して、0、1又はNのいずれかを含まない範囲の整数の各桁を換字式暗号化してもよい。従って、「1以上N以下」、「2以上N以下」、「1以上(N−1)以下」、又は「2以上(N−1)」以下のいずれかの範囲の整数から、換字式暗号化及び複合化する整数を選択してもよい。このようにすることで、本発明に係る整数を暗号化し復号化する方法は、0、1及びNをべき剰余による暗号化の特異点としたまま、換字式暗号化及び複合化の範囲を選択することにより、第三者による解読をさらに困難にすることが可能である。
これらの4通りの範囲に加えて、「0以上N以下」及び「0以上(N−1)以下」の範囲は、前述の特異点に対する換字式暗号化及び復号化の実施に含まれうる。本発明に係る換字式暗号化及び復号化の範囲の選択は、これらの6通りの範囲のいずれかでもよく、例えば、「(N−3)以上N以下」等のより狭い範囲でもよく、適宜設計しうる。
【0023】
(3) 換字式暗号化の鍵は、ランダムな規則により選択される整数である、(2)に記載の整数を暗号化し復号化する方法。
【0024】
換字式暗号化の鍵Rは、第三者による暗号の解読に用いられる可能性又は危険性が伴う情報であり、本発明により暗号化される整数又は暗号化した整数を含む何らかの情報から推測されないことが望ましい。そこで、本発明に係る整数を暗号化し復号化する方法においては、換字式暗号化の鍵Rを、ランダムに発生した整数に基づいて選択することにより、第三者による暗号の解読を困難としうる。
【0025】
一実施形態において、換字式暗号化の鍵Rは、予め素数の集合等を用意し、この集合の要素を順番付けし、最大の順番の数字以下の整数の乱数を発生させ、発生した乱数を順番として有する要素として選択することができる。別の実施形態において、換字式暗号化の鍵Rは、暗号化される整数以下の整数の乱数を発生させ、発生した乱数との差が最も小さい素数から選択することができる。他の変数の値を選択することについても同様である。またこれらの選択の手順に限らず、発生した乱数との関連づけが可能な選択の手順により、上記の変数の値を選択してもよい。このようにすることで、本発明に係る整数を暗号化し復号化する方法においては、第三者による暗号の解読をさらに困難としうる。
【0026】
(4) 展開形を用いて整数Xiを整数Yiに変換した後に、換字式暗号化を用いて整数Yiを整数Ziに変換する、べき剰余と換字とを連続する暗号化ステップと、換字式復号化を用いて整数Ziを整数Yiに復号化した後に、整数YiをXnに復号化する、換字とべき剰余とを連続する復号化ステップと、を含む、(2)に記載の整数を暗号化し復号化する方法。
【0027】
このようにすることで、本発明に係る整数を暗号化する方法においては、異なる暗号化の方法を連続することにより、同じ暗号化の方法の繰り返しからは得られない、より秘匿性の高い暗号化が可能になる。本発明に係る整数を復号化する方法においても、対応する暗号化の手順を知らなければ正確な復号化ができないため、第三者による解読にはより多くの手間を必要とする。従って、本発明に係る整数を暗号化し復号化する方法においては、元の整数に対して極めて高い秘匿性を与えることが可能になる。
【0028】
(5) べき剰余と換字とを連続する暗号化ステップ、及び換字とべき剰余とを連続する復号化ステップは、少なくとも2以上の同一の回数実施される、(4)に記載の整数を暗号化し復号化する方法。
【0029】
このようにすることで、暗号化ステップにおいては、べき剰余と換字とが交互に繰り返される。隣接する暗号化の方法は互いに異なるので、それぞれの暗号化は互いに独立して実施される。すなわち、隣接する二つの暗号化は、等価な一つのべき剰余又は換字式暗号化と置き換えることはできないので、本発明に係る連続する暗号化ステップを用いて暗号化した整数は、第三者による解読により多くの手間を必要とする。同様に、連続する復号化ステップにおける隣接する二つの復号化は、等価な一つのべき剰余又は換字式暗号化と置き換えることはできないため、本発明に係る整数を暗号化し復号化する方法においては、元の整数に対して極めて高い秘匿性を与えることが可能になる。
【0030】
(6) 整数Xiは換字式暗号化を用いて変換された整数である、換字とべき剰余とを連続する暗号化ステップと、整数Yiから復号化された整数Xnに対して換字式復号化を用いて復号化する、べき剰余と換字を連続する復号化ステップと、を含む、(2)に記載の整数を暗号化し復号化する方法。
【0031】
本発明に係る整数を暗号化し復号化する方法においては、連続する暗号化ステップとして換字式暗号化とべき剰余を用いる暗号化とが交互に実施され、連続する復号化ステップとしてべき剰余を用いる復号化と換字式復号化とが、暗号化と対応して逆順で交互に実施されればよい。前述の(2)に示したように、暗号化においてべき剰余を用いる暗号化を先に実施する場合は、復号化において換字式復号化を先に実施すればよく、(4)に示すように暗号化において換字式暗号化を先に実施する場合は、復号化においてべき剰余を用いる復号化を先に実施すればよい。これらの連続する手順が実施可能であることは、本発明に係る方法を用いて暗号化したときの正確な情報に基づいてのみ、暗号化された整数が正しく復号化され、当該正確な情報に基づかない解読の試行では、復号化に膨大な手間を必要とすることを意味している。従って、本発明に係る整数を暗号化し復号化する方法においては、元の整数に対して極めて高い秘匿性を与えることが可能になる。
【0032】
(7) 換字とべき剰余とを連続する暗号化ステップ、及びべき剰余と換字を連続する復号化ステップは、少なくとも2以上の同一の回数実施される、(6)に記載の整数を暗号化し復号化する方法。
【0033】
前述の(3)に示した暗号化ステップと同様に、本発明においては、換字とべき剰余とを交互に繰り返して暗号化してもよい。隣接する暗号化の方法は互いに異なるので、それぞれの暗号化は互いに独立して実施されうる。すなわち、隣接する二つの暗号化は、等価な一つのべき剰余又は換字式暗号化と置き換えることはできないので、本発明に係る連続する暗号化ステップを用いて暗号化した整数は、第三者による解読により多くの手間を必要とする。同様に、連続する復号化ステップにおける隣接する二つの復号化は、等価な一つのべき剰余又は換字式復号化と置き換えることはできない。本発明においてはこれらの繰り返し手順が実施可能であり、本発明に係る方法を用いて暗号化したときの正確な情報に基づいてのみ、暗号化された整数が正しく復号化される。一方、当該正確な情報に基づかない第三者による解読の試行においては、復号化に膨大な手間を必要とする。従って、本発明に係る整数を暗号化し復号化する方法においては、元の整数に対して極めて高い秘匿性を与えることが可能になる。
【0034】
(8) 少なくとも2以上の同一の回数は、所定の正の整数、所定の正の整数を暗号化した正の整数、及びランダムに発生した正の整数からなる群から選ばれる、(5)又は(7)に記載の整数を暗号化し復号化する方法。
【0035】
当該回数は、コンピュータ・プログラムにおける制御のためのループカウンタ等に記憶させる数値として設定してもよい。当該回数は2回以上であればよいが、暗号化の強度を確保するために、予め下限を設定してもよい。また、暗号化及び復号化の計算処理のための時間を短縮するために、予め上限を設定してもよい。従って、本発明に係る整数を暗号化し復号化する方法における当該回数の値は、予め設定された下限及び/又は上限の範囲に従って、所定の正の整数、所定の正の整数を暗号化した正の整数、及びランダムに発生した正の整数からなる群から選ばれうる。当該回数を暗号化する方法は何でもよい。
このように、べき剰余を用いる暗号化及び換字式暗号化のいずれとも独立した変数でありうる当該回数を秘密とすることで、当該回数は第三者に不明となる。すなわち、第三者の解読の手間はさらに膨大となりうる。従って、本発明に係る整数を暗号化し復号化する方法においては、元の整数に対して極めて高い秘匿性を与えることが可能になる。
【0036】
(9) 換字式暗号化は、単表式暗号化、多表式暗号化及び自動鍵暗号化からなる群から選ばれ、換字式復号化は、換字式暗号化に対応して単表式復号化、多表式復号化及び自動鍵復号化からなる群から選ばれる、(2)に記載の整数を暗号化し復号化する方法。
【0037】
本発明に係る換字式暗号化は、前述のシーザー暗号化以外にも、当業に公知の換字式暗号化を用いることが可能である。単表式暗号化は、単一換字式暗号化、単文字換字暗号化、単純換字暗号化を含む公知の暗号化でもよく、多表式暗号化は、ヴィジュネル暗号化、進行鍵暗号化、正方換字表を用いる暗号化を含む公知の暗号化でもよく、自動鍵暗号化は暗号化の鍵が元の整数又は暗号文、又はその両方に基づいて自動的に変更あるいは更新される暗号化でもよい。本発明に係る復号化においても、暗号化と同様に換字式復号化を用いることが可能であり、暗号化として列挙した種々の方法に対応する復号化の手順を用いることが可能である。
【0038】
(10) さらに、整数Xiを変換した整数Yiを生成する前に、整数Xiから整数Xi以下の整数Tを加算して整数Xiと置き換えるステップと、変換した整数Yiを整数Xnに復号化した後に、整数Xnに整数Tを減算して整数Xnと置き換えるステップと、を含む、(2)に記載の整数を暗号化し復号化する方法。
【0039】
整数Tは、いわゆるオフセットであり、本発明に係る暗号化及び復号化においては、前述の換字式暗号化及び復号化に加えて、数値の加算によるオフセットの適用及び当該数値の減算によるオフセットの消去を用いて、情報の秘匿化を行いうる。
特に、べき剰余を用いる暗号化及び復号化においては、従来の公開鍵暗号化技術等では0、1、及び元の整数自身が変換されずに特異点となりうるが、本発明においてはオフセットを用いて従来法における特異点の数値を変更することが可能である。従って、本発明においては、従来法の特異点に係る問題を避けて暗号化及び復号化を実施することが可能になる。ここで、オフセットTの加算により得られる整数(Xi+T)が、上述の素数A及びBの積Nを超える場合は、入力として受け付ける整数Xiの範囲を(N−T)未満としてもよく、積Nが整数(Xi+T)を超えるように素数A及びBを改めて選択してもよく、適宜設計しうる。
【0040】
(11) 整数Tはランダムな規則により選択される整数である、(10)に記載の整数を暗号化し復号化する方法。
【0041】
前述の変数E、変数F、素数A、素数B、素数の積N、任意の整数m等と同様に、整数Tも、第三者による暗号の解読に用いられる可能性又は危険性が伴う情報でありうる。本発明に係る整数を暗号化し復号化する方法においては、整数Tを乱数等を用いてランダムな規則により選択される整数とすることにより、第三者による暗号の解読を困難としうる。
【0042】
(12) 展開形はXiの桁を2つに分割し、分割した桁の上位の桁により表される整数Xu及び分割した下位の桁により表される整数Xdを生成し、次式を用いてXiを置き換えることであり、
【数7】

式中、Mは記数法の底であり、Cdは下位の桁の数であり、Cdは少なくとも1であり、置き換えたXu又はXdを用いて剰余計算を実施する、(1)に記載の整数を暗号化し復号化する方法。
【0043】
このようにすることで、本発明に係る整数を暗号化し復号化する方法においては、桁あふれを発生する条件で前述の式(I)のEを選択した後に、式(VII)を用いてXiを展開し、桁あふれを避けて、暗号化した整数であるYiを正確に得ることができる。
従って、前述の式(I)として表されるXiのべき乗の計算において、式(VII)を用いて適宜元の整数Xiを上位の桁と下位の桁とに分割することにより、べき乗の計算過程での桁あふれを避けることが可能になる。
【0044】
(13) 整数Xiは、識別子に含まれる文字又は数字の一部又は全体から、可逆的に変換された整数である、(1)に記載の整数を暗号化し復号化する方法。
【0045】
本発明に係る識別子は、典型的にはコンピュータ処理可能な文字(文字としての数字を含む)又は数値であり、文字は文字コード等の公知技法を用いることによりユニークな整数に変換されうる。従って、本発明に係る整数の暗号化及び復号化の方法においては、ユニークな整数との関連づけが可能な文字又は数値を元の整数として暗号化し、復号化することができる。
【0046】
(14) 整数Xiは、1次元画像又は2次元画像から可逆的に変換された1次元画像の一部又は全体から、可逆的に変換された整数である、(1)に記載の整数を暗号化し復号化する方法。
【0047】
本発明に係る画像は、典型的にはコンピュータ処理可能な画像データであり、例えば一つの画素は、R(赤)G(緑)B(青)の各色ごとに8ビットの階調の値を含む符号なしの24ビットの整数でありうる。2次元画像は、所定の手順に従って画素を並び替えることにより1次元画像に変換してもよい。このようにして、画素からなる画像は整数として扱うことができ、特定の画像はユニークな整数と関連づけられる。暗号化される元の整数に含まれる画素数は適宜設計しうる。従って、本発明に係る整数の暗号化及び復号化の方法においては、ユニークな整数との関連づけが可能な1次元又は2次元画像を元の整数として暗号化し、復号化することができる。
【0048】
(15) さらに、暗号化に先立って、少なくとも一つの桁を元の整数に対して追加することにより桁を増した整数に置き換えるステップを含む、(1)に記載の整数を暗号化し復号化する方法。
【0049】
このようにすることで、暗号化される整数Xiに対して、任意に選択される桁数を追加した整数を生成して暗号化の入力に用いうる。桁数を増した整数Wiは、元の整数Xiが同一であっても、増した桁数及び当該桁数の整数に含まれる各桁の数字に依存して変化しうる。従って、同一のXi及び任意に選択される桁数の整数に基づいて、互いに異なる整数Wiを生成して暗号化に用いうる。
一実施形態において、暗号化される整数Xiは生年月日の日付の情報を含む文字列に基づいて生成される4桁、6桁、又は8桁等の整数であり、任意に選択される桁数は例えば2桁の整数でありうる。本発明に係る整数を暗号化し復号化する方法のユーザ等は、自己の生年月日に基づく同一の整数及び任意に選択される2桁の整数から生成される、桁数を増した整数Wiを暗号化の入力とし、当該2桁の整数を使い分けることにより、複数の暗号化した整数を生成して利用しうる。暗号化される整数は例えば10桁等であっても、ユーザは全ての桁の数字を使用目的ごとに記憶する必要はなく、当該2桁の整数を使い分ければよい。
従って、本発明に係る整数を暗号化し復号化する方法においては、生年月日の日付等の個人情報を含む文字列と関連づけられる整数であっても、任意に選択される桁数を増して暗号化することにより、複数の暗号化した整数を生成して使い分けることが可能になる。
【0050】
(16) さらに、復号化の後に復号化した整数から追加した少なくとも一つの桁を除去するステップを含む、(15)に記載の整数を暗号化し復号化する方法。
【0051】
このようにすることで、本発明に係る整数を暗号化し復号化する方法においては、復号化の後に、桁を増した整数Wiから元の整数Xiを完全に復号化することが可能になる。
【0052】
(17) (1)から(16)のいずれかに記載の方法の各ステップをコンピュータを用いて実行するための、コンピュータ・プログラム。
【0053】
これにより、本発明に係る整数を暗号化し復号化する方法の各ステップをコンピュータに実行させうる。従って、暗号化及び復号化に係る各ステップはコンピュータを用いて自動的に処理されうる。
【0054】
(18) (1)から(17)のいずれかに記載の方法の各ステップを用いてエンコードした数値を含むコンピュータ可読媒体。
【0055】
これにより、本発明に係る整数を暗号化し復号化する方法を用いて、記憶媒体に記録する任意のデータ、及び/又は記憶媒体の特定の記憶領域を参照するためのファイル割り当てテーブル等に含まれる数値を暗号化及び復号化しうる。当該データ又は当該数値は整数と見なしうるものであれば何でもよい。すなわち、本発明により、第三者に対して隠蔽したコンピュータ可読媒体を提供しうる。具体的には、コンピュータ可読媒体はフラッシュメモリ等の電気的記憶媒体、CD−ROM等の光学読み取り可能媒体、ハードディスク等の磁気記憶媒体等の任意の形態を含む。本発明に係る整数を暗号化し復号化する方法を用いて提供しうるコンピュータ可読媒体は、暗号化又は復号化の諸段階においてコンピュータ・ネットワーク等を介する必要はなく、ネットワーク等から切り離されたオフライン状態でも本発明に係る暗号化及び復号化の方法を用いてエンコードした情報を記憶しうる。従って、本発明においては、通信技術と連携して動作するセキュリティ技術等とは独立して、単独で暗号化及び復号化の方法を用いるコンピュータ可読媒体を提供しうる。
【0056】
(19) 整数Xiを暗号化し復号化する方法であって、暗号化のための鍵をランダムな規則により選択する暗号化鍵選択部と、積NがXiを超える2つの素数A及びBを生成する素数生成部と、(A−1)と(B−1)との積をDとし、(A−1)と(B−1)の最小公倍数をKとし、D又はKと素である数をEとして、次式において項XiのE乗が計算手段の整数演算に桁あふれを発生する条件で、次式の展開形を用いて整数Xiを変換した整数Yiを生成する剰余暗号化実行部と、
【数8】

mを任意の整数として次式を成立するFを用意する秘密鍵生成部と、
【数9】

次式を用いて変換したYiをXnに復号化する剰余復号化実行部と、
【数10】

を含み、式中、Eは暗号化のための鍵をランダムな規則により選択するステップにより選択される、整数を暗号化し復号化する装置。
【0057】
本発明に係る整数の暗号化及び復号化装置においては、CPU内部における整数演算中の桁あふれの検出又はプログラム実行中の整数演算の桁あふれ発生の検出を実施可能であればよい。
また、本発明に係る整数の暗号化及び復号化装置においては、桁あふれを発生する条件で前述の式(I)のEを選択した後に、例えば前述の式(VII)を用いてXiを展開し、桁あふれを避けて、暗号化した整数であるYiを正確に得ることができる。
さらに、本発明に係る整数の暗号化及び復号化装置においては、換字式暗号化実行部及び換字式復号化実行部を、べき剰余暗号化及び復号化に重畳して用いることにより、単独の方法の繰り返しでは得られない、秘匿性の高い暗号化を実施し、この暗号化により変換された整数を正しく復号化するための情報を生成することが可能である。
【0058】
従って、本発明に係る整数を暗号化及び復号化する装置においては、個人情報等と関連づけられた整数に対して高いセキュリティを確保した暗号化した整数を生成でき、この暗号化した整数を正しく復号化して元の整数を得られる。
【0059】
(20) 整数Xiを暗号化し復号化するシステムであって、暗号化のための鍵をランダムな規則により選択する暗号化鍵選択手段と、積NがXiを超える2つの素数A及びBを生成する素数生成手段と、(A−1)と(B−1)との積をDとし、(A−1)と(B−1)の最小公倍数をKとし、D又はKと素である数をEとして、次式において項XiのE乗が計算手段の整数演算に桁あふれを発生する条件で、次式の展開形を用いて整数Xiを変換した整数Yiを生成する剰余暗号化手段と、
【数11】

mを任意の整数として次式を成立するFを用意する秘密鍵生成手段と、
【数12】

次式を用いて変換したYiをXnに復号化する剰余復号化手段と、
【数13】

を含み、式中、Eは暗号化のための鍵をランダムな規則により選択するステップにより選択される、整数を暗号化し復号化するシステム。
【0060】
本発明に係る情報を暗号化及び復号化するシステムにおいては、CPU内部における整数演算中の桁あふれの検出又はプログラム実行中の整数演算の桁あふれ発生の検出を実施可能であればよく、これを用いて式(IX)で表されるべき乗計算に含まれる整数Eを選択してもよい。
さらに、本発明に係る整数を暗号化及び復号化するシステムにおいては、桁あふれを発生する条件で前述の式(IX)のEを選択した後に、例えば前述の式(VI)を用いてXiを展開し、桁あふれを避けて、暗号化した整数であるYiを正確に得ることができる。
さらに、本発明に係る整数の暗号化及び復号化するシステムにおいては、換字式暗号化手段及び換字式復号化手段による処理を、べき剰余暗号化及び復号化に重畳するにより、単独の方法の繰り返しでは得られない、秘匿性の高い暗号化を実施し、この暗号化により変換された整数を正しく復号化するための情報を生成することが可能である。
【0061】
従って、本発明に係る整数を暗号化及び復号化するシステムにおいては、個人情報等と関連づけられた整数に対して高いセキュリティを確保した暗号化した整数を生成でき、この暗号化した整数を正しく復号化して元の整数を得られる。
【0062】
本発明に係る整数を暗号化及び復号化する方法、装置、システム等は、コンピュータ・ネットワーク技術等の、既存の情報伝達技術等と組み合わせることができ、そのように組み合わせた技術もまた、本発明の技術範囲に含まれる。同様に、本発明の技法を含む情報記録システム、情報管理システム、情報処理システム等も、本発明の技術範囲に含まれる。さらに、本発明の技法は、暗号化及び復号化の諸段階を、FPGA(現場でプログラム可能なゲートアレイ)、ASIC(特定用途向け集積回路)、これらと同等のハードウェア・ロジック素子、プログラム可能な集積回路、又はこれらの組み合わせが記憶し得るプログラムの形態、すなわちプログラム製品として提供し得る。具体的には、入出力、データバス、メモリバス、システムバス等を備えるカスタムLSI(大規模集積回路)の形態として、本発明に係る暗号化及び復号化装置等を提供でき、そのように集積回路に記憶されたプログラム製品の形態も、本発明の技術範囲に含まれる。
【発明の効果】
【0063】
本発明によれば、計算機が桁あふれを発生する条件で整数を暗号化し復号化する方法、及び乱数等のランダムな規則に基づいて鍵を選択する方法の両者を用いて、個人を特定するための識別番号等を暗号化した整数を生成することができる。従って、本発明によれば、第三者に対して生成した整数から当該識別番号等の推定を極めて困難として、当該識別番号を秘匿しうるという効果がある。また、本発明によれば、乱数等のランダムな規則に基づいて鍵を選択する方法を重畳して暗号化及び復号化を実施することにより、第三者の解読は飛躍的に困難となって、当該識別番号等の秘匿性を高めることが可能である。すなわち、本発明は乱数を適用可能な目標に対して具体的な実装及び製品化が可能な形態を提供でき、簡単なロジックに比して解読の困難さを飛躍的に向上させたという効果がある。さらに、本発明によれば、乱数等のランダムな規則に基づいて鍵が選択されるべき剰余を用いる暗号化と、換字式暗号化とを交互に繰り返すことにより、それぞれの暗号化が独立して多重化され、極めて秘匿性の高い暗号化を実施することが可能である。また、本発明によれば、生年月日等の同一の個人情報を含む文字列を表す整数及び任意に選択される整数を用いて、ランダムに生成した鍵、又は桁数を増した整数を用いて暗号化及び復号化することにより、同一の個人情報等から複数の異なる暗号化した整数を生成して使い分けることが可能になる。さらに、本発明によれば、音声による通話又は印刷物等の文書等を含む多様な形態で個人情報を隠蔽することが可能になる。
【図面の簡単な説明】
【0064】
【図1】本発明の一実施形態に係る、整数を暗号化する方法のフロー図である。
【図2】本発明の一実施形態に係る、暗号化した整数を復号化する方法のフロー図である。
【図3】本発明の一実施形態に係る、整数を暗号化する方法を用いる個人情報隠蔽手順の例を示す図である。
【図4】本発明の一実施形態に係る、整数を暗号化する方法を用いる個人情報隠蔽手順の別の例を示す図である。
【図5】本発明の一実施形態に係る、整数を暗号化する方法を用いる個人情報隠蔽手順のさらに別の例を示す図である。
【図6】本発明の一実施形態に係る、暗号化した整数の復号化手順の例を示す図である。
【図7】本発明の一実施形態に係る、暗号化の方法の諸段階をスプレッドシート形式の計算アプリケーション・パッケージを用いて実装する例を示す図である。
【図8】本発明の一実施形態に係る、復号化の方法の諸段階をスプレッドシート形式の計算アプリケーション・パッケージに実装して計算する実施例を示す図である。
【発明を実施するための形態】
【0065】
以下、本発明の実施形態について、図面を併用して説明する。
【0066】
[暗号化及び復号化のフロー図]
図1及び図2に、本発明の一実施形態に係る、整数を暗号化し復号化する方法のフロー図を示す。図1は本発明に係る整数を暗号化する方法のフロー図の例であり、図2は当該暗号化した整数を復号化する方法のフロー図の例である。
【0067】
[暗号化の諸段階]
まず、図1を参照し、暗号化の諸段階を説明する。本発明に係る整数を暗号化する方法は、図1のステップS100において、変数領域を確保する。具体的には、次の表1に列挙する変数を用いる計算のためにコンピュータ装置等のメモリ領域が適宜確保される。
【表1】

【0068】
このとき、ループカウンタL等の初期設定を適宜実施してもよい。
例えば、べき剰余を用いる暗号化及び換字式暗号化の組み合わせを全体として3回繰り返す場合に、ステップS100においてループカウンタLに整数3を設定してもよい。これに限定せず、ループカウンタLは、所定の正の整数、当該所定の正の整数を暗号化した正の整数、及びランダムに発生した正の整数からなる群から選択してもよい。
ループカウンタLは、べき剰余を用いる暗号化及び換字式暗号化のいずれとも独立した変数であり、暗号化による秘匿性の強度に影響し、暗号化及び復号化のために計算時間に影響しうる。
ループカウンタLに対して、秘匿性の強度を確保するために、予め下限を設定してもよい。さらに、暗号化及び復号化の計算処理のための時間を短縮するために、予め上限を設定してもよい。従って、本発明に係る整数を暗号化し復号化する方法におけるループカウンタLの値は、予め設定された下限及び/又は上限の範囲に従って、所定の正の整数、当該所定の正の整数を暗号化した正の整数、及びランダムに発生した正の整数からなる群から選ばれうる。ループカウンタLを第三者に秘密とすることで、それぞれの暗号化の方法における秘匿性に加えて、第三者の解読の手間はさらに膨大となりうる。従って、本発明に係る整数を暗号化し復号化する方法においては、元の整数に対して極めて高い秘匿性を与えることが可能になる。
【0069】
他の、べき剰余を用いる暗号化に含まれる変数であるオフセットT及び任意の整数m、並びに換字式暗号化に含まれる変数である鍵Rも同様に、第三者に秘密となるように選択してもよい。
【0070】
暗号化する整数としては、識別子等に含まれうる符号なしの整数が挙げられるが、これに限定せず、任意の形式の整数を本発明に係る方法に用いうる。好適には、暗号化する整数は0以上の任意の整数でありうる。
一実施形態において、計算に用いるコンピュータ装置等における整数Xi、Yi、Zi、Xn及びYnのワード長は、当該コンピュータ装置等が備えるCPUの内部命令において一つの整数を表すために用いうるレジスタのビット幅の最大以内でありうる。例えば、16ビットレジスタを用いて内部命令に含まれる整数演算を実施可能なCPUを備えるコンピュータ装置においては、整数Xi、Yi、Zi、Xn及びYnのワード長は16ビット以下であり、これらの整数の変数は10進数の記法における0以上65535以下でありうる。
【0071】
変数領域を確保した後、本発明に係る整数を暗号化する方法は、ステップS10に含まれるべき剰余を用いて暗号化する諸段階、及びステップS30に含まれる換字式暗号化の諸段階を、順次実施する。
【0072】
ステップS10は、S110からS150の各ステップを含む。まず、本発明に係る整数を暗号化する方法は、ステップS110において、積NがXiを超える2つの素数A及びBを生成する。素数A及びBは、予め素数の集合等を用意して適宜選択してもよい。あるいは、素数A及びBの組み合わせは、積NがXiを超え、和が最も小さくなる組み合わせとなるように自動的に選択してもよい。このようにすることで、素数A及びBの組み合わせを限られた範囲の素数として、後続の諸段階の計算に要する計算機のリソースの膨大化を抑制し、効率的な暗号化及び複合化の計算を実施することが可能になる。
次いで、本発明に係る整数を暗号化する方法は、ステップS120において、(A−1)と(B−1)との積をDに代入し、(A−1)と(B−1)の最小公倍数をKに代入する。
次いで、本発明に係る整数を暗号化する方法は、ステップS130において、D又はKと素である数の集合からランダムにEを選択する。例えば、D又はKと素である数の集合の各要素を大きさに従って昇順に配列し、配列した要素数を上限として整数型の乱数を発生させ、発生した乱数を配列の順番とする要素を選択して、整数Eとしてもよい。
次いで、本発明に係る整数を暗号化する方法は、ステップS140において、次の式(VIII)の右辺の項(XiのE乗)が、計算手段の整数演算に桁あふれを発生するか否かを判定する。判定の結果が真であればステップS150に進み、偽であればステップS130に戻る。
【数14】

【0073】
桁あふれの検出は、計算手段が備えるCPUの内部動作の状況を記憶するための、CPUの特定のレジスタに含まれるフラグ(例えばステータス・レジスタ又はコンディション・レジスタ等に含まれるオーバーフロー・フラグ等)の値を参照してもよく、コンパイラ言語等により予めオペレーティング・システムに例外処理等を登録して当該例外処理の動作を参照してもよく、スクリプト言語又はコンパイラ言語等に付属するライブラリ等が備えるオーバーフロー・エラー処理を参照してもよく、適宜設計しうる。
【0074】
次いで、本発明に係る整数を暗号化する方法は、ステップS150において、式(VIII)の展開形を用いて、整数Xiを暗号化した整数Yiを生成しうる。式(VIII)の展開形には、例えば次の式を用いうる。
【数15】

式中、Mは記数法の底であり、Cdは当該下位の桁の数であり、Cdは少なくとも1でありうる。すなわり、このようにして置き換えたXu又はXdを用いて、式(VIII)の剰余計算を実施しうる。
このようにすることで、本発明に係る整数を暗号化し復号化する方法においては、桁あふれを発生する条件で前述の式(VIII)のEを選択した後に、式(IX)を用いてXiを展開し、桁あふれを避けて、暗号化した整数であるYiを正確に得ることができる。
【0075】
一実施形態において、記数法の底であるMを10とし、Xiの桁数を10桁、下位の桁数Ctを5桁とする場合、式(IX)は次式のように表される。
【数16】

別の実施形態において、記数法の底であるMを2とし、Xiの桁数を16桁、下位の桁数Ctを8桁とする場合、式(IX)は次式のように表される。
【数17】

【0076】
例えば、本発明に係る整数を暗号化し復号化する方法の実施手段等が16ビット幅のレジスタを有するCPUを備えるコンピュータ装置等である場合に、元の整数Xiの値が10進数の65532等であると、Xiのべき乗の計算において、最も小さい整数のべき数でありうる2を用いた時点で、当該CPUが備える16ビット幅のレジスタを用いて表しうる整数の上限値65535を超えてしまう。すなわち、単に元の整数をそのままべき乗する通常の計算方法に従って式(VIII)の右辺に含まれるXiのE乗の計算を実施すると、正確なべき乗の値が得られない場合がある。
本発明に係る方法においては、式(IX)又はその具体例である式(X)又は式(XI)等を用いて上位の桁と下位の桁を分離しうる。例えば前述の元の整数Xiの値である65532を、2進数の1111111111111100(2)として表し、上位8桁と下位8桁等に分割し、上位8桁に含まれる整数11111111(2)(10進数の255)及び下位8桁に含まれる整数11111100(2)(10進数の252)を用い、255の2乗、255と252の積、252の2乗をそれぞれ計算すると、これらの整数の積はいずれも当該CPUが備える16ビット幅のレジスタを用いて表しうる整数の範囲内にあることは明白である。32ビット幅のレジスタ、64ビット幅のレジスタ等についても同様である。
従って、前述の式(VIII)として表されるXiのべき乗の計算において、最も少ない回数であるXiの2乗の場合に、式(XI)の右辺の2乗からは、Xuの2乗、Xu・Xd、及びXdの2乗が生成され、これらはいずれも元のXiの桁数以下の整数でありうるため、桁あふれを避けられる。すなわち、Xiの任意のべき乗において、式(XI)の手順を繰り返すことにより、べき乗の計算過程での桁あふれを避けることが可能になる。
分割する桁数は、計算手段等が備えるCPUの整数演算のためのレジスタのビット幅等に基づいて適宜設定しうる。好適には、符号なし整数演算のためのレジスタのビット幅を等分した上位の桁数及び下位の桁数を、分割した桁数として用いうる。
【0077】
以上の諸段階により、元の整数Xiから、べき剰余を用いて暗号化した整数であるYiを得られる。整数Yiを表すために必要なワード長は、元の整数Xiを表すためのワード長と同じでありうるが、これに限定せず、暗号化した整数Yiの用途等に応じて、又は他のセキュリティ手段又は方法等を組み合わせて、桁数を増す数字等を追加してもよく、あるいは整数Yiを文字に変換して適宜記号等を含む文字を任意に追加してもよい。さらに、任意にオフセットTを用いて、暗号化された整数Yiをオフセットしてもよい。具体的には、ステップS150の動作により生成したYiに換えて、オフセットした(Yi+T)を用いてもよい。
【0078】
さらに、本発明に係る整数を暗号化する方法は、ステップS30に含まれる換字式暗号化の諸段階を、順次実施する。ステップS30は、次のS310及びS320の各ステップを含む。まず、本発明に係る整数を暗号化する方法は、ステップS310において、鍵Rで整数Yiを換字式暗号化し、整数Ziを生成する。例えば、整数Ziは、次式で表される。
【数18】

式中、Rは換字式暗号化の鍵として用いる整数であり、Rot()は鍵Rを用いて整数Yiを換字式暗号化する関数である。具体的には、Rot()は、十進法等の記数法を用いて整数Yiを記述して得られる数字の並びを文字列として扱う、公知のシーザー暗号化を用いることができる。例えば、シーザー暗号化における鍵Rを整数3として、十進数の数字1文字からなる集合{0,1,2,3,4,5,6,7,8,9}の各要素に鍵Rを加算し、集合{3,4,5,6,7,8,9,0,1,2}の各要素を同一の順番で対応させて換字することが可能である。あるいは、シーザー暗号化とは異なって、鍵Rはランダムな順序を用いる情報又は所定の数字の並び方の情報等と関連づけ、対応させる集合はランダムな順序又は所定の数字の並び方でもよい。またあるいは、元の集合の一部の要素に対して鍵Rを用いる換字式暗号化を実施してもよく、当該一部の要素の選択には乱数を用いてもよく、当該一部の要素以外の残りの要素に対して公開鍵暗号化を含む任意の暗号化を実施してもよい。これらに限定せず、記数法の桁の数字を予め用意した規則に従って、可逆的かつ一対一に対応するように換字し、整数Yiを整数Ziに変換してもよい。これらの換字式暗号化は、ループカウンタLに依存せずに毎回実施してもよく、ループカウンタLに依存して、初回のみ又は偶数回のみ等、Lの所定の値に基づいて実施してもよく、適宜設計しうる。
例えば、英字アルファベットを26進数の1桁の数字として扱い、unix(登録商標)オペレーティング・システムが備える文字列をシーザー暗号化するためのrot13関数等を利用してもよい。また例えば、このrot13関数が有する鍵である、整数の13に換えて任意の1桁の整数を鍵に用い、同様の関数を10進数の整数に対するシーザー暗号化の関数として定義して用いてもよい。
【0079】
次いで、本発明に係る整数を暗号化する方法は、ステップS320において、必要であれば桁数の情報を保持する。例えば、換字式暗号化により生成した整数Ziの最上位がゼロである場合に、この情報を変換前の整数Yiの桁数として保持してもよい。当該保持した桁数の情報は、後述する復号化の諸段階において生成する整数の確認のために用いられてもよい。
【0080】
ステップS10及びステップS30を続けて実施した後に、本発明に係る整数を暗号化する方法は、ステップS180において、ループカウンタLをデクリメントする。さらに、ステップS190において、ループカウンタLが0以下であるかを判定する。判定の結果が真であれば終了し、偽であればステップS195に進み、上述の式(XII)から生成した整数ZiをXiとして、ステップS10の諸段階を繰り返す。
なお、繰り返しにおいて、変数A、B、D、Kは同じ値を再利用してもよい。変数E及びFの対も同じ値を再利用してもよいが、より好適には、ループカウンタLの値に依存して変数E及びFの対を変化することにより、第三者による解読をさらに困難にすることが可能になる。
このようにして、ステップS190の判定が真になるまで上述の諸段階を繰り返し、暗号化した整数Ziが得られる。例えば、ループカウンタLを3とした場合には、上述のステップS10及びステップS30からなる諸段階が3回繰り返される。
【0081】
従って、本発明に係る整数を暗号化する方法においては、ループカウンタLが0以下となるまで、ステップS10に含まれるべき剰余を用いる暗号化の諸段階、及びステップS30に含まれる換字式暗号化の諸段階が、続けて繰り返して実行される。べき剰余を用いる暗号化の諸段階と換字式暗号化の諸段階とは、全体を入れ替えてもよい。すなわち、ステップS100の変数初期化の後にステップS30に含まれる換字式暗号化の諸段階を実施し、その後にステップS10に含まれるべき剰余を用いる暗号化の諸段階を実施し、ステップS180及びステップS190、適宜ステップS195を実施してもよい。
【0082】
このように、本発明に係る整数を暗号化する方法においては、べき剰余を用いる暗号化の諸段階と換字式暗号化の諸段階とを重畳して用いることにより、いずれかの暗号化のみを用いる場合と比較して、極めて高い秘匿性を確保することが可能になる。
【0083】
[復号化の諸段階]
次に、復号化の諸段階を説明する。本発明に係る整数を暗号化する方法は、図2のステップS200において、変数領域を確保し、ループカウンタLを初期化する。この変数領域の確保は、前述の暗号化の諸段階におけるステップS100と同様でもよく、暗号化及び復号化の諸段階を一つのコンピュータ装置等に内蔵し、共通の変数領域を暗号化及び復号化の両方の諸段階に用いてもよい。ループカウンタLの初期化は、復号化と対応する暗号化におけるループカウンタLの値を繰り返し用いうる。例えば、暗号化においてループカウンタLを3とした場合には、復号化においても同様にループカウンタLを3とする。
次いで、本発明に係る暗号化した整数を復号化する方法は、ステップS40に含まれる換字式暗号を復号化する諸段階、及びステップS20に含まれるべき剰余を用いる復号化の諸段階を実施する。ここで、復号化の対象になる数は、図1を用いて前述した暗号化した整数Ziである。
【0084】
ステップS40は、S410及びS420の各ステップを含む。ステップS410では、必要であれば整数Ziの桁数の情報が復元される。これは、単に暗号化の過程において保持した情報との照合のために行われてもよい。ステップS420においては、換字式暗号の復号化が実施され、暗号化した整数Ziから整数Yiを生成する。例えば、整数Yiは次式により復号化される。
【数19】

式中、Rot−1()は、換字式暗号化により生成した整数Ziを、鍵Rを用いて元の整数Yiに復号化する関数である。
【0085】
次いで、本発明に係る整数を暗号化する方法においては、ステップS20に含まれるべき剰余を用いる復号化の諸段階を実施する。ステップS20は、S210及びS220の各ステップを含む。まず、本発明に係る整数を暗号化する方法は、ステップS210において、次式を成立するFを生成する。
【数20】

式(XIV)は式(II)と同一でもよい。式(XIV)において、整数Eと関連づけられる整数Fが選択されうる。
次いで、本発明に係る暗号化した整数を復号化する方法は、ステップS220において、次の式(XV)を用いて当該暗号化したYiをXnに復号化する。次式(XV)は前述の式(III)と同一でもよい。
【数21】

ステップS150においてオフセットした(Yi+T)を用いた場合は、Xnの復号化において、ステップS220の動作に先立って、整数Yiに換えてオフセットを消去した(Yi−T)が用いられる。
【0086】
このようにすることで、本発明に係る整数を暗号化し復号化する方法においては、桁あふれを発生する条件で式(VIII)のEを選択するため、本発明の方法を用いないコンピュータ装置等においては暗号化した整数Yiを正確に得ることができず、情報秘匿性の高い暗号化を実施することが可能になる。
さらに、本発明の整数を暗号化し復号化する方法においては、暗号化の過程である式(VIII)に含まれず、復号化の過程である式(XVI)及び式(XVII)に含まれる整数Fが第三者に知られにくい又は推定されにくいことに基づいて高いセキュリティを確保しうる。
なお、式(XIV)の左辺に含まれるE及びFを、当業に公知の公開鍵暗号に係る公開鍵及び秘密鍵の対として用いうること、鍵の保管又は認証に第三者機関等を用いうること等、公開鍵暗号技術に関連する方法は周知であり、本発明に適宜取り入れて用いることができる。
【0087】
ステップS40及びステップS20を続けて実施した後に、本発明に係る整数を復号化する方法は、ステップS280において、ループカウンタLをデクリメントする。さらに、ステップS290において、ループカウンタLが0以下であるかを判定する。判定の結果が真であれば終了し、偽であればステップS295に進み、上述の式(XV)から生成した整数XnをZiとして、ステップS40の諸段階を繰り返す。このようにして、ステップS290の判定が真になるまで上述の諸段階を繰り返し、復号化した整数Xnが得られる。例えば、ループカウンタLを3とした場合には、上述のステップS40及びS20からなる諸段階が3回繰り返される。
【0088】
従って、本発明に係る整数を復号化する方法においては、ループカウンタLが0以下となるまで、ステップS40に含まれる換字式暗号を復号化する諸段階、及びステップS20に含まれるべき剰余を用いる復号化の諸段階が、続けて繰り返して実行される。換字式暗号を復号化する諸段階とべき剰余を用いる復号化の諸段階とは、暗号化の諸段階の逆順であればよく、全体を入れ替えてもよい。すなわち、ステップS200の変数初期化の後にステップS20に含まれるべき剰余を用いる復号化の諸段階を実施し、その後にステップS40に含まれる換字式暗号を復号化する諸段階を実施し、ステップS280及びステップS290、適宜ステップS295を実施してもよい。
【0089】
このように、本発明に係る整数を復号化する方法においては、換字式暗号を復号化する諸段階とべき剰余を用いる復号化の諸段階とを重畳して用い、対応する暗号化の諸段階により暗号化された整数Ziから、元の整数Xiと等しい整数Xnに復号化することが可能になる。
【0090】
図1に示した本発明に係る整数を暗号化する方法、及び図2に示した整数を復号化する方法においては、個人を識別するための識別子等を整数型の識別子として受け付けて暗号化しうる。これに限らず、本発明に係る整数を暗号化し復号化する方法においては、整数のべき乗及び剰余計算等を実施可能なコンピュータ装置等が受け付けうる、種々のデータもまた暗号化及び復号化に用いうる。例えば、整数に変換した画像を本発明の方法を用いて暗号化及び復号化することにより、第三者に対して隠蔽した画像の伝達が可能になる。また例えば、記憶媒体の特定の記憶領域を参照するためのファイル割り当てテーブル等を本発明の方法を用いて暗号化及び復号化することにより、第三者に対して隠蔽した記憶媒体等を提供しうる。これらの、本発明に係る整数を暗号化し復号化する方法を用いて提供しうる記憶媒体等は、暗号化又は復号化の諸段階においてコンピュータ・ネットワーク等を介する必要はなく、ネットワーク等から切り離されたオフライン状態でも暗号化及び復号化を実施可能である。従って、本発明においては、通信技術と連携して動作するセキュリティ技術等とは独立して、単独で暗号化及び復号化の方法を提供しうる。
【0091】
[個人情報隠蔽手順の形態]
図3に、本発明の一実施形態に係る、整数を暗号化する方法を用いる個人情報隠蔽手順の例を示す。
暗号化手段100は、本発明に係る入力された整数から暗号化した整数を生成する手段である。暗号化手段100は、特定の個人20が有する識別のための数字及び/又は文字を含む識別子等を、整数型の識別子30として受け付ける。具体的には、個人20は事業体等に所属する構成員の1人であり、整数型の識別子30は当該事業体において複数の構成員を識別するために適宜用いられる、複数の桁の整数を含む構成員識別子等でありうる。例えば、当該構成員識別子の形態は、当該事業体等の所属が開始された年次を表す数字2桁及び同時期に所属を開始した他の構成員を含む複数の構成員のそれぞれに割り当てられた6桁の数字等からなる、全体として8桁の数字等であり、適宜設定しうる。典型的には、特定の個人20と整数型の識別子30とは1対1に関連づけられ、他の構成員等とは関連づけられない。また、構成員識別子等が英文字等を含む場合、整数型の識別子30は、英文字及び数字の全体又はその一部をコンピュータ処理可能な文字コードの集まりとして扱い、個々の文字コードを16進法の整数として、整数型の識別子30を構成してもよい。本発明に係る整数を暗号化し復号化する方法においては、このように変換された16進法の整数を暗号化し、当該暗号化した16進法の整数から元のコンピュータ処理可能な文字コードの集まりを復号化しうる。構成員識別子等が画像データの場合についても、16進法の整数の集まりとして元の画像データを扱うことにより、同様に暗号化及び復号化が可能である。
【0092】
暗号化手段100は、乱数発生手段39を備え、本発明に係る入力された整数から暗号化した整数を生成する過程において、乱数を用いて暗号化の鍵を選択することが可能であり、さらに当該暗号化の鍵と関連づけられる復号化の鍵も選択されうる。
【0093】
識別用途A(122)、識別用途B(124)及び識別用途C(126)は、整数型の識別子30を用いて特定の個人20を識別することが必要な任意の用途でありうる。図1にはこれらの3つの識別用途を図示するが、これらに限定せず、識別用途の種類、個数等は適宜設定しうる具体的には、これらの用途は、特定の個人20による電子メール送受信等を含む事業体内部のコンピュータ・ネットワーク利用又は事業体と関連づけられるオンライン銀行業務又は保険サービス等の利用、あるいは事業体による特定の個人20の業務に係る記録行為等でありうる。それぞれの識別用途A(122)、識別用途B(124)及び識別用途C(126)は、暗号化手段100において互いに他を区別するための情報を含んでもよい。すなわち、識別用途Aの固有情報(62)、識別用途Bの固有情報(64)及び識別用途Cの固有情報(66)等は、互いに他と異なればよい。例えば、これらの識別用途の固有情報は特定の整数の値でもよく、前述の式(VIII)に含まれるN又はEの値として、それぞれ独立して異なる値を用いてもよい。
【0094】
暗号化手段100は、受け付けた整数型の識別子30に対して、識別用途Aの固有情報(62)、識別用途Bの固有情報(64)又は識別用途Cの固有情報(66)を用い、それぞれの識別用途の固有情報ごとに独立して、暗号化計算A(72)、暗号化計算B(74)又は暗号化計算C(76)を実施しうる。当該暗号化計算には、前述のように、整数のべき乗を含む計算のために暗号化手段100が用いるコンピュータ装置等において桁あふれを発生する条件で、式(VIII)の展開形を用いて暗号化した整数を生成する諸段階を含む。当該暗号化計算の結果として、暗号化した整数A(42)、暗号化した整数B(44)又は暗号化した整数C(46)が生成される。
【0095】
生成したそれぞれの暗号化した整数A(42)、暗号化した整数B(44)又は暗号化した整数C(46)のそれぞれは、独立して、対応する識別用途A(122)、識別用途B(124)又は識別用途C(126)のために提供されうる。
例えば、識別用途A(122)が事業体内部のコンピュータ・ネットワーク利用等である場合、本発明に係る暗号化手段100は、特定の個人20を識別するための整数型の識別子30に替えて暗号化した整数A(42)を、情報伝達経路A(82)を介して当該事業体のコンピュータ・ネットワーク132等に提供しうる。情報伝達経路A(82)は例えば当該事業体内のローカルエリアネットワーク等でありうる。
また、例えば、識別用途B(124)が事業体による特定の個人20の業務に係る記録行為等である場合、本発明に係る暗号化手段100は、特定の個人20を識別するための整数型の識別子30に替えて暗号化した整数B(44)を、情報伝達経路B(84)を介して当該事業体の勤務管理記憶装置134等に提供しうる。情報伝達経路B(84)は例えば当該事業体の出入口等に適宜備えられた入構者記録のための端末装置及び記憶装置等でありうる。
【0096】
これらのコンピュータ処理可能な数値データに限らず、暗号化手段100は、特定の個人20を識別するための整数型の識別子30に替えて暗号化した整数C(46)を、情報伝達経路C(86)を介して不特定の他者136等に提供しうる。情報伝達経路C(86)は、口頭又は文書等を含む任意の形式でもよい。例えば、不特定の他者136は当該事業体と独立して運営される団体加入保険サービス業の受け付け担当者であり、当該事業体の構成員である特定の個人20は、情報伝達経路C(86)として一般公衆回線の電話等を用い、当該団体保健サービスにおいて自己を特定するための情報として、暗号化した整数C(46)を送信しうる。この送信は、通話、ファクシミリ、電子メール等の任意の形態を含む。従って、電話等の通話の音声がたまたま周囲にいる第三者に聞かれてしまう等の状況により、この送信の内容が無関係の第三者に傍受されても、本発明に係る暗号化手段100により暗号化した整数C(46)は、特定の個人20を識別するための整数型の識別子30とは異なる整数であるため、当該第三者は傍受内容から当該整数型の識別子30を知ることができない。すなわち、本発明に係る暗号化手段100を用いることにより、個人情報を隠蔽することが可能になる。
このようにして、本発明に係る暗号化手段100においては、特定の個人20に関連づけられる整数型の識別子30から、識別用途ごとに異なる暗号化した整数を生成し、当該特定の個人20の個人情報を隠蔽しうる。
【0097】
さらに、本発明に係る暗号化手段100は、特定の識別用途において複数の構成員の識別子を一括して暗号化してもよい。
本発明に係る暗号化手段100は特定の識別用途に対して特定の個人情報を隠蔽しうる。暗号化手段100が受け付ける整数型の識別子30が個々の特定の個人20ごとに異なることにより、別個の整数型の識別子30ごとに、暗号化した整数が生成される。従って、識別用途A(122)、識別用途Aの固有情報(62)及び暗号化計算A(72)が一定であっても、異なる整数型の識別子30を有する事業体内の複数の構成員等は、それぞれが異なる暗号化した整数A(72)を得ることができる。
例えば、事業体のネットワーク管理者等は、識別用途Aの固有情報(62)をネットワーク・メンテナンスの日時等の特定の条件に従って選択することにより、当該事業体の複数の構成員のネットワーク・アカウント情報のそれぞれを別個に一括して暗号化しうる。ネットワーク管理者等は識別用途Aの固有情報(62)を選択する条件を管理することにより、複数の構成員のアカウント情報を一括して暗号化して保持し、管理しうる。さらに式(XVI)及び式(XVII)に含まれる整数Fが第三者に知られにくい又は推定されにくいことにより、この値を知らない第三者に対して明示的なアカウント情報を隠蔽することが可能になる。
【0098】
図3には、特定の個人20から事業体のコンピュータ・ネットワーク132、事業体の勤務管理記憶装置134、又は不特定の他者136等に向けて、本発明に係る暗号化手段100を用いて整数型の識別子30を暗号化して送信することを示すが、送受信の主体を入れ替えても、本発明に係る暗号化手段100を用いることができる。すなわち、事業体のコンピュータ・ネットワーク132に接続されたサーバ装置(図示せず)等が記憶した整数型の識別子30を本発明に係る暗号化手段100への入力として、上述の手順に従って暗号化した整数A(42)等を生成し、特定の個人20に送信してもよい。このようにすることで、事業体等は、構成員の識別情報又は事業に関連する情報等を暗号化し、当該暗号化した識別子等を使用するよう従業員に促して、セキュリティを高めることが可能になる。
【0099】
本発明に係る暗号化手段100は、具体的にはパーソナル・コンピュータ等で実行可能な汎用のワークシート等のアプリケーションに内蔵された整数計算ライブラリ等を用いて実施しうる。従って、本発明に係る整数を暗号化し復号化する方法においては、特に専用の計算機等を用意することなく、既存の計算機を用いて社員番号等の暗号化及び復号化を実施することも可能である。さらに、本発明においては、本発明に係る整数を暗号化し復号化する方法によらなければ暗号化又は復号化のいずれかの諸段階における桁あふれが発生して、正確な暗号化及び/又は復号化ができないため、本発明の方法を実施しない第三者に対して構成員の識別子等の個人情報を隠蔽することが可能になる。
【0100】
[個人情報隠蔽手順の別の形態]
図4に、本発明の一実施形態に係る、整数を暗号化する方法を用いる個人情報隠蔽手順の別の例を示す。図3と共通する箇所は説明を省略する。
【0101】
図4においては、暗号化手段100は特定の個人20から受け付けた整数型の識別子30に対して、追加の桁37を適宜追加しうる。この追加の桁は整数型の識別子30と同様に整数でありうる。追加の桁37の桁数は何桁でもよく、例えば2桁、3桁、又は4桁等でもよい。追加の桁37は、整数型の識別子30に対して左側から追加してもよく右側から追加してもよい。あるいは、整数型の識別子30を予め定めた桁において分割し、追加の桁37を挿入してもよく、追加の桁37の追加の態様は適宜設定しうる。また、追加の桁37の値は何でもよく、本発明に係る整数の暗号化及び復号化を利用する事業体又はシステム等により任意に用意されてもよく、あるいは整数型の識別子30から予め定めた手順により生成してもよい。例えば、整数型の識別子30の各桁の数字の和を算出した値の下位2桁等を、追加の桁37としてもよい。さらに、追加の桁37は、識別用途A(122)、識別用途B(124)及び識別用途C(126)等に依存してそれぞれの識別用途ごとに独立して用意されてもよい。
追加の桁37を追加することにより、整数型の識別子30及び追加の桁37に含まれる各桁の数字を含む新たな整数である、桁増しした識別子38が生成されうる。
【0102】
一実施形態において、桁増しした識別子38は、整数型の識別子30の右に追加の桁37を追加した整数として生成される。例えば、整数型の識別子30が8桁の整数であり、追加の桁37が2桁の整数である場合、桁増しした識別子38は10桁の整数であり、桁増しした識別子38の値は次式で表される。
【数22】

式中、X38は桁増しした識別子38の値、X30は整数型の識別子30の値、X37は追加の桁37の値であり、Mは記数法の底である。例えば、これらの整数が10進法の整数であるときには、X38の値はX30を100倍してX37を加えた値でありうる。記数法は10進法に限らず、2進法、8進法又は16進法等を任意に用いうる。桁増しする桁の数は2桁に限らず適宜設定しうる。
【0103】
追加の桁37を含む桁増しした識別子38に対する暗号化の諸段階は、図1に示した一実施形態のフロー図、又は図3に示した一実施形態の識別用途に依存して実施しうる暗号化の手順等と同様である。暗号化の鍵が、乱数発生手段39等を用いて、ランダムな選択則により選択されることも同様である。すなわち、図4に示す形態の暗号化の諸段階により生成される暗号化した整数は、コンピュータ・ネットワーク132又は勤務管理記憶装置134等を用いてコンピュータ処理可能なデータとして生成してもよく、不特定の他者136が知りうる音声又は出版物等の形態で生成してもよい。
【0104】
一実施形態において、構成員の生年月日に含まれる数字等を識別子として利用する事業体等は、本発明に係る整数を暗号化し復号化する方法を用い、当該構成員の生年月日に含まれる数字等に追加して、任意の2桁の数字を追加の桁37として組み合わせうる。これにより、生年月日が同一の構成員が複数存在しても、任意の2桁の数字が相互に異なれば、生成する暗号化された数字は互いに異なるので、追加の桁37を用いることにより当該事業体等は暗号化した整数を用いて構成員を識別しうる。
【0105】
このようにして、予め定めた桁数の追加の桁37を追加することにより、本発明に係る暗号化手段100の暗号化の諸段階に入力される整数は、特定の個人20等が有する識別のための情報そのものではなくなる。桁を追加して得られる整数を暗号化することにより、本発明に係る整数の暗号化においては、特定の個人20等の個人情報をさらに隠蔽した暗号化が可能になる。
【0106】
[個人情報隠蔽手順のさらに別の形態]
図5に、本発明の一実施形態に係る、整数を暗号化する方法を用いる個人情報隠蔽手順のさらに別の例を示す。図3と共通する箇所は説明を省略する。
【0107】
図5に示す個人情報隠蔽手順においては、本発明に係る暗号化手段100が、乱数発生手段39及びオフセット情報40を含みうることを示す。
【0108】
一実施形態において、本発明に係る暗号化手段100は乱数発生手段39を用いて乱数を発生させ、当該発生した乱数に基づいて、整数型の識別子30を暗号化しうる。
乱数発生手段39により発生した乱数は、上述のように、本発明に係る暗号化の鍵の選択に用いられ、さらに、図1を用いて前述したステップS30に含まれる換字式暗号化の鍵Rの選択に用いることができる。具体的には、換字式暗号化の鍵Rの選択は、発生した乱数に対して直近の素数を選択してもよい。すなわち、重複無く素数を含む集合から、当該発生した乱数との差が最も小さい素数を選択してもよい。あるいは、換字式暗号化の鍵Rの選択は、重複無く素数を含む集合からそれぞれの要素(すなわち素数)を昇順又は降順に配列した数列を用意し、乱数の上限を当該集合の要素数として、発生した乱数を項番号とする要素(すなわち素数)を当該数列から選択してもよい。これらに限らず、乱数と素数の関連づけは適宜設計しうる。
【0109】
別の実施形態において、本発明に係る暗号化手段100はオフセット情報40を用いて整数型の識別子30をオフセットした後に、図1を用いて示した暗号化の諸段階を実施しうる。すなわち、本発明に係る暗号化手段100は、整数型の識別子30に整数型の所定の定数を加算又は減算しうる。この加算又は減算される所定の定数は、元の整数への復号化の段階において減算又は加算されることにより、整数型の識別子30が正しく復元されうる。オフセット情報40は定数に限らず、本発明に係る暗号化手段100が一つの整数型の識別子30を受け付けて動作するごとに、毎回異なる値を選択して用いてもよい。この異なる値の選択において、上述の乱数発生手段39を用いてもよい。
【0110】
また別の実施形態において、本発明に係る暗号化手段100は乱数発生手段39を用いて乱数を発生させ、当該発生した乱数に基づいて、図1に示したステップS190のループカウンタLを選択してもよい。図2に示したステップS290のループカウンタLは、図1に示したステップS190のループカウンタLと同一の値でありうる。すなわち、ループカウンタLは、所定の正の整数、当該所定の正の整数を暗号化した正の整数、及びランダムに発生した正の整数からなる群から選ばれうる。
ループカウンタLは、暗号化の強度を確保するために、予め下限を設定してもよい。また、暗号化及び復号化の計算処理のための時間を短縮するために、予め上限を設定してもよい。従って、本発明に係る整数を暗号化し復号化する方法におけるループカウンタLの値は、予め設定された下限及び/又は上限の範囲に従って、所定の正の整数、当該所定の正の整数を暗号化した正の整数、及びランダムに発生した正の整数からなる群から選ばれうる。このように、べき剰余を用いる暗号化及び換字式暗号化のいずれとも独立した変数でありうるループカウンタLを秘密とすることで、第三者の解読の手間はさらに膨大となりうる。
【0111】
さらに別の実施形態において、本発明に係る暗号化手段100は、公開鍵暗号化技術における公開鍵に対して、オフセット情報40を用いてオフセットした公開鍵を生成してもよい。具体的には、式(I)に含まれる変数Eを決定した後に、当該変数Eに整数型の所定の定数を加算又は減算して公開鍵としてもよい。従って、この整数型の所定の定数が加算又は減算されていることを知らない第三者が解読のために当該公開鍵を用いることは無駄な手順となる。従って、オフセット情報40を公開鍵に適用することにより、暗号化された整数等の情報の秘匿性はさらに高められる。
【0112】
また別の実施形態において、本発明に係る暗号化手段100は、上述の乱数発生手段39及びオフセット情報40の両者を用いて、整数型の識別子30を暗号化してもよい。
【0113】
図5においては、識別用途A(122)、識別用途B(124)及び識別用途C(126)等のそれぞれに対して暗号化の過程を一つの矢印として表しているが、図1を用いて前述したように、本発明に係る暗号化の方法においては、それぞれの識別用途ごとに、べき剰余を用いる暗号化及び換字式暗号化が所定の繰り返し回数だけ交互に重畳されうる。それぞれの識別用途ごとに生成した、暗号化した整数A(42)、暗号化した整数B(44)又は暗号化した整数C(46)は、乱数発生手段39を用いて発生した乱数の情報、べき剰余を用いる暗号化の情報、及び換字式暗号化の情報の全てを正確に用いなければ、いずれも正しく復号化することができない。従って、本発明の実施の形態における個人情報隠蔽手順においては、正確な復号化のための情報の種類をより多く必要とすることで、周知の公開鍵暗号化技術等に比較してさらに秘匿性を高めることが可能になる。
【0114】
[復号化の手順の例]
図6に、本発明の一実施形態に係る、暗号化した整数の復号化手順の例を示す。図6においては、説明の簡潔化のためにコンピュータ処理可能な数値に関し、図3を示して説明した暗号化手段100が生成した暗号化した整数A(42)及び/又は暗号化した整数B(44)に対する復号化を説明するが、通話又は文書等の形態で伝達しうる暗号化した整数の復号化についても同様である。図3又は図4と共通する箇所は説明を省略する。
【0115】
図6は、本発明に係る復号化手段110が、暗号化した整数A’(52)及び/又は暗号化した整数B’(54)を受け付け、整数型の復号化した識別子41を生成することを示す。ここで、暗号化した整数A’(52)は、整数型の識別子30に対して暗号化手段100が暗号化計算A(72)を用いて生成した暗号化した整数A(42)が、情報伝達経路A(82)を介してコンピュータ・ネットワーク132等に伝達された後に、さらに情報伝達経路A’(102)を介して本発明に係る復号化手段110に伝達したものでありうる。従って、整数型の数値としては、暗号化した整数A’(52)は対応する暗号化した整数A(42)と同一でありうる。
同様に、暗号化した整数B’(54)は暗号化した整数B(44)と同一でありうる。
【0116】
本発明に係る復号化手段110は、暗号化した整数A’(52)及び暗号化した整数B’(54)に対して、図1に示したステップS200からステップS220の諸段階を実施し、整数型の復号化した識別子41を生成しうる。
暗号化した整数A’(52)は、暗号化手段100による暗号化計算A(72)において識別用途A(122)の固有情報(62)を用いて生成した暗号化した整数A(42)でありうる。当該固有情報(62)は、前述の式(VIII)に含まれるN又はEの値、及びKの値でありうるので、例えば、暗号化計算A(72)において用いられたEの値及びKの値を固有情報(92)として復号化計算A(112)に用いうる。
同様に、暗号化計算B(74)において用いられたEの値及びKの値を固有情報(94)として復号化計算B(114)に用いうる。
固有情報(92)及び/又は固有情報(94)は、予め復号化手段110が記憶してもよく、予め定められた手順に従って暗号化手段100又は復号化手段110の一方又は両方が生成してもよく、適宜設定しうる。
【0117】
図6は、情報伝達経路A(82)、情報伝達経路B(84)、情報伝達経路A’(102)及び情報伝達経路B’(104)としてコンピュータ処理可能な数値を伝達しうるネットワーク等の情報伝達経路を示すが、これらに限らず、音声又は文書等を含む任意の伝達経路又は伝達手段を介して、暗号化した整数を暗号化手段100から復号化手段110に向かって伝達しうる。
本発明に係る整数を暗号化し復号化する方法には、これらの伝達経路又は伝達手段を介して伝達される整数が暗号化されていること、桁あふれを発生する条件での暗号化に用いた特定の数値で復号化する本発明の方法によらなければ元の整数を復号化することはできないという特徴がある。従って、本発明においては、伝達経路又は伝達手段等にアクセスする可能性のある第三者に対して個人情報を隠蔽し、所定の固有情報及び所定の暗号化及び所定の復号化の方法を用いる本発明の実施手段等のみが当該個人情報を正確に復号化することが可能になる。
【0118】
図6には、暗号化手段100及び復号化手段110のそれぞれを別個に示したが、これに限らず、暗号化手段100及び復号化手段110を一体の装置としてもよい。暗号化した整数を伝達する伝達経路又は伝達手段等の形態は、コンピュータ・ネットワークでもよく、一般公衆回線の電話を含む通話、ファクシミリ、電子メール等の形態でもよく、任意に設定しうる。それぞれの伝達経路又は伝達手段に依存して、一つの整数型の識別子30から独立して別個に暗号化した整数を生成してもよく、さらに図4に示した追加の桁37、図5に示した乱数発生手段39、オフセット情報40、又はこれらの組み合わせを適宜用いて整数型の識別子30を加工した後に暗号化してもよい。このようにして、本発明に係る整数を暗号化し復号化する方法においては、構成員識別子等の一つの識別子から、当該識別子を用いる各種の情報伝達手段ごとに、個人情報を隠蔽した整数を識別子に替えて提供しうる。暗号化又は復号化の諸段階はコンピュータ装置等を用いて自動的に実施しうるので、本発明に係る方法のユーザはこれらの手順を特に意識することなく、自己の個人情報を隠蔽した整数を自己の識別子に替えて用いうる。
【0119】
図6には、整数型の識別子30が暗号化され、事業体のコンピュータ・ネットワーク132又は事業体の勤務管理記憶装置134等に向けて送信された後に、上述の用に復号化されうることを示すが、送受信の主体を入れ替えても、本発明に係る復号化手段110を用いることができる。すなわち、事業体のコンピュータ・ネットワーク132に接続されたサーバ装置(図示せず)等が記憶した整数型の識別子30を本発明に係る暗号化手段100で暗号化して構成員等に送信し、構成員等は上述の手順に従って、本発明に係る復号化手段110を用いて整数型の識別子30を復号化してもよい。
【実施例】
【0120】
[実施例1:ワークシートの内部関数を用いて整数を暗号化する例]
図7に、本発明の一実施形態に係る、暗号化の諸段階をスプレッドシート形式の計算アプリケーション・パッケージを用いて実装する例を示す。スプレッドシート形式の計算アプリケーション・パッケージとしてはマイクロソフト社製エクセル2007等を用いうるが、これに限らず、整数のべき乗及び剰余計算を実施可能なパッケージ・ソフトウェア等を任意に用いうる。
図7に示す整数の暗号化計算ワークシート200は、複数の行及び列の形態に配列されるセルを含む、スプレッドシート形式の計算アプリケーションのデータでありうる。整数の暗号化計算ワークシート200に含まれる個々のセルは、1組の行番号及び列番号を用いて特定しうる。
【0121】
整数の暗号化計算ワークシート200に含まれる、2行1列から15行1列の領域、及び2行2列から15行(2n+1)列の領域は、図1に示したステップS100からステップS195における暗号化の諸段階に係る計算のために用いられうる。
具体的には、2行1列から15行1列の領域は、図1に示したステップS100における変数領域を確保するために用いられる。2行2列から15行(2n+1)列の領域は、図1に示したステップS10及びステップS30の繰り返しのために用いられる。図7には、変数A、B、D、Kはそれぞれ同じ値が繰り返して用いられ、変数E、F、Tはループカウンタに依存して繰り返しの各回において変化する例を示す。
【0122】
例示的実施形態において、2行1列のセルは暗号化の入力Xiを記憶するために用いうる。1列の他のセルには、べき剰余を用いる復号化における素数A及びB、(A−1)と(B−1)との積D及び最小公倍数K、公開鍵及び秘密鍵の対でありうる整数Ei及びFi、換字式暗号化鍵Ri、オフセットTi、ループカウンタL等が適宜定義され得る。
【0123】
3行1列のセル及び4行2列のセルは、2個の素数A及びBを記憶するために用いうる。また、A及びBの積が入力Xiを超えることの判定を、例えば3行2列のセルを用いて表示してもよい。このA及びBの積は、前述の式(VIII)におけるNであり、Nは本発明に係る整数の暗号化に含まれる剰余計算の底でありうる。
【0124】
素数A及びBの組み合わせは、積NがXiを超え、和が最も小さくなる組み合わせとなるように自動的に選択してもよい。このようにすることで、素数A及びBの組み合わせを限られた範囲の素数として、後続の諸段階の計算に要する計算機のリソースの膨大化を抑制し、効率的な暗号化及び複合化の計算を実施することが可能になる。
【0125】
7行1列のセルは、(A−1)及び(B−1)の積であるD値を記憶するために用いうる。8行1列のセルは、(A−1)と(B−1)の最小公倍数であるK値を記憶するために用いうる。9行1列のセルは、D又はKと素である整数Eiを記憶するために用いうる。この整数Eiは、公開鍵暗号化技術における公開鍵として用いうる。11行1列のセルは、前述の式(XVI)を成立する整数Fを記憶するために用いうる。この整数Fiは、公開鍵暗号化技術における秘密鍵として用いうる。13行1列のセルは、換字式暗号化の鍵Riを、14行1列のセルはオフセットTiを、15行1列はループカウンタLを記憶するために用いうる。
【0126】
これらの整数Eiは、本発明に係る整数を暗号化する方法において、ランダムな規則により選択されうる。例えば、D又はKと素である数の集合の各要素を大きさに従って昇順に配列し、配列した要素数を上限として整数型の乱数を発生させ、発生した乱数を配列の順番とする要素を選択して、整数Eとしてもよい。整数Fiは、例えば前述の式(II)又は式(XIV)を用いて、当該整数Eiと関連づけて選択されうる。
従って、本発明においては、図7の9行に含まれるEi、E1、E2等はランダムに選択された整数であり、11行に含まれるFi、F1、F2等は、それぞれ対応するEi、E1、E2等との関連づけを有して所定の条件を満たす集合から選択される。
【0127】
10行の各セルは、整数Eiによるべき乗がワークシート内蔵の整数演算においてオーバーフローを発生しているか否かを表示するために用いうる。例えば、当該オーバーフローが発生することは、整数Eiによるべき乗の値がスプレッドシート形式の計算アプリケーション・パッケージにおいて取り扱い可能な範囲を超えていることを表す「エラー」等の文字等により表されてもよく、又は当該エラーに対応して論理値の偽を表す数値等を表示してもよい。同様に、12行の各セルは、整数Fiによるべき乗がワークシート内蔵の整数演算においてオーバーフローを発生しているか否かを表示するために用いうる。これらの整数Eiによるべき乗又は整数Fiによるべき乗がオーバーフローを発生することを条件として、本発明に係るべき剰余を用いる暗号化の方法は、式(VII)に示した展開形を用いて変換前の整数を展開し、正確なべき剰余を得ることができる。具体的には、1行2列の元の整数Xiに対して、14行2列のオフセットT1を用いてオフセットした整数から、暗号化した整数として2行2列に整数Y1を得ることができる。このときに、当該べき剰余を用いる暗号化から生じる公開鍵E1及び秘密鍵F1が、それぞれ9行2列、11行2列に記憶される。
【0128】
なお、添え字iを伴う変数は配列でもよい。すなわち、1個のセルに割り当てられるEi、Fi、Ri及びTiのそれぞれは、{E1,E2,…,En},{F1,F2,…,Fn},{R1,R2,…,Rn},{T1,T2,…,Tn}等の配列又は配列の形式を用いる数列(適宜、漸化式又は任意の関数により各項を定義してもよい)でもよく、行ごとにこれらの配列に含まれる個々の整数を取り出して用いてもよい。
【0129】
さらなる例示的実施形態において、2列は、べき剰余を用いる暗号化のために用いられる。図5においては、2行2列には、べき剰余を用いる暗号化を1回実施して得られる整数Y1が記憶される。3列は、換字式暗号化のために用いられ、図5においては、2行3列には、Y1から換字式暗号化により生じる、変換された整数Z1が記憶される。
他の2列のセルには、暗号化の諸段階から生じる変数の値が適宜記憶される。例えば、9行2列には公開鍵E1、11行2列には秘密鍵F1、14行2列にはオフセットT1がそれぞれ記憶される。同様に、他の3列のセルに関しては、13行3列には換字式暗号化の鍵R1、15行3列には1回デクリメントされたループカウンタ(L−1)がそれぞれ記憶される。
このようにして、入力Xiから、2列にはべき剰余を用いる暗号化における変換後の整数Y1、他の変数E1、F1、及びT1が記憶され、3列には整数Y1から変換される整数Z1、他の変数R1、及びデクリメントされたループカウンタ(L−1)が記憶される。
【0130】
なお、一つのセルに配列等を定義して複数の定数、変数又は計算式を任意に含みうることは当技術分野において公知である。すなわち、2行1列のセルは1個の整数Xiを記憶してもよく、配列の形式を用いて数列{X1,X2,X3,…,Xk}を記憶してもよい。ここに、Xkは、べき剰余を用いる暗号化における鍵の絶対値に依存して定義される、暗号化可能な整数の個数であり、この数列に含まれる整数の個数は最小公倍数Kと同じ値でもよく、当該個数はK−1,K−2,K−3等でもよく任意に設定しうる。数列{X1,X2,X3,…,Xk}の初項X1は0でもよく、1でもよく、2以上の整数でもよい。例えば、初項の値を整数2として、数列に含まれる整数の個数をK−1個とする場合は、全体としてこの数列にはK−2個の整数が含まれうる。本発明に係る整数を暗号化する方法は、このようなK−2個の整数のそれぞれを別個に暗号化し、暗号化した数列を得ることができるが、これに限定せずに、暗号化した数列に含まれる整数の個数は適宜設計しうる。従って、本発明のユーザは、予め計算された暗号化した数列から適宜抽出して暗号化した整数を用いることも可能である。
【0131】
次いで、本発明に係る整数を暗号化する方法は、換字式暗号化を用いて、2行2列に記憶された整数Y1を、2行3列の整数Z1に変換する。この変換は、換字式暗号化の鍵として13行3列のR1を用いうる。
換字式暗号化により整数Z1が得られた後に、本発明に係る整数を暗号化する方法は、15行1列のループカウンタLをデクリメントし、15行3列に当該デクリメントした値である(L−1)を記憶する。当該デクリメントした値がゼロ以下である場合は、暗号化の諸段階を終了させる。当該デクリメントしたループカウンタの値がゼロより大きければ、2行3列のZ1の値を上述の2行1列のXiの値のように取り扱い、べき剰余を用いる暗号化の諸段階及び換字式暗号化の諸段階を繰り返し、2行5列にZ2として暗号化した整数を得られる。
【0132】
このようにして、本発明に係る整数を暗号化する方法は、べき剰余を用いる暗号化及び換字式暗号化の組み合わせを繰り返し実施し、ループカウンタがゼロ以下となることを条件として、2行(2n+1)列に整数Znとして暗号化した整数が得られる。
【0133】
[実施例2:ワークシートの内部関数を用いて整数を復号化する例]
図8に、本発明の一実施形態に係る、復号化の諸段階をスプレッドシート形式の計算アプリケーション・パッケージを用いて実装する例を示す。図8に示す整数の復号化計算ワークシート220は、複数の行及び列の形態に配列されるセルを含む、スプレッドシート形式の計算アプリケーションのデータでありうる。整数の復号化計算ワークシート220に含まれる個々のセルは、1組の行番号及び列番号を用いて特定しうる。
【0134】
整数の復号化計算ワークシート220に含まれる、2行1列から15行1列の領域、及び2行2列から15行(2n+1)列の領域は、図2に示したステップS200からステップS295における暗号化の諸段階に係る計算のために用いられうる。
具体的には、2行1列から15行1列の領域は、図1に示したステップS200における変数領域の確保及びループカウンタLの初期化のために用いられる。2行2列から15行(2n+1)列の領域は、図2に示したステップS40及びステップS20の繰り返しのために用いられる。
【0135】
例示的実施形態において、2行1列のセルは復号化の入力Ziを記憶するために用いうる。1列の他のセルには、前述の図7を用いて示したべき剰余を用いる復号化における変数と同一である。すなわち、復号化の入力Ziに対応する暗号化の過程において、すでに用いられた値をそれぞれの変数A,B,D,K,Ei、Fi、Ri,Tiに用いることができる。従って、復号化においては、対応する暗号化の変数の値を再利用し、入力Ziに対応するループカウンタLを初期化してもよい。
9行に含まれる整数Eiがランダムな規則により選択されうることは、図7を用いて示した整数の暗号化計算ワークシート200の場合と同様である。
【0136】
本発明に係る整数の復号化においては、対応する暗号化と逆の手順により、暗号化された整数から元の整数を復号化する。例えば、べき剰余及び換字式の暗号化がこの順番の組み合わせで繰り返された場合、対応する復号化は、換字式及びべき剰余の復号化をこの順番で同じ回数だけ繰り返す。
【0137】
まず、換字式復号化を用いて、入力Ziを変換する手順を説明する。換字式復号化においては、2行1列に記憶された整数Znを、2行2列の整数Ynに変換する。この変換のための換字式暗号化の鍵は13行2列のRnであり、当該Rnは対応する暗号化に用いられた、図7の整数の暗号化計算ワークシート200における13行(2n+1)列のRnと同一でありうる。
【0138】
次いで、本発明に係る整数の復号化において、2行2列のYnに対してべき剰余を用いる復号化を実施し、さらにオフセットを消去して、2行3列に整数Xn−1が得られる。べき剰余の指数には11行3列のFnが用いられ、オフセットの値としては14行3列のTnが用いられる。
べき剰余を用いる復号化により整数Xn−1が得られた後に、本発明に係る整数を復号化する方法は、15行1列のループカウンタLをデクリメントし、15行3列に当該デクリメントした値である(L−1)を記憶する。当該デクリメントした値がゼロ以下である場合は、復号化の諸段階を終了させる。当該デクリメントしたループカウンタの値がゼロより大きければ、2行3列のXn−1の値を上述の2行1列のZiの値のように取り扱い、換字式復号化の諸段階及びべき剰余を用いる復号化の諸段階を繰り返し、2行5列にXn−2として復号化した整数を得られる。
【0139】
10行及び12行の各セルは、暗号化と同様に、整数Ei及び整数Fiによるべき乗がワークシート内蔵の整数演算においてオーバーフローを発生しているか否かを表示するために用いうる。これらの整数Eiによるべき乗又は整数Fiによるべき乗がオーバーフローを発生することを条件として、本発明に係るべき剰余を用いる復号化の方法は、式(VII)に示した展開形を用いて変換前の整数を展開し、正確なべき剰余を得ることができる。
【0140】
さらなる例示的実施形態において、2列は、べき剰余を用いる復号化のために用いられる。図5においては、2行2列には、べき剰余を用いる復号化を1回実施して得られる整数Y1が記憶される。3列は、換字式復号化のために用いられ、図5においては、2行3列には、Y1から換字式復号化により生じる、変換された整数Z1が記憶される。
他の2列のセルには、暗号化の諸段階から生じる変数の値が適宜記憶される。例えば、9行2列には公開鍵E1、11行2列には秘密鍵F1、14行2列にはオフセットT1がそれぞれ記憶される。同様に、他の3列のセルに関しては、13行3列には換字式暗号化の鍵R1、15行3列には1回デクリメントされたループカウンタ(L−1)がそれぞれ記憶される。
このようにして、入力Xiから、2列にはべき剰余を用いる復号化における変換後の整数Y1、他の変数E1、F1、及びT1が記憶され、3列には整数Y1から変換される整数Z1、他の変数R1、及びデクリメントされたループカウンタ(L−1)が記憶される。
【0141】
このようにして、本発明に係る整数を復号化する方法は、換字式復号化及びべき剰余を用いる復号化の組み合わせを繰り返し実施し、ループカウンタがゼロ以下となることを条件として、2行(2n+1)列に整数X1として復号化した整数が得られる。これらの復号化の諸段階が、対応する暗号化の諸段階の逆順で実施されることにより、図8に示す整数の復号化計算ワークシート220の2行(2n+1)列に得られる整数X1は、図7に示した整数の暗号化計算ワークシート200の2行1列に入力された元の整数Xiと等しくなる。
【0142】
本発明に係る整数の暗号化及び復号化の方法の諸段階を用いることにより、べき剰余を用いる暗号化及び復号化の諸段階のいずれにおいても、計算過程において桁あふれを発生することにより、本発明の方法を用いない計算手段等においては、正しい暗号化も復号化も実施することはできない。また、べき剰余に加えて換字式暗号化及び復号化を重畳することにより、本発明の方法においては情報の秘匿性を飛躍的に高めることが可能になる。さらに、本発明においては、暗号化の鍵がランダムな規則により選択されることから、情報の秘匿性はさらに高まりうる。これらにより、本発明に係る整数の暗号化及び復号化の方法及び該方法の実施手段等は、個人情報等と関連する整数の形態の情報に対して高い秘匿性を付与することが可能になる。
【0143】
[解読のための所要時間]
本発明に係る整数を暗号化する方法を用いて生成した整数に対して、解読の可能性を総当たりにより探索する場合の所要時間を例示する。これは、いわゆるブルート・フォース・アタック(総当たり攻撃)を用いて秘密情報を解読するための計算時間でありうる。
コンピュータの計算能力が毎秒1ペタフロップス、すなわち1秒間に10の15乗命令数であると仮定すると、当該コンピュータは1年間に約10の22乗命令数を実行することが可能である。
本発明に係る整数を暗号化する方法において、元の整数が6桁の10進数であり、べき剰余を用いる暗号化及び換字式暗号化が連続して実行されるとする。暗号化において、この連続して実行される暗号化が5回繰り返される場合、当該5回繰り返された暗号化に含まれる独立した五重の換字式暗号化の組み合わせの総数は10の30乗(すなわち、10の6乗の5乗)であり、前述のコンピュータによる総当たり計算の所要時間は約10の8乗年(すなわち約1億年)と算出できる。本発明に係る暗号化の方法においては、さらに五重の独立したべき剰余を用いる暗号化が実施され、これらの暗号化に用いられる鍵は乱数発生手段によりランダムに選択されうるので、総当たりによる解読の所要時間は1億年をはるかに超える天文学的数字の時間でありうる。従って、本発明は乱数を適用可能な目標に対して具体的な実装及び製品化が可能な形態を提供でき、簡単なロジックに比して解読の困難さを飛躍的に向上させたという効果がある。
このように、本発明においては、べき剰余を用いる暗号化及び換字式暗号化を連続して複数回繰り返し実行することにより、元の整数から極めて秘匿性の高い暗号化した整数を生成することが可能である。本発明においては、第三者による解読の手間を膨大化することにより、守秘情報を参照するための識別情報等を高い秘匿性で暗号化し復号化することができる。
【0144】
以上、本発明の実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。上記実施形態に、多様な変更又は改良を加えることができる。そのような変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【符号の説明】
【0145】
20 特定の個人
30 整数型の識別子
37 追加の桁
39 乱数発生手段
40 オフセット情報
41 整数型の復号化した識別子
42、44、46、52、54 暗号化した整数
62、64、66、92、94 固有情報
72、74、76 暗号化計算
82、84、102、104 情報伝達経路
100 暗号化手段
110 復号化手段
112、114 復号化計算
122、124、126 識別用途

【特許請求の範囲】
【請求項1】
整数Xiを暗号化し復号化する方法であって、
暗号化のための鍵をランダムな規則により選択するステップと、
積NがXiを超える2つの素数A及びBを生成するステップと、
(A−1)と(B−1)との積をDとし、(A−1)と(B−1)の最小公倍数をKとし、D又はKと素である数をEとして、次式において項XiのE乗が計算手段の整数演算に桁あふれを発生する条件で、次式の展開形を用いて前記整数Xiを変換した整数Yiを生成するステップと、
【数23】

mを任意の整数として次式を成立するFを用意するステップと、
【数24】

次式を用いて前記変換した整数Yiを整数Xnに復号化するステップと、
【数25】

を含み、式中、
前記Eは前記暗号化のための鍵をランダムな規則により選択するステップにより選択される、
整数を暗号化し復号化する方法。
【請求項2】
さらに、
換字式暗号化を用いて整数を換字暗号した整数に変換するステップと、
換字式復号化を用いて前記換字暗号した整数を復号化するステップと、を含む、
請求項1に記載の整数を暗号化し復号化する方法。
【請求項3】
前記換字式暗号化の鍵は、ランダムな規則により選択される整数である、請求項2に記載の整数を暗号化し復号化する方法。
【請求項4】
前記展開形を用いて前記整数Xiを前記整数Yiに変換した後に、前記換字式暗号化を用いて前記整数Yiを整数Ziに変換する、べき剰余と換字とを連続する暗号化ステップと、
前記換字式復号化を用いて前記整数Ziを前記整数Yiに復号化した後に、前記整数YiをXnに復号化する、換字とべき剰余とを連続する復号化ステップと、
を含む、請求項2に記載の整数を暗号化し復号化する方法。
【請求項5】
前記べき剰余と換字とを連続する暗号化ステップ、及び前記換字とべき剰余とを連続する復号化ステップは、少なくとも2以上の同一の回数実施される、請求項4に記載の整数を暗号化し復号化する方法。
【請求項6】
前記整数Xiは前記換字式暗号化を用いて変換された整数である、換字とべき剰余とを連続する暗号化ステップと、
前記整数Yiから復号化された前記整数Xnに対して前記換字式復号化を用いて復号化する、べき剰余と換字を連続する復号化ステップと、
を含む、請求項2に記載の整数を暗号化し復号化する方法。
【請求項7】
前記換字とべき剰余とを連続する暗号化ステップ、及び前記べき剰余と換字を連続する復号化ステップは、少なくとも2以上の同一の回数実施される、請求項6に記載の整数を暗号化し復号化する方法。
【請求項8】
前記少なくとも2以上の同一の回数は、所定の正の整数、前記所定の正の整数を暗号化した正の整数、及びランダムに発生した正の整数からなる群から選ばれる、請求項5又は7に記載の整数を暗号化し復号化する方法。
【請求項9】
前記換字式暗号化は、単表式暗号化、多表式暗号化及び自動鍵暗号化からなる群から選ばれ、
前記換字式復号化は、前記換字式暗号化に対応して単表式復号化、多表式復号化及び自動鍵復号化からなる群から選ばれる、
請求項2に記載の整数を暗号化し復号化する方法。
【請求項10】
さらに、前記整数Xiを変換した整数Yiを生成する前に、前記整数Xiから前記整数Xi以下の整数Tを加算して前記整数Xiと置き換えるステップと、
前記変換した整数Yiを整数Xnに復号化した後に、前記整数Xnに前記整数Tを減算して前記整数Xnと置き換えるステップと、
を含む、請求項2に記載の整数を暗号化し復号化する方法。
【請求項11】
前記整数Tはランダムな規則により選択される整数である、請求項10に記載の整数を暗号化し復号化する方法。
【請求項12】
前記展開形はXiの桁を2つに分割し、前記分割した桁の上位の桁により表される整数Xu及び前記分割した下位の桁により表される整数Xdを生成し、次式を用いてXiを置き換えることであり、
【数26】

式中、Mは記数法の底であり、Cdは前記下位の桁の数であり、Cdは少なくとも1であり、前記置き換えたXu又はXdを用いて剰余計算を実施する、請求項1に記載の整数を暗号化し復号化する方法。
【請求項13】
前記整数Xiは、識別子に含まれる文字又は数字の一部又は全体から、可逆的に変換された整数である、請求項1に記載の整数を暗号化し復号化する方法。
【請求項14】
前記整数Xiは、1次元画像又は2次元画像から可逆的に変換された1次元画像の一部又は全体から、可逆的に変換された整数である、請求項1に記載の整数を暗号化し復号化する方法。
【請求項15】
さらに、暗号化に先立って、少なくとも一つの桁を元の整数に対して追加することにより桁を増した整数に置き換えるステップを含む、請求項1に記載の整数を暗号化し復号化する方法。
【請求項16】
さらに、復号化の後に復号化した整数から前記追加した少なくとも一つの桁を除去するステップを含む、請求項15に記載の整数を暗号化し復号化する方法。
【請求項17】
請求項1から16のいずれかに記載の方法の各ステップをコンピュータを用いて実行するための、コンピュータ・プログラム。
【請求項18】
請求項1から17のいずれかに記載の方法の各ステップを用いてエンコードした数値を含むコンピュータ可読媒体。
【請求項19】
整数Xiを暗号化し復号化する方法であって、
暗号化のための鍵をランダムな規則により選択する暗号化鍵選択部と、
積NがXiを超える2つの素数A及びBを生成する素数生成部と、
(A−1)と(B−1)との積をDとし、(A−1)と(B−1)の最小公倍数をKとし、D又はKと素である数をEとして、次式において項XiのE乗が計算手段の整数演算に桁あふれを発生する条件で、次式の展開形を用いて前記整数Xiを変換した整数Yiを生成する剰余暗号化実行部と、
【数27】

mを任意の整数として次式を成立するFを用意する秘密鍵生成部と、
【数28】

次式を用いて前記変換した整数Yiを整数Xnに復号化する剰余復号化実行部と、
【数29】

を含み、式中、
前記Eは前記暗号化のための鍵をランダムな規則により選択するステップにより選択される、
整数を暗号化し復号化する装置。
【請求項20】
整数Xiを暗号化し復号化するシステムであって、
暗号化のための鍵をランダムな規則により選択する暗号化鍵選択手段と、
積NがXiを超える2つの素数A及びBを生成する素数生成手段と、
(A−1)と(B−1)との積をDとし、(A−1)と(B−1)の最小公倍数をKとし、D又はKと素である数をEとして、次式において項XiのE乗が計算手段の整数演算に桁あふれを発生する条件で、次式の展開形を用いて前記整数Xiを変換した整数Yiを生成する剰余暗号化手段と、
【数30】

mを任意の整数として次式を成立するFを用意する秘密鍵生成手段と、
【数31】

次式を用いて前記変換した整数Yiを整数Xnに復号化する剰余復号化実行手段と、
【数32】

を含み、式中、
前記Eは前記暗号化のための鍵をランダムな規則により選択するステップにより選択される、
整数を暗号化し復号化するシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate