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