(57)【要約】  連番の管理ＩＤと、管理ＩＤと一対一対応する連番でなく且つ管理ＩＤよりも桁数の大きいユーザＩＤとを用いるＩＤ管理装置を、管理ＩＤとユーザＩＤとを互いに紐付けて記録したデータベースを不要なように改良する。  ＩＤ管理装置としてのコンピュータ１は、演算部１２２とテーブル記録部１２３を備えている。コンピュータ１には、管理ＩＤを入力可能であり、管理ＩＤが入力されると、演算部１２２がテーブル記録部１２３に記録されたテーブルを参照して第１演算を行いユーザＩＤを都度生成する。コンピュータ１には、ユーザＩＤを入力可能であり、ユーザＩＤが入力されると、演算部１２２がテーブル記録部１２３に記録されたテーブルを参照して第２演算を行い管理ＩＤを都度生成する。
2018042492.tif 000002
【特許請求の範囲】
【請求項１】
連番の自然数の集合である第１集合に含まれる前記自然数のそれぞれを、管理者が用いる管理ＩＤとして用いるとともに、前記第１集合に含まれる最大の自然数よりも大きい自然数を含み、且つそれに含まれる自然数の数が前記第１集合に含まれる数と同数の第２集合に含まれる前記自然数のそれぞれを、ユーザに配布するユーザＩＤとして用いるようにするＩＤ管理装置であって、
入力を行う入力部と、演算を行う演算部と、演算結果を出力する出力部と、前記演算部が演算を行うときに参照するテーブルを記録する記録部と、を備えており、
前記入力部から、前記第１集合に含まれる前記自然数の１つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第１演算を行った結果として、前記第２集合に含まれる前記自然数の１つを生成するようになっており、且つ前記出力部は、前記第１演算の結果として生成された前記第２集合に含まれる前記自然数の１つを出力するようになっているとともに、
前記入力部から、前記第２集合に含まれる前記自然数の１つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第２演算を行った結果として、前記第１集合に含まれる前記自然数の１つを生成するようになっており、且つ前記出力部は、前記第２演算の結果として生成された前記第１集合に含まれる前記自然数の１つを出力するようになっているとともに、
前記第１集合に含まれる自然数のそれぞれと、前記第２集合に含まれる自然数のそれぞれとは、一対一対応しており、前記第１演算を行うために、前記第１集合における前記自然数のうちの任意のものを入力した場合には、入力された前記第１集合における前記自然数に対応した前記第２集合に含まれる前記自然数が出力されるようになっており、且つ前記第２演算を行うために、前記第２集合における前記自然数のうちの任意のものを入力した場合には、入力された前記第２集合における前記自然数に対応した前記第１集合に含まれる前記自然数が出力されるようになっている、
ＩＤ管理装置。
【請求項２】
前記第１集合に含まれる前記自然数のうちの最大のものと、前記第２集合に含まれる前記自然数のうちの最大のものとを比較すると、後者は前者よりも一桁以上大きな数である、
請求項１記載のＩＤ管理装置。
【請求項３】
前記第１集合に含まれる最大の数よりもそれらの積が大きな数となる互いに素である２つの整数ｍ１、及びｍ２のそれぞれに基いて生成された、０からｍ１−１までの自然数を適当に並べた数列であるＭ１、及び０からｍ２−１までの自然数を適当に並べた数列であるＭ２が、前記テーブルとして前記記録部に記録されている、
請求項１又は２記載のＩＤ管理装置。
【請求項４】
前記演算部は、前記第１集合に含まれる自然数のうち前記入力手段から入力されるものをｘとした場合に、前記出力部から出力される前記第２集合に含まれる自然数を、
ｙ＝Ｍ１［ｘ  ｍｏｄ  ｍ１］×ｍ２＋Ｍ２［ｘ  ｍｏｄ  ｍ２］
（ただし、「Ｍ１［ｎ］」は、数列Ｍ１の中のｎ番目（ただし、最初の数を０番目と数える。）の数を意味し、「Ｍ２［ｎ］」は、数列Ｍ２の中のｎ番目（ただし、最初の数を０番目と数える。）の数を意味する。また、「ｐ  ｍｏｄ  ｑ」  は、ｐ、ｑがいずれも整数である場合に、ｐを法ｑの剰余系で表現した値（言い換えれば、ｐをｑで割った場合の余り）を意味する。）
の演算により求めるようになっている、
請求項１記載のＩＤ管理装置。
【請求項５】
連番の自然数の集合である第１集合に含まれる前記自然数のそれぞれを、管理者が用いる管理ＩＤとして用いるとともに、前記第１集合に含まれる最大の自然数よりも大きい自然数を含み、且つそれに含まれる自然数の数が前記第１集合に含まれる数と同数の第２集合に含まれる前記自然数のそれぞれを、ユーザに配布するユーザＩＤとして用いるようにする、演算を行う演算部と、前記演算部が演算を行うときに参照するテーブルを記録する記録部と、を備えているＩＤ管理装置の前記演算部が実行する方法であって、
前記演算部が実行する、
前記第１集合に含まれる前記自然数の１つが入力されたときに、前記記録部に記録されたテーブルを参照して所定の演算である第１演算を行った結果として、前記第２集合に含まれる前記自然数の１つを生成するとともに、前記第１演算の結果として生成された前記第２集合に含まれる前記自然数の１つを出力する過程、
前記第２集合に含まれる前記自然数の１つが入力されたときに、前記記録部に記録されたテーブルを参照して所定の演算である第２演算を行った結果として、前記第１集合に含まれる前記自然数の１つを生成するとともに、前記第２演算の結果として生成された前記第１集合に含まれる前記自然数の１つを出力する過程、
を含み、
前記第１集合に含まれる自然数のそれぞれと、前記第２集合に含まれる自然数のそれぞれとは、一対一対応しており、前記第１演算を行うために、前記第１集合における前記自然数のうちの任意のものが入力された場合には、入力された前記第１集合における前記自然数に対応した前記第２集合に含まれる前記自然数を出力し、且つ前記第２演算を行うために、前記第２集合における前記自然数のうちの任意のものが入力された場合には、入力された前記第２集合における前記自然数に対応した前記第１集合に含まれる前記自然数を出力する、
方法。
【請求項６】
連番の自然数の集合である第１集合に含まれる前記自然数のそれぞれを、管理者が用いる管理ＩＤとして用いるとともに、前記第１集合に含まれる最大の自然数よりも大きい自然数を含み、且つそれに含まれる自然数の数が前記第１集合に含まれる数と同数の第２集合に含まれる前記自然数のそれぞれを、ユーザに配布するユーザＩＤとして用いるようにするＩＤ管理装置として、コンピュータを機能させるためのコンピュータプログラムであって、
前記コンピュータを、
入力を行う入力部と、演算を行う演算部と、演算結果を出力する出力部と、前記演算部が演算を行うときに参照するテーブルを記録する記録部と、として機能させるためのものであり、
前記入力部から、前記第１集合に含まれる前記自然数の１つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第１演算を行った結果として、前記第２集合に含まれる前記自然数の１つを生成するようになっており、且つ前記出力部は、前記第１演算の結果として生成された前記第２集合に含まれる前記自然数の１つを出力するようになっているとともに、
前記入力部から、前記第２集合に含まれる前記自然数の１つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第２演算を行った結果として、前記第１集合に含まれる前記自然数の１つを生成するようになっており、且つ前記出力部は、前記第２演算の結果として生成された前記第１集合に含まれる前記自然数の１つを出力するようになっているとともに、
前記第１集合に含まれる自然数のそれぞれと、前記第２集合に含まれる自然数のそれぞれとは、一対一対応しており、前記第１演算を行うために、前記第１集合における前記自然数のうちの任意のものを入力した場合には、入力された前記第１集合における前記自然数に対応した前記第２集合に含まれる前記自然数が出力されるようになっており、且つ前記第２演算を行うために、前記第２集合における前記自然数のうちの任意のものを入力した場合には、入力された前記第２集合における前記自然数に対応した前記第１集合に含まれる前記自然数が出力されるようになっている、
コンピュータプログラム。
【請求項７】
連番の負の整数の集合である第１集合に含まれる前記負の整数のそれぞれを、管理者が用いる管理ＩＤとして用いるとともに、前記第１集合に含まれる最小の負の整数よりも小さい負の整数を含み、且つそれに含まれる負の整数の数が前記第１集合に含まれる数と同数の第２集合に含まれる前記自然数のそれぞれを、ユーザに配布するユーザＩＤとして用いるようにするＩＤ管理装置であって、
入力を行う入力部と、演算を行う演算部と、演算結果を出力する出力部と、前記演算部が演算を行うときに参照するテーブルを記録する記録部と、を備えており、
前記入力部から、前記第１集合に含まれる前記負の整数の１つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第１演算を行った結果として、前記第２集合に含まれる前記負の整数の１つを生成するようになっており、且つ前記出力部は、前記第１演算の結果として生成された前記第２集合に含まれる前記負の整数の１つを出力するようになっているとともに、
前記入力部から、前記第２集合に含まれる前記負の整数の１つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第２演算を行った結果として、前記第１集合に含まれる前記負の整数の１つを生成するようになっており、且つ前記出力部は、前記第２演算の結果として生成された前記第１集合に含まれる前記負の整数の１つを出力するようになっているとともに、
前記第１集合に含まれる負の整数のそれぞれと、前記第２集合に含まれる負の整数のそれぞれとは、一対一対応しており、前記第１演算を行うために、前記第１集合における前記負の整数のうちの任意のものを入力した場合には、入力された前記第１集合における前記負の整数に対応した前記第２集合に含まれる前記負の整数が出力されるようになっており、且つ前記第２演算を行うために、前記第２集合における前記負の整数のうちの任意のものを入力した場合には、入力された前記第２集合における前記負の整数に対応した前記第１集合に含まれる前記負の整数が出力されるようになっている、
ＩＤ管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、互いにユニークな多数のＩＤを管理するための技術に関する。
【背景技術】
【０００２】
互いにユニークな多数のＩＤが用いられる場面が良くある。典型的には、多数のユーザのそれぞれに対して、多数のユーザを管理すべき管理者が、それぞれが他に対してユニークなＩＤを割り振るということが行われている。
例えば、１０００人のユーザにＩＤを割り振るとする。その場合、自然数を用いるのであれば、例えば、０００１〜１０００という１０００個のＩＤを割り振ることができる。
これは最も簡単なＩＤの割り振り方であり、ユーザを管理するという目的からすれば、このようなＩＤでも一応目的を果たすことは可能である。【０００３】
しかしながら、上述の如きＩＤの割り振り方では不十分なこともある。上述の如きＩＤの割り振り方は、見た目にも極めて単純である。したがって、自分のユーザＩＤを悪意の第三者に看破されたら、という不安をユーザに抱かせがちである。
ユーザＩＤには、ユーザの氏名、住所等の個人情報が紐付けられることもあるため、ユーザＩＤを悪意の第三者に看破されただけでは、悪意の第三者にユーザの個人情報を知られる等の不具合が即座に生じるというわけでもないが、ユーザＩＤの漏洩がそのような不具合に繋がるというユーザのそこはかとない不安は確実に存在する。【０００４】
そのような点を考慮して、以下のような技術が汎用されている。
その技術では、ユーザに発行するユーザが知るＩＤであるユーザＩＤと、管理者が使用するＩＤである管理ＩＤが異なるものとされる。
例えば、１０００人のユーザにユーザＩＤを配布するとする。その場合、各ユーザに配布されるユーザＩＤは例えば、１０００よりも遥かに大きな自然数の中から選ばれた１０００個の自然数とされる。具体例を挙げるのであれば、この場合のユーザＩＤは、例えば、８桁の数の中から、つまり、０００００００１〜９９９９９９９９の中から選ばれた１０００個の数とされる。この場合であれば、８桁の数の中には、そもそもユーザＩＤとして使用されていないものが相当数含まれている。そのような使用されない数の存在が、ユーザの安心感に繋がる。このようなユーザＩＤは、例えば、８桁の数の中から数を１つずつランダムに選択することによって生成される。
他方、上述の如きユーザＩＤは、ユーザの安心感という面からすれば優れているが、ユーザを管理する管理者側からすれば非常に扱いにくいものとなる。それは、上述の如きユーザＩＤのそれぞれは、飛び飛びの数字であって、連番でないことに主に起因する。そこで、上述の如きユーザＩＤを用いる場合には、管理者は、管理者用の管理ＩＤをユーザＩＤとは別に作る。この管理ＩＤは管理者の利便性を高めるため、連番とされる。必ずしも０００１から始まる必要はないが、一般的には１０００人のユーザを管理するのであれば、管理ＩＤは、０００１〜１０００とされる。
管理ＩＤのそれぞれは、ユーザＩＤに１つずつ紐付けられる。それにより、管理者は、管理ＩＤを介してランダムな数字であるユーザＩＤを管理することができるようになる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述の如き、ユーザＩＤと、管理ＩＤとを用いる技術は実用されており、一定の効果をあげている。しかしながら、かかる技術にも改良すべき点がある。
上述の技術においては、いずれも多数の管理ＩＤとユーザＩＤとを一対一対応させた状態で紐付けることが必要である。かかる管理ＩＤとユーザＩＤとの紐付けはコンピュータを用いて行われており、一般に管理ＩＤとユーザＩＤとを紐付けた表のデータを記録したデータベースを用いて実現されている。
つまり、管理者は、ある管理ＩＤと紐付けられたユーザＩＤを知りたいと思った場合には、コンピュータにその管理ＩＤを打ち込む。そうすると、コンピュータは、上述のデータベースを参照して、その管理ＩＤと紐付けられたユーザＩＤを出力する（例えば、コンピュータと接続されたディスプレイにユーザＩＤを表示する。）。他方、管理者は、あるユーザＩＤと紐付けられた管理ＩＤを知りたいと思った場合には、コンピュータにそのユーザＩＤを打ち込む。そうすると、コンピュータは、上述のデータベースを参照して、そのユーザＩＤと紐付けられた管理ＩＤを出力する。それにより、管理者は、管理ＩＤからそれに紐付けられたユーザＩＤを、或いはユーザＩＤからそれに紐付けられた管理ＩＤを知ることができる。【０００６】
しかしながら、管理ＩＤとユーザＩＤとを紐付けた表のデータを記録した上述のデータベースは、管理ＩＤとユーザＩＤとの数にもよるが、記録すべきデータ量が多くなりがちである。管理ＩＤとユーザＩＤとを用いたユーザの管理を、例えば、何らかのイベントを行う度に何度も繰り返して行わなければならないとするのであれば、そのデータ量は益々膨大となる。【０００７】
本願発明は、かかる問題を解決するものであり、管理ＩＤとユーザＩＤとを一対一対応させて用いるための技術を実用するにあたり、管理ＩＤとユーザＩＤとを紐付けた表のデータを記録したデータベースを不要とするように改良することを、その課題とする。
【課題を解決するための手段】
【０００８】
上述の課題を解決するために、本願発明者は、以下の発明を提案する。
本願発明は、連番の自然数の集合である第１集合に含まれる前記自然数のそれぞれを、管理者が用いる管理ＩＤとして用いるとともに、前記第１集合に含まれる最大の自然数よりも大きい自然数を含み、且つそれに含まれる自然数の数が前記第１集合に含まれる数と同数の第２集合に含まれる前記自然数のそれぞれを、ユーザに配布するユーザＩＤとして用いるようにするＩＤ管理装置である。
そして、このＩＤ管理装置は、入力を行う入力部と、演算を行う演算部と、演算結果を出力する出力部と、前記演算部が演算を行うときに参照するテーブルを記録する記録部と、を備えている。
このＩＤ管理装置では、前記入力部から、前記第１集合に含まれる前記自然数の１つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第１演算を行った結果として、前記第２集合に含まれる前記自然数の１つを生成するようになっており、且つ前記出力部は、前記第１演算の結果として生成された前記第２集合に含まれる前記自然数の１つを出力するようになっているとともに、前記入力部から、前記第２集合に含まれる前記自然数の１つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第２演算を行った結果として、前記第１集合に含まれる前記自然数の１つを生成するようになっており、且つ前記出力部は、前記第２演算の結果として生成された前記第１集合に含まれる前記自然数の１つを出力するようになっている。
また、このＩＤ管理装置では、前記第１集合に含まれる自然数のそれぞれと、前記第２集合に含まれる自然数のそれぞれとは、一対一対応しており、前記第１演算を行うために、前記第１集合における前記自然数のうちの任意のものを入力した場合には、入力された前記第１集合における前記自然数に対応した前記第２集合に含まれる前記自然数が出力されるようになっており、且つ前記第２演算を行うために、前記第２集合における前記自然数のうちの任意のものを入力した場合には、入力された前記第２集合における前記自然数に対応した前記第１集合に含まれる前記自然数が出力されるようになっている。
本願発明のＩＤ管理装置は、背景技術の欄で述べたようなデータベースを有さない。その代わり、演算部によって演算することにより、管理ＩＤからユーザＩＤを生成することができ、また、ユーザＩＤから管理ＩＤを生成することができるようになっている。前者の管理ＩＤからユーザＩＤを生成する演算が第１演算であり、後者のユーザＩＤから管理ＩＤを生成する演算が第２演算である。
ここで、管理ＩＤは、連番の自然数の集合である第１集合に含まれる自然数のそれぞれである。他方、ユーザＩＤは、第１集合に含まれる最大の自然数よりも大きい自然数を含み、且つそれに含まれる自然数の数が第１集合に含まれる数と同数の第２集合に含まれる自然数のそれぞれである。そして、第１集合に含まれる自然数のそれぞれと、第２集合に含まれる自然数のそれぞれとは、一対一対応している。また、演算部は、第１演算を行うために、第１集合における自然数のうちの任意のものを入力した場合には、入力された第１集合における自然数に対応した第２集合に含まれる自然数を出力するようになっており、且つ第２演算を行うために、第２集合における自然数のうちの任意のものを入力した場合には、入力された第２集合における自然数に対応した第１集合に含まれる自然数を出力するようになっている。
そのような演算部を用いることにより、言い換えれば、データベースを参照する代わりに、管理者が管理ＩＤからユーザＩＤを知りたいときには演算部に第１演算を行わせ、管理者がユーザＩＤから管理ＩＤを知りたいときには演算部に第２演算を行わせるようにすることで、本願発明によれば、管理者は、管理ＩＤからそれと一対一対応したユーザＩＤを知るか、或いはユーザＩＤからそれと一対一対応した管理ＩＤを知ることができるようにしつつも、データベースを不要とした。
上述の第１演算と第２演算は、言葉を変えれば、第１集合の中の自然数と、第２集合の中の自然数を、一対一対応の関係を維持したまま、可逆に写像するものであるといえる。そのような特別な第１演算と第２演算とを演算部で行うようにすることによって、本願発明ではデータベースを不要としたのである。かかる特別な演算を可能とするのが、演算部が演算を行うときに参照するテーブルを記録する記録部に記録されたテーブルである。もっとも、かかるテーブルに記録されるデータ量は、第１集合中の自然数と第２集合中の自然数とを、その一対一対応が把握できるようにして互いに紐付けて記録する場合に比較して、著しく小さいから、従来のようなデータベースに記録するデータが極めて大きくなるといった不具合は、本願発明では生じない。【０００９】
前記第１集合に含まれる前記自然数のうちの最大のものと、前記第２集合に含まれる前記自然数のうちの最大のものとを比較すると、後者は前者よりも一桁以上大きな数とすることができる。それにより、ユーザの不安がより解消されることになる。例えば、第１集合に含まれる自然数のうちの最大のものと、第２集合に含まれる自然数のうちの最大のものとを比較したときに、後者は前者よりも三桁以上大きな数となっていれば、ユーザの不安は殆ど解消できるであろう。【００１０】
前記記録部に記録されるテーブルは、演算部がそれを参照することによって第１演算と第２演算とを実行できるようにするためのものであれば良い。かかるテーブルに記録されるデータは、いずれも変化することのない定数、数列、或いはそれらの組合せとすることができる。また、そのテーブルに記録されたデータを参照して演算部が行う第１演算と第２演算とは、テーブルに記録されたデータを参照すれば行うことができるのみならず、テーブルに記録されたデータを参照しなければ第三者が再現できないものであるのが好ましい。そうすることで、本願発明のＩＤ管理装置により発行されるユーザＩＤに対するユーザの安心感をより高めることができるようになる。
記録部に記録されるテーブルには、例えば、前記第１集合に含まれる最大の数よりもそれらの積が大きな数となる互いに素である２つの整数ｍ１、及びｍ２のそれぞれに基いて生成された、０からｍ１−１までの自然数を適当に並べた数列であるＭ１、及び０からｍ２−１までの自然数を適当に並べた数列であるＭ２が、記録されていても構わない。これにより、テーブルを参照しなければ第三者が再現できない第１演算と第２演算とを実現できるようになる。
例えば、前記演算部は、記録部に記録されたテーブルが上記のものである場合、前記第１集合に含まれる自然数のうち前記入力手段から入力されるものをｘとした場合に、前記出力部から出力される前記第２集合に含まれる自然数を、以下の数式にしたがった演算を行うことにより求めるようになっていても構わない。
ｙ＝Ｍ１［ｘ  ｍｏｄ  ｍ１］×ｍ２＋Ｍ２［ｘ  ｍｏｄ  ｍ２］
（ただし、「Ｍ１［ｎ］」は、数列Ｍ１の中のｎ番目（ただし、最初の数を０番目と数える。）の数を意味し、「Ｍ２［ｎ］」は、数列Ｍ２の中のｎ番目（ただし、最初の数を０番目と数える。）の数を意味する。また、「ｐ  ｍｏｄ  ｑ」  は、ｐ、ｑがいずれも整数である場合に、ｐを法ｑの剰余系で表現した値（言い換えれば、ｐをｑで割った場合の余り）を意味する。）
これにより、テーブルを参照しなければ第三者が再現できない第１演算が実現可能となる。第１演算が上記の通りである場合、第２演算は、
ａ＝ｉｎｔ（ｙ／ｍ２）
ｂ＝ｙ−ａ×ｍ２
として、
ａ≡ｘ  ｍｏｄ  ｋ１（「≡」は合同、以下同じ。）
ｂ≡ｘ  ｍｏｄ  ｋ２
の合同方程式を変形した、
ａｘ＋ｂｘ＝ｃの不定方程式を解くことにより求めることができる。かかる不定方程式は、ａ、ｂ、ｋ１、ｋ２が整数の場合であって、且つｋ１とｋ２とが互いに素である場合には、解が一意に定まることが知られている。ここでｋ１とｋ２とを得ることができるが、最終的に求めたいｘは、下記の式によって初めて求めることができる。
ｘ＝Ｍ１［ｋ１］×ｍ２＋Ｍ２［ｋ２］
つまり、第三者が、ユーザＩＤ（ｙ）から、そのユーザＩＤと紐付けられた管理ＩＤ（ｘ）を知ろうとした場合には、Ｍ１とＭ２を予め入手していることが必要となる。一方、不正な手段を用いることなく、発行済のユーザＩＤからＭ１、Ｍ２を推定するためには、連続したｘとｙの組を、Ｍ１に含まれる自然数の数とＭ２に含まれる自然数の数の少ない方の数以上の数入手することが必要となる（省略するが、これは数学的に証明可能である。）。
したがって、上述の如き演算を採用することで、テーブルを参照しなければ第三者が再現できない第２演算を実現できるようになる。
なお、第１演算、第２演算ともに、上述の演算方法に加えて、更に別の、例えば擬似乱数を加味する等の要素を付加することが可能であり、それにより解読に必要な情報量を増加させることが可能となる。【００１１】
本願発明は、方法の発明と捉えることも可能である。その効果は、上述のＩＤ管理装置の効果に同じである。
その方法は、例えば、連番の自然数の集合である第１集合に含まれる前記自然数のそれぞれを、管理者が用いる管理ＩＤとして用いるとともに、前記第１集合に含まれる最大の自然数よりも大きい自然数を含み、且つそれに含まれる自然数の数が前記第１集合に含まれる数と同数の第２集合に含まれる前記自然数のそれぞれを、ユーザに配布するユーザＩＤとして用いるようにする、演算を行う演算部と、前記演算部が演算を行うときに参照するテーブルを記録する記録部と、を備えているＩＤ管理装置の前記演算部が実行する方法である。
そして、この方法は、前記演算部が実行する、前記第１集合に含まれる前記自然数の１つが入力されたときに、前記記録部に記録されたテーブルを参照して所定の演算である第１演算を行った結果として、前記第２集合に含まれる前記自然数の１つを生成するとともに、前記第１演算の結果として生成された前記第２集合に含まれる前記自然数の１つを出力する過程、前記第２集合に含まれる前記自然数の１つが入力されたときに、前記記録部に記録されたテーブルを参照して所定の演算である第２演算を行った結果として、前記第１集合に含まれる前記自然数の１つを生成するとともに、前記第２演算の結果として生成された前記第１集合に含まれる前記自然数の１つを出力する過程、を含む。
この方法では、前記第１集合に含まれる自然数のそれぞれと、前記第２集合に含まれる自然数のそれぞれとは、一対一対応しており、前記第１演算を行うために、前記第１集合における前記自然数のうちの任意のものが入力された場合には、入力された前記第１集合における前記自然数に対応した前記第２集合に含まれる前記自然数を出力し、且つ前記第２演算を行うために、前記第２集合における前記自然数のうちの任意のものが入力された場合には、入力された前記第２集合における前記自然数に対応した前記第１集合に含まれる前記自然数を出力する。【００１２】
本願発明は、コンピュータ、一般的には汎用のコンピュータを、本願発明によるＩＤ管理装置として機能させるためのコンピュータプログラムの発明と捉えることも可能である。その効果は、上述のＩＤ管理装置の効果に同じである。
そのコンピュータプログラムは、例えば、連番の自然数の集合である第１集合に含まれる前記自然数のそれぞれを、管理者が用いる管理ＩＤとして用いるとともに、前記第１集合に含まれる最大の自然数よりも大きい自然数を含み、且つそれに含まれる自然数の数が前記第１集合に含まれる数と同数の第２集合に含まれる前記自然数のそれぞれを、ユーザに配布するユーザＩＤとして用いるようにするＩＤ管理装置として、コンピュータを機能させるためのコンピュータプログラムである。
そして、このコンピュータプログラムは、前記コンピュータを、入力を行う入力部と、演算を行う演算部と、演算結果を出力する出力部と、前記演算部が演算を行うときに参照するテーブルを記録する記録部と、として機能させるためのものである。
この場合、前記入力部から、前記第１集合に含まれる前記自然数の１つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第１演算を行った結果として、前記第２集合に含まれる前記自然数の１つを生成するようになっており、且つ前記出力部は、前記第１演算の結果として生成された前記第２集合に含まれる前記自然数の１つを出力するようになっているとともに、前記入力部から、前記第２集合に含まれる前記自然数の１つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第２演算を行った結果として、前記第１集合に含まれる前記自然数の１つを生成するようになっており、且つ前記出力部は、前記第２演算の結果として生成された前記第１集合に含まれる前記自然数の１つを出力するようになっているとともに、前記第１集合に含まれる自然数のそれぞれと、前記第２集合に含まれる自然数のそれぞれとは、一対一対応しており、前記第１演算を行うために、前記第１集合における前記自然数のうちの任意のものを入力した場合には、入力された前記第１集合における前記自然数に対応した前記第２集合に含まれる前記自然数が出力されるようになっており、且つ前記第２演算を行うために、前記第２集合における前記自然数のうちの任意のものを入力した場合には、入力された前記第２集合における前記自然数に対応した前記第１集合に含まれる前記自然数が出力されるようになっている。【００１３】
上述したように、本願発明におけるＩＤ管理装置は、管理ＩＤについての第１集合と、ユーザＩＤについての第２集合とを扱うものであり、管理ＩＤの中の自然数と、ユーザＩＤの中の自然数とを、一対一対応させるものであった。
もっとも、第１集合に含まれる数は自然数（正の整数）には限られず、負の整数であっても良いし、第２集合に含まれる数は自然数（正の整数）には限られず、負の整数であっても良い。その場合、記録部に記録されるテーブルは、例えば、前記第１集合に含まれる最小の数の絶対値よりもそれらの積が大きな数となる互いに素である２つの整数ｍ１、及びｍ２のそれぞれに基いて生成された、０からｍ１−１までの自然数を適当に並べた数列であるＭ１、及び０からｍ２−１までの自然数を適当に並べた数列であるＭ２が、記録されていても構わない。この場合の管理ＩＤ（ｘ）の集合である第１集合と、ユーザＩＤ（ｙ）の集合である第２集合とは、管理ＩＤとユーザＩＤとがともに自然数である場合におけるそれらに対して、０を中心として折り返した関係となる。
かかるＩＤ管理装置は、例えば、連番の負の整数の集合である第１集合に含まれる前記負の整数のそれぞれを、管理者が用いる管理ＩＤとして用いるとともに、前記第１集合に含まれる最小の負の整数よりも小さい負の整数を含み、且つそれに含まれる負の整数の数が前記第１集合に含まれる数と同数の第２集合に含まれる前記負の整数のそれぞれを、ユーザに配布するユーザＩＤとして用いるようにするＩＤ管理装置である。
そして、このＩＤ管理装置は、入力を行う入力部と、演算を行う演算部と、演算結果を出力する出力部と、前記演算部が演算を行うときに参照するテーブルを記録する記録部と、を備えている。
このＩＤ管理装置は、前記入力部から、前記第１集合に含まれる前記負の整数の１つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第１演算を行った結果として、前記第２集合に含まれる前記負の整数の１つを生成するようになっており、且つ前記出力部は、前記第１演算の結果として生成された前記第２集合に含まれる前記負の整数の１つを出力するようになっているとともに、前記入力部から、前記第２集合に含まれる前記負の整数の１つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第２演算を行った結果として、前記第１集合に含まれる前記負の整数の１つを生成するようになっており、且つ前記出力部は、前記第２演算の結果として生成された前記第１集合に含まれる前記負の整数の１つを出力するようになっているとともに、前記第１集合に含まれる負の整数のそれぞれと、前記第２集合に含まれる負の整数のそれぞれとは、一対一対応しており、前記第１演算を行うために、前記第１集合における前記負の整数のうちの任意のものを入力した場合には、入力された前記第１集合における前記負の整数に対応した前記第２集合に含まれる前記負の整数が出力されるようになっており、且つ前記第２演算を行うために、前記第２集合における前記負の整数のうちの任意のものを入力した場合には、入力された前記第２集合における前記負の整数に対応した前記第１集合に含まれる前記負の整数が出力されるようになっている。【００１４】
第１集合に含まれる数と、第２集合に含まれる数がともに負の整数である場合においても、本願発明は、方法の発明と捉えることが可能である。その効果は、上述のＩＤ管理装置の効果に同じである。
その方法は、連番の負の整数の集合である第１集合に含まれる前記負の整数のそれぞれを、管理者が用いる管理ＩＤとして用いるとともに、前記第１集合に含まれる最小の負の整数よりも小さい負の整数を含み、且つそれに含まれる負の整数の数が前記第１集合に含まれる数と同数の第２集合に含まれる前記負の整数のそれぞれを、ユーザに配布するユーザＩＤとして用いるようにする、演算を行う演算部と、前記演算部が演算を行うときに参照するテーブルを記録する記録部と、を備えているＩＤ管理装置の前記演算部が実行する方法である。
そして、この方法は、前記演算部が実行する、前記第１集合に含まれる前記負の整数の１つが入力されたときに、前記記録部に記録されたテーブルを参照して所定の演算である第１演算を行った結果として、前記第２集合に含まれる前記負の整数の１つを生成するとともに、前記第１演算の結果として生成された前記第２集合に含まれる前記負の整数の１つを出力する過程、前記第２集合に含まれる前記負の整数の１つが入力されたときに、前記記録部に記録されたテーブルを参照して所定の演算である第２演算を行った結果として、前記第１集合に含まれる前記負の整数の１つを生成するとともに、前記第２演算の結果として生成された前記第１集合に含まれる前記負の整数の１つを出力する過程、を含む。
この方法では、前記第１集合に含まれる負の整数のそれぞれと、前記第２集合に含まれる負の整数のそれぞれとは、一対一対応しており、前記第１演算を行うために、前記第１集合における前記負の整数のうちの任意のものが入力された場合には、入力された前記第１集合における前記負の整数に対応した前記第２集合に含まれる前記負の整数を出力し、且つ前記第２演算を行うために、前記第２集合における前記負の整数のうちの任意のものが入力された場合には、入力された前記第２集合における前記負の整数に対応した前記第１集合に含まれる前記負の整数を出力する。【００１５】
第１集合に含まれる数と、第２集合に含まれる数がともに負の整数である場合においても、本願発明は、コンピュータ、一般的には汎用のコンピュータを、本願発明によるＩＤ管理装置として機能させるためのコンピュータプログラムの発明と捉えることが可能である。その効果は、上述のＩＤ管理装置の効果に同じである。
そのコンピュータプログラムは、例えば、連番の負の整数の集合である第１集合に含まれる前記負の整数のそれぞれを、管理者が用いる管理ＩＤとして用いるとともに、前記第１集合に含まれる最小の負の整数よりも小さい負の整数を含み、且つそれに含まれる負の整数の数が前記第１集合に含まれる数と同数の第２集合に含まれる前記負の整数のそれぞれを、ユーザに配布するユーザＩＤとして用いるようにするＩＤ管理装置として、コンピュータを機能させるためのコンピュータプログラムである。
そして、そのコンピュータプログラムは、前記コンピュータを、入力を行う入力部と、演算を行う演算部と、演算結果を出力する出力部と、前記演算部が演算を行うときに参照するテーブルを記録する記録部と、として機能させるためのものである。
この場合、前記入力部から、前記第１集合に含まれる前記負の整数の１つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第１演算を行った結果として、前記第２集合に含まれる前記負の整数の１つを生成するようになっており、且つ前記出力部は、前記第１演算の結果として生成された前記第２集合に含まれる前記負の整数の１つを出力するようになっているとともに、前記入力部から、前記第２集合に含まれる前記負の整数の１つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第２演算を行った結果として、前記第１集合に含まれる前記負の整数の１つを生成するようになっており、且つ前記出力部は、前記第２演算の結果として生成された前記第１集合に含まれる前記負の整数の１つを出力するようになっているとともに、前記第１集合に含まれる負の整数のそれぞれと、前記第２集合に含まれる負の整数のそれぞれとは、一対一対応しており、前記第１演算を行うために、前記第１集合における前記負の整数のうちの任意のものを入力した場合には、入力された前記第１集合における前記負の整数に対応した前記第２集合に含まれる前記負の整数が出力されるようになっており、且つ前記第２演算を行うために、前記第２集合における前記負の整数のうちの任意のものを入力した場合には、入力された前記第２集合における前記負の整数に対応した前記第１集合に含まれる前記負の整数が出力されるようになっている。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態によるＩＤ管理装置の全体構成を概略的に示す斜視図。
【図２】図１に示したコンピュータのハードウエア構成図。
【図３】図１に示したコンピュータ内に形成される機能ブロックを示すブロック図。
【図４】変形例２のテーブル記録部に記録されるテーブルの例を概念的に示す図。
【発明を実施するための形態】
【００１７】
以下、図面を参照して、本発明の実施の形態について説明する。
【００１８】
本願発明のＩＤ管理装置の概観を示す。
図中１が本願発明のＩＤ管理装置としてのコンピュータである。一般的には、コンピュータ１は、多数のユーザに対してユーザＩＤを配布する管理者が使用する。
かかるコンピュータ１は、入力装置２、及びディスプレイ３と接続されている。
入力装置２は、コンピュータ１に対して入力を行うための装置である。この実施形態における入力装置２は、後述するように数字の入力を行えることが必要であるが、それが可能な限り、この実施形態における入力装置２は、公知、或いは周知の装置により実現することができる。これには限られないが、この実施形態における入力装置２は、キーボードとマウスにより構成されている。
ディスプレイ３は、コンピュータ１によって生成された画像データに基づく画像を表示するための表示装置である。ディスプレイ３はどのようなものでも構わず、公知、或いは周知の装置によりそれを実現することができるが、例えば、液晶ディスプレイ、ＣＲＴディスプレイがその一例となる。
なお、この実施形態では、入力装置２及びディスプレイ３は、コンピュータ１に対してケーブル２Ａ、３Ａを介して有線で接続されているが、かかる接続は、公知或いは周知の技術を用いて無線でなされていても構わない。
【００１９】
コンピュータ１は、汎用のものでよく、例えば、汎用のパーソナルコンピュータで構わない。この実施形態におけるコンピュータ１はデスクトップ型であるが、ノートブック型でも構わず、その場合には広く知られているように、コンピュータ１はディスプレイ３と一体となる。
コンピュータ１は、図２に示したようなハードウエアを備えている。この実施形態におけるコンピュータは、ＣＰＵ（Central Processing Unit）１１１、ＲＯＭ（Read Only Memory）１１２、ＲＡＭ（Random Access Memory）１１３、ＨＤＤ（Hard disc drive）１１４、インタフェイス１１５、及びこれらを接続するバス１１６を備えている。
ＣＰＵ１１１は、演算装置であり、コンピュータ１全体の制御を行う。ＣＰＵ１１１は、本願発明によるプログラムを含むプログラムを実行することで、以下に説明するような種々の処理を実行する。
ＲＯＭ１１２は、書換不可能なメモリであり、ＣＰＵ１１１を動作させるためのプログラム、データなどを記憶している。
ＲＡＭ１１３は、書換可能なメモリであり、ＣＰＵ１１１が以下の処理を実行する場合のワーク領域を提供する。
ＨＤＤ１１４はデータを記録する大容量記録媒体である。ＨＤＤ１１４もまた、ＣＰＵ１１１を動作させるためのプログラム、データを記録している。例えば、ＣＰＵ１１１を動作させるためのＯＳがＨＤＤ１１４に記録されている。また、このコンピュータ１をＩＤ管理装置として機能させるためのプログラムが、ＲＯＭ１１２か、或いはＨＤＤ１１４に記録されている。なお、そのプログラムは、コンピュータ１の出荷時からコンピュータ１にインストールされていてもよく、コンピュータ１の出荷後に、例えば管理者によりコンピュータ１にインストールされたものであっても構わない。コンピュータ１の出荷後にそのプログラムがコンピュータ１にインストールされる場合、そのプログラムは、ＣＤ−ＲＯＭ等の記録媒体からコンピュータ１に記録されてもよく、また、インターネット等の所定のネットワークからのダウンロードを経てコンピュータ１に記録されたものであってもよい。上述のプログラムは、それ単独で後述する処理をＣＰＵ１１１に実行させるものとなっていてもよく、ＯＳその他の他のプログラムとの協働により後述の処理をＣＰＵ１１１に実行させるものとなっていても構わない。
インタフェイス１１５は、ＣＰＵ１１１、ＲＯＭ１１２、ＲＡＭ１１３、ＨＤＤ１１４とコンピュータ１の図３で示したハードウエアの外部とを繋ぐ窓口となるものであり、ＣＰＵ１１１、ＲＯＭ１１２、ＲＡＭ１１３、ＨＤＤ１１４は、インタフェイス１１５を介して図３に示したコンピュータ１のハードウエアの外部とデータ交換を行えるようになっている。例えば、インタフェイス１１５は、ケーブル２Ａを介して入力装置２と、またケーブル３Ａを介してディスプレイ３と、それぞれ接続されている。入力装置２で生成された後述する入力データは、インタフェイス１１５を介してコンピュータ１が受取り、ＣＰＵ１１１等の適当な部分に送られる。また、ＣＰＵ１１１で生成された画像データが、インタフェイス１１５を介してディスプレイ３に送られるようになっており、画像データを受取ったディスプレイ３は画像データに基づく画像をディスプレイ３の画面に表示するようになっている。
【００２０】
上記プログラムをＣＰＵ１１１が実行することにより、コンピュータ１の内部には、図３に示した如き種々の機能ブロックが生成される。
コンピュータ１の内部には、入力部１２１、演算部１２２、テーブル記録部１２３、出力部１２４、制御部１２５が生成される。
【００２１】
入力部１２１はインタフェイス１１５と接続されており、インタフェイス１１５からの入力を受取るものである。上述したように、インタフェイス１１５には入力装置２から、入力データが入力されるが、この入力データはインタフェイス１１５から入力部１２１に入力されるようになっている。詳しくは追って述べるが、入力装置２から入力される入力データは、本願発明との関係では、管理ＩＤを特定するデータである管理ＩＤデータ、ユーザＩＤを特定するデータであるユーザＩＤデータ、及びテーブル記録部１２３内のテーブルを生成するためのデータである準備データのいずれかである。入力部１２１は、入力データを受取ったとき、それが管理ＩＤデータ又はユーザＩＤデータのいずれかである場合にはそれを演算部１２２に送るようになっており、また、それが準備データである場合にはその準備データを制御部１２５に送るようになっている。
【００２２】
演算部１２２は、本願発明でいうところの第１演算と第２演算を実行するものである。演算部１２２は上述のように、管理ＩＤデータ又はユーザＩＤデータを入力部１２１から受取る場合がある。管理ＩＤデータを受取った場合、演算部１２２は第１演算を実行し、ユーザＩＤデータを受取った場合には演算部１２２は第２演算を実行するようになっている。第１演算、及び第２演算の内容、及び実行方法については追って詳しく述べるが、第１演算、及び第２演算を実行する場合、演算部１２２は、テーブル記録部１２３に記録されたテーブルを参照する。
演算部１２２が行う第１演算と第２演算では、第１集合と第２集合という概念が用いられる。
第１集合は、連番の自然数の集合である。第１集合に含まれる自然数のそれぞれは、管理者が管理ＩＤとして用いることが意図されたものである。したがって、第１集合に含まれる自然数の数は、管理者が発行しようとするユーザＩＤの数よりも多くされる。第１集合に含まれる連番の自然数は、は必ずしも１から始まる必要はないが、１から始まるのが便利である。
他方、第２集合は、連番となる可能性が０ではないが、事実上、連番ではない、飛び飛びの自然数の集合である。第２集合に含まれる自然数のそれぞれは、管理者がユーザＩＤとしてユーザに配布することが意図されたものである。第２集合に含まれる自然数の数は、第１集合に含まれる自然数の数と同一である。また、第２集合に含まれる自然数の中には必ず、第１集合に含まれる最大の自然数よりも大きい自然数が含まれる。第１集合に含まれる自然数と、第２集合に含まれる自然数は、一対一対応をしている。もっとも、第１集合に含まれる自然数と、第２集合に含まれる自然数との一対一対応は、両者に含まれる自然数を小さい順に対応させる等の規則的なものではなく、後述するようにランダムであることが多い。
演算部１２２が実行する第１演算は、第１集合に含まれるいずれかの自然数に対して実行される。第１演算が実行されると、その結果第２集合の中のいずれかの自然数が得られる。この場合に得られる第２集合の中の自然数は、その第２集合の中の自然数を得るために用いられた第１集合の中の自然数と、一対一対応したものとなるようになっている。他方、演算部１２２が実行する第２演算は、第２集合に含まれるいずれかの自然数に対して実行される。第２演算が実行されると、その結果第１集合の中のいずれかの自然数が得られる。この場合に得られる第１集合の中の自然数は、その第１集合の中の自然数を得るために用いられた第２集合の中の自然数と、一対一対応したものとなるようになっている。上述の第１演算と第２演算は、言葉を変えれば、第１集合の中の自然数と、第２集合の中の自然数を、一対一対応の関係を維持したまま、可逆に写像するものである。そのような演算を行うために必要なテーブルのデータが、テーブル記録部１２３に記録されている。
演算部１２２は、管理ＩＤデータを受取った場合には第１演算を実行して、ユーザＩＤ（第２集合の中の自然数）を得て、それについてのユーザＩＤデータを生成する。また、演算部１２２は、ユーザＩＤデータを受取った場合には第２演算を実行して、管理ＩＤ（第１集合の中の自然数）を得て、それについての管理ＩＤデータを生成する。
演算部１２２は、ユーザＩＤデータ又は管理ＩＤデータを生成した場合には、生成したユーザＩＤデータ又は管理ＩＤデータを出力部１２４に送るようになっている。
【００２３】
出力部１２４は、受取ったユーザＩＤデータ又は管理ＩＤデータを、コンピュータ１の外部に出力できるようにする処理を行うものである。これには限られないが、この実施形態では、ディスプレイ３にユーザＩＤデータに基づくユーザＩＤ、或いは管理ＩＤデータに基づく管理ＩＤを表示するために、ディスプレイ３に画像を表示させるための画像データを生成する。
もっとも、ユーザＩＤデータ又は管理ＩＤデータの出力の方法は、ディスプレイ３に表示するに限られず、例えば、ユーザに配布するカードにユーザＩＤを印刷するとか、インターネットを介して管理者等がユーザＩＤ或いは管理ＩＤを閲覧可能とする等もデータの出力の方法として考えられる。出力部１２４は、必要なデータの出力を行えるように必要に応じたユーザＩＤ又は管理ＩＤに対する処理を行えるようになっている。
この実施形態では、簡単のため、出力部１２４は、上述の如き画像データを生成するのみであることとする。出力部１２４は、生成した画像データをインタフェイス１１５に出力するようになっている。インタフェイス１１５は、その画像データをディスプレイ３に送るようになっている。
【００２４】
制御部１２５は、このコンピュータ１の全体の制御を行うとともに、テーブル記録部１２３内のテーブルのデータを生成し、テーブル記録部１２３に記録するものである。制御部１２５は、テーブルのデータの生成を、入力部１２１から送られてきた準備データに基いて行う。制御部１２５がどのようにしてテーブルのデータを生成するのかについては、追って述べることにする。
制御部１２５は、後述するデータを出力部１２４に送る場合もある。
【００２５】
以上説明したＩＤ管理装置としてのコンピュータ１の使用方法と、動作について説明する。
コンピュータ１をＩＤ管理装置として用いるには、まず、テーブル記録部１２３に対してテーブルのデータを書き込む処理を制御部１２５に実行させるべく、管理者は準備データである入力データの入力を入力装置２の操作を行うことによって行う。
【００２６】
かかる入力を行う場合、管理者は、まず、幾つのユーザＩＤを発行するかを決める。これは、発行されるユーザＩＤの数、つまり第２集合に含まれる自然数の個数を決定することを意味する。第２集合に含まれる自然数の個数が決まると、第１集合に含まれる自然数の数、つまり第１集合に含まれる連番である自然数の数が決まる。例えば、第１集合に含まれる自然数が１から始まるのであれば、第１集合に含まれる自然数は、発行すべきユーザＩＤの個数と同数となり、第１集合に含まれる最大の自然数は発行すべきユーザＩＤの個数と同一になる。また、第１集合に含まれる自然数が１から始まらないのであれあれば、第１集合に含まれる自然数の中の最大のものは、発行すべきユーザＩＤの個数に、第１集合の中の自然数の始まりとなる第１集合の中の最も小さい自然数を足し、それから１を引いたものとなる。いずれにせよ、これにより第１集合に含まれる自然数のうち、最大の数が求められる。
次いで、管理者は、その最大の数をｍとした場合において、ｍ＜ｍ１×ｍ２の条件を満たすｍ１及びｍ２を決定する。ただし、ｍ１及びｍ２は互いに素であることが条件となる。
例えば、１０００個のユーザＩＤが必要であり、且つ管理ＩＤが０００１から始まるとする。そうすると、管理ＩＤは、０００１〜１０００の１０００個である。この場合、上述のｍ＝１０００であるから、上述のｍ１及びｍ２は１０００＜ｍ１×ｍ２の条件を満たす数から選択する。両者は互いに素であり、共通の素因数も含まないのであるから、例えば、前者をある素数のＡ乗、後者を他の素数のＢ乗等とすれば、１０００＜ｍ１×ｍ２の条件を満たすｍ１及びｍ２を決定するのは容易である。例えば、ｍ１を３の３乗である２７とし、ｍ２を１１の２乗である１２１とした場合には、１０００＜ｍ１×ｍ２（＝３２６７）の条件が充足される。ここで、ｍ１×ｍ２は、第２集合に含まれ得る自然数の最大値を決定する、言い換えれば、第２集合に含まれ得る数の桁数を決定するものであるから、この数をより大きくすることにより、ユーザＩＤの桁数は膨れ上がる。例えば、ｍ１を３の３乗と５の３乗の積である３３７５とし、ｍ２を１１の２乗である１２１と１７の３乗である５９４４７３とした場合には、ｍ１×ｍ２＝２００６３４６３７５と、第２集合の中に含まれ得る最大の自然数は、１０桁にもなる。もっとも、自然数である０００００００００１〜２００６３４６３７５のうち、第２集合に含まれる自然数は、これらのうち１０００個に過ぎないから、０００００００００１〜００００００１０００までの自然数がたまたま第２集合に含まれる自然数として選択された場合には第２集合に含まれる自然数の最大値は００００００１０００にしかならないことは理論上あり得る。しかしながら、後述するような方法を用いることにより、第２集合に含まれることになる自然数は、１〜ｍ１×ｍ２で求められる自然数の中でランダム性をもって選択されることになるので、第２集合に含まれる自然数の最大値が００００００１０００にしかならないなどということは、確率的にまず生じない。
管理者は、ｍ１×ｍ２を決定したら、その２つの数を入力装置２を操作して入力する。その２つの数を特定するデータが、準備データである。なお、準備データの入力を行う場合には、ディスプレイ３に、準備データの入力を管理者に促すための画像が表示される。かかる画像の表示は、制御部１２５からの指示にしたがって出力部１２４が生成し、インタフェイス１１５を介してディスプレイ３に送られた画像データに基いて行われる。
準備データは、入力装置２からケーブル２Ａを介してコンピュータ１のインタフェイス１１５に送られ、インタフェイス１１５を介して入力部１２１へ送られる。
【００２７】
入力部１２１は、その準備データを制御部１２５に送る。
ここで、制御部１２５は、テーブルのデータを生成する。これには限られないが、この実施形態におけるテーブルのデータは、以下のようなＭ１と、Ｍ２のデータである。
Ｍ１は、０からｍ１−１までの自然数を適当に並べた数列である。仮にＭ１が２７であるとすれば、例えば、Ｍ１＝（２５、１５、８、１７、２６、２２、１０、１１、１８、２３、２、４、１、９、５、１３、３、６、２０、０、７、１２、２１、１４、１６、１９、２４）といった０〜２６までの自然数を並べた数列になる。
Ｍ２は、０からｍ２−１までの自然数を適当に並べた数列である。Ｍ２が仮に１２１だとすれば、Ｍ２は、Ｍ１の場合と同様に、０〜１２０までの数を適当に並べた数列となる。これら数列Ｍ１、Ｍ２の中の自然数の並び方はランダムであるべきであり、制御部１２５は公知、或いは周知の方法で、自然数の並びがランダム性を持つ数列Ｍ１、Ｍ２を生成する。
そして、上記２つの数列Ｍ１、Ｍ２を、テーブルのデータとして、制御部１２５はテーブル記録部１２３に記録する。
【００２８】
これにより、コンピュータ１に管理ＩＤからユーザＩＤを出力させる準備が整った。
管理者は、コンピュータ１に管理ＩＤからユーザＩＤを出力させる。
【００２９】
上述したように、管理ＩＤは、０００１〜１０００の１０００個である。管理者は、どの管理ＩＤに対応付けられたユーザＩＤを出力したいのかということを特定する入力を入力装置２を用いて行う。かかる入力が行われるに先立って、ディスプレイ３には、どの管理ＩＤに対するユーザＩＤを出力したいのかということを特定するための入力を行うことを管理者に促すための画像が表示される。かかる画像の表示は、制御部１２５からの指示にしたがって出力部１２４が生成し、インタフェイス１１５を介してディスプレイ３に送られた画像データに基いて行われる。かかる画像は、１つの管理ＩＤの入力を管理者に促すものであっても良いし、複数の、例えば、管理ＩＤ０００１〜管理ＩＤ００９９までのといったある範囲を特定するのに必要となる始点と終点となる管理ＩＤの入力を管理者に促すものであってもよい。
管理者は、例えば、管理ＩＤ０００１についてのユーザＩＤを生成したいのであれば、その管理ＩＤを指定する０００１の入力を入力装置２にて行い、管理ＩＤ０００２についてのユーザＩＤを生成したいのであれば、その管理ＩＤを指定する０００２の入力を入力装置２にて行う。或いは、０００１〜００９９と管理者が指定すると、管理者が、管理ＩＤ０００１〜管理ＩＤ００９９までの９９個の管理ＩＤと紐付けられたユーザＩＤの出力を望んでいるという意味合いの入力となる。この実施形態のコンピュータ１は、複数の管理ＩＤの入力をまとめて受取ることができ、複数の管理ＩＤの入力をまとめて受取った場合には、受取った複数の管理ＩＤに対応したユーザＩＤをまとめて生成できるようにされている。このようにすると、複数のユーザＩＤを一度の入力装置２の操作でまとめて生成できるので、管理者にとって便利である。
いずれにせよ、管理者が入力した、どの管理ＩＤに対応付けられたユーザＩＤを出力したいのかということを特定する入力データ、つまり管理ＩＤデータは、インタフェイス１１５から入力部１２１へと送られる。
入力部１２１は、管理ＩＤデータを演算部１２２に送る。
【００３０】
演算部１２２は、管理ＩＤデータを受取った場合、第１演算を行う。
第１演算は以下の数式にしたがって行われる。
ｙ＝Ｍ１［ｘ  ｍｏｄ  ｍ１］×ｍ２＋Ｍ２［ｘ  ｍｏｄ  ｍ２］
ここで、ｘは管理ＩＤに対応した自然数、ｙはユーザＩＤに対応した自然数、「Ｍ１［ｎ］」は、数列Ｍ１の中のｎ番目（ただし、最初の数を０番目と数える。）の数を意味し、「Ｍ２［ｎ］」は、数列Ｍ２の中のｎ番目（ただし、最初の数を０番目と数える。）の数を意味する。また、「ｐ  ｍｏｄ  ｑ」  は、ｐ、ｑがいずれも整数である場合に、ｐを法ｑの剰余系で表現した値、つまり、ｐをｑで割った場合の余りを意味する。演算部１２２は、「Ｍ１［ｎ］」と「Ｍ２［ｎ］」の演算を行うためにテーブル記録部１２３に記録されたテーブルのデータを参照するが、それ以外の部分については、上述の数式による演算を行えるようにされている。
具体的な数字を用いて計算例を示す。ただし、上述のＭ１とＭ２は、それらに含まれる自然数の数が多すぎて例としてわかりにくいので、ここではｍ１、ｍ２、Ｍ１、Ｍ２として、より簡素な例を用いる。
ここでは、ユーザＩＤとして３つの自然数が欲しいとする。その場合、管理ＩＤの数は３であり、管理ＩＤは、その最初の番号が１であるとすると、１、２、３となる。その場合、ｍは３である。ここで、ｍ１＝４、ｍ２＝３とする。これであれば、ｍ＝３＜ｍ１×ｍ２（＝１２）が充足される。
このとき、Ｍ１は、０〜３を並べ替えた数列であり、例えば、Ｍ１＝（１、３、０、２）であるとする。またこのときＭ２は、０〜２を並べ替えた数列であり、例えば、Ｍ２＝（２、０、１）であるとする。
まず、管理ＩＤ１に対してどのユーザＩＤが対応しているかを求める。このときの数式は、以下のようになる。なお、ｙに添えた文字は、その文字に対応した管理ＩＤに対応したユーザＩＤという意味である。
ｙ１＝Ｍ１［１  ｍｏｄ  ４］×３＋Ｍ２［１  ｍｏｄ  ３］
これを計算すると、
ｙ１＝Ｍ１［１］×３＋Ｍ２［１］
＝３×３＋０＝９
つまり、ｙ１＝９となる。
同様に、ｙ２を計算する。
ｙ２＝Ｍ１［２  ｍｏｄ  ４］×３＋Ｍ２［２  ｍｏｄ  ３］
＝Ｍ１［２］×３＋Ｍ２［２］
＝０×３＋１＝１
つまり、ｙ２＝１となる。
同様に、ｙ３を計算する。
ｙ３＝Ｍ１［３  ｍｏｄ  ４］×３＋Ｍ２［３  ｍｏｄ  ３］
＝Ｍ１［３］×３＋Ｍ２［０］
＝２×３＋２＝８
つまり、ｙ３＝８となる。
これにより、管理ＩＤ１に対してユーザＩＤ９が、管理ＩＤ２に対してユーザＩＤ１が、管理ＩＤ３に対してユーザＩＤ８が、それぞれ重複することなく割当てられる。上述の数式にしたがえば、すべての管理ＩＤに対して重複無く一対一対応した状態で、ユーザＩＤが割当てられる。
上記計算例によれば、管理ＩＤとユーザＩＤの桁数はすべての場合で一桁であった。しかしながら、Ｍ１、Ｍ２に含まれる自然数の数がより大きければ、例えば、既に例示したように、ｍ１を３３７５とし、ｍ２を５９４４７３とするがごときに、両者を大きな数として取れば、ユーザＩＤはより大きな数が出現することとなり、ユーザＩＤの桁数は管理ＩＤの桁数よりも一桁以上大きくなる。実際には、ユーザＩＤの桁数が管理ＩＤの桁数よりも一桁以上、できれば三桁程度以上大きくなるようにｍ１及びｍ２を決定するのが良い。
いずれにせよ、生成したユーザＩＤについてのデータであるユーザＩＤデータは、演算部１２２から出力部１２４へと送られる。なお、この実施形態では、ユーザＩＤデータは、そのユーザＩＤデータを生成するきっかけとなった管理ＩＤについての管理ＩＤデータと紐付けられた状態で出力部１２４に送られるものとする。
【００３１】
出力部１２４は、管理者が入力した管理ＩＤと、その管理ＩＤに一対一対応しているユーザＩＤとを、それらの対応関係を管理者が視覚的に認識できるようにディスプレイ３に表示するための画像データを生成する。
出力部１２４は、その画像データをインタフェイス１１５に出力し、インタフェイス１１５はその画像データをケーブル３Ａを介して、ディスプレイ３に送る。
ディスプレイ３の画面には、管理者が入力した管理ＩＤと、その管理ＩＤに一対一対応しているユーザＩＤとを、それらの対応関係を管理者が視覚的に認識できるような画像が表示される。
その画像中には例えば、管理者が出力を要求したユーザＩＤが１つだけの場合であれば、
「管理ＩＤ０００１…ユーザＩＤ２１５００９１２３３」
の如き画像が含まれることになろう。
また、管理者が出力を要求したユーザＩＤが複数、例えば３つの場合であれば、
「管理ＩＤ０００１…ユーザＩＤ２１５００９１２３３
管理ＩＤ０００２…ユーザＩＤ０８５７３２５６９３
管理ＩＤ０００３…ユーザＩＤ１２５４５６６５７８」
の如き画像が含まれることになろう。
このようにして、管理者は、希望した管理ＩＤに一対一対応したユーザＩＤを得ることができる。なお、このＩＤ管理装置としてのコンピュータ１で生成しうる数のユーザＩＤが未だに生成されていないのであれば、管理者は、更に管理ＩＤを指定して、その管理ＩＤに対応するユーザＩＤをいつでもコンピュータ１に追加で生成させることができる。
管理者は、上述のようにして生成されたユーザＩＤを、紙等に印刷してユーザに渡す、電子メールに記載して送信する、インターネット経由で閲覧させる等の適当な方法でユーザに配布すれば良い。
ユーザは、受取ったユーザＩＤを自分のユーザＩＤとして使用するが、ユーザも、管理者を除く第三者も、そのユーザＩＤに紐付けられた管理ＩＤが存在することを知らないし、知る必要もない。また、管理ＩＤからユーザＩＤを生成するための第１演算には、数列Ｍ１、Ｍ２が必要であるから、これを知らない第三者は、配布されているユーザＩＤから管理ＩＤを知ろうとしても、管理ＩＤを知ることができない。
【００３２】
他方、管理者は、ユーザから、ユーザＩＤについての問い合わせを受けた場合などに、発行されたユーザＩＤがどの管理ＩＤと対応付けられているのかを確認する必要が生じることがある。
そのような場合、管理者は、それと対応付けられている管理ＩＤを確認する対象となるユーザＩＤを、入力装置２にて入力する。この場合の入力データは、それと対応付けられている管理ＩＤを確認する対象となるユーザＩＤを特定するためのユーザＩＤデータとなる。ユーザＩＤデータは、ケーブル２Ａを介してコンピュータ１に送られ、インタフェイス１１５を介して、入力部１２１へと送られる。なお、ユーザＩＤデータの入力を行う場合には、ディスプレイ３に、ユーザＩＤデータの入力を管理者に促すための画像が表示される。かかる画像の表示は、制御部１２５からの指示にしたがって出力部１２４が生成し、インタフェイス１１５を介してディスプレイ３に送られた画像データに基いて行われる。
入力部１２１は受取ったユーザＩＤデータを演算部１２２へと送る。
【００３３】
ユーザＩＤデータを受取った場合、演算部１２２は、上述した第２演算を行う。
第２演算は、入力されたユーザＩＤに対する演算であって、その結果得られる解が、そのユーザＩＤと一対一対応している管理ＩＤとなるものである。
これには限られないが、この実施形態では、第２演算は以下のようにして実行される。
第２演算は、
ａ＝ｉｎｔ（ｙ／ｍ２）
ｂ＝ｙ−ａ×ｍ２
として、
ａ≡ｘ  ｍｏｄ  ｋ１（「≡」は合同、以下同じ。）
ｂ≡ｘ  ｍｏｄ  ｋ２
の合同方程式を変形した、
ａｘ＋ｂｘ＝ｃの不定方程式を解くことにより求めることができる。かかる不定方程式は、ａ、ｂ、ｋ１、ｋ２が整数の場合であって、且つｋ１とｋ２とが互いに素である場合には、解が一意に定まることが知られている。ここでｋ１とｋ２とを得ることができるが、最終的に求めたいｘは、下記の式によって初めて求めることができる。
ｘ＝Ｍ１［ｋ１］×ｍ２＋Ｍ２［ｋ２］
ここで、数列Ｍ１、Ｍ２を参照することが必要となるのが、かかる数列Ｍ１、Ｍ２はテーブル記録部１２３に上記のテーブルとして記録されているので、演算部１２２はテーブル記録部１２３に記録されたテーブルを参照して、正しいｘを特定することができる。
これにより、ｘつまり管理ＩＤが定まる。演算部１２２は、管理ＩＤについての管理ＩＤデータを生成し、それを出力部１２４に送る。これには限られないが、この実施形態の出力部１２４は、生成した管理ＩＤデータを、その管理ＩＤデータを生成するきっかけとなったユーザＩＤを特定するユーザＩＤデータとともに、両者を互いに紐付けた状態で出力部１２４に送るようになっている。
【００３４】
出力部１２４は、受取った管理ＩＤデータと、ユーザＩＤデータとに基づき、互いに一対一対応している管理ＩＤとユーザＩＤとを、それらの一対一対応の関係が視覚的に管理者が把握できるような状態とした画像を、ディスプレイ３に表示させるための画像データを生成する。
生成された画像データはインタフェイス１１５から、ディスプレイ３に送られる。ディスプレイ３には、その画像データに基づく画像が表示される。当該画像には、管理者が入力したユーザＩＤと、そのユーザＩＤと一対一対応した管理ＩＤとが、それらの一対一対応が視覚的に理解できるような状態で表示される。その画像中には、例えば、「ユーザＩＤ２１５００９１２３３…管理ＩＤ０００１」といった表示が含まれる。
【００３５】
＜変形例１＞
上述のＩＤ管理装置としてのコンピュータ１では、テーブル記録部１２３に記録されるテーブルのデータは、管理者の入力する準備データに基いて生成されるものであった。より詳細には、管理者は、上述の互いに素の２つの自然数であるｍ１及びｍ２の入力を行い、それに基いてテーブル記録部１２３に書き込むべきテーブルである数列Ｍ１及びＭ２を制御部１２５が生成することとなっていた。
もっともかかるテーブルは、コンピュータ１を本願発明のＩＤ管理装置として機能させるためのコンピュータプログラムがコンピュータ１にインストールされた時点からテーブル記録部１２３に記録されていても構わない。また、コンピュータプログラムがコンピュータ１にインストールされた時点でテーブル記録部１２３に複数のテーブルが記録されており、実際にユーザＩＤを発行する場合には、その複数のテーブルのうちの１つを管理者に選択させるような仕組みを採用してもよい。
または、上述の実施形態では、準備データを受け付けた制御部１２５が数列Ｍ１及びＭ２を生成することとなっていたが、管理者がかかる数列Ｍ１及びＭ２を自ら生成して、数列Ｍ１及びＭ２についてのデータを入力装置２から自ら入力することもできる。この場合には、制御部１２５は受取った数列Ｍ１及びＭ２のデータをそのままテーブル記録部１２３に記録することになる。
いずれにせよ、ユーザＩＤの発行が行われるまでのどこかの段階でテーブル記録部１２３にテーブルが記録されていることが必要なのであるが、それが達成されている限りにおいてはテーブルを記録するために、或いはテーブルを決定するために必要な作業のうちのどの部分をコンピュータ１が担い、どの部分を管理者が担うかということの仕様については、適宜決定することができる。
【００３６】
＜変形例２＞
変形例２は、上述の実施形態における第１演算と第２演算とについての変形である。
上述の実施形態における第１演算と第２演算は、剰余系の概念を利用した演算であった。変形例２は、より簡単なテーブルを使った、より簡単な演算を、第１演算と第２演算として用いる。
変形例２で用いるテーブルは、例えば、図４（Ａ）に示したようなものである。このテーブルでは、上段に記載の０〜９の一組の数字と、下段に記載の０〜９の他の一組の数字とを、その上下に位置するものとの間でそれぞれ相互に変換することとしている。０と３を相互に変換する、１と９を相互に変換する、２と７を相互に変換する…、というのがこの図４（Ａ）の意味するところである。
ここで、例えば、管理ＩＤ０１〜２０に対応したユーザＩＤを発行するとする。図４（Ａ）の表における上側が管理ＩＤにおける数字に、同下側がユーザＩＤにおける数字に対応するとする。
例えば、管理ＩＤ０１であれば、図４（Ａ）の表によれば、０は３に、１は９にそれぞれ変換される。かかる変換が第１演算である。したがって、管理ＩＤ０１に対応するユーザＩＤは３９になる。ユーザＩＤからそれに対応する管理ＩＤを求めることも、図４（Ａ）の表を用いて上記と逆の処理を行うことにより実現することができる。こちらの変換が第２演算である。
この場合においても、管理ＩＤとユーザＩＤとは一対一対応する。また、この場合においても、管理ＩＤの中の最大の自然数である２０よりも、大きい自然数が第２集合であるユーザＩＤの集合の中に含まれる。最大のユーザＩＤは、管理ＩＤ１１に対応する９９である。
【００３７】
変形例２で用いるテーブルは、図４（Ｂ）に示したようなものであってもよい。このテーブルでは、上段に記載の０〜９の一組の数字と、下段に記載の２８、５７、９３……８２、６４という他の一組の数字とを、その上下に位置するものとの間でそれぞれ相互に変換することとしている。０と２８を相互に変換する、１と５７を相互に変換する、２と９３を相互に変換する…、というのがこの図４（Ｂ）の意味するところである。
ここで、例えば、管理ＩＤ０１〜２０に対応したユーザＩＤを発行するとする。図４（Ｂ）の表における上側が管理ＩＤにおける数字に、同下側がユーザＩＤにおける数字に対応するとする。
例えば、管理ＩＤ０１であれば、図４（Ｂ）の表によれば、０は２８に、１は５７にそれぞれ変換される。かかる変換が第１演算である。したがって、管理ＩＤ０１に対応するユーザＩＤは２８５７になる。ユーザＩＤからそれに対応する管理ＩＤを求めることも、ユーザＩＤを二桁ずつに分割した上で、その二桁の数字を図４（Ｂ）の表を用いて下段から上段に変換する、上記と逆の処理を行うことにより実現することができる。こちらの変換が第２演算である。
この場合においても、管理ＩＤとユーザＩＤとは一対一対応する。また、この場合においても、管理ＩＤの中の最大の自然数である２０よりも、大きい自然数が第２集合であるユーザＩＤの集合の中に含まれる。最大のユーザＩＤは、管理ＩＤ２０に対応する９３２８である。
【００３８】
＜変形例３＞
変形例３は、上述の実施形態における第１演算と第２演算とについての変形である。
この場合、第１演算と第２演算とは、以下のようなものとなる。
第１演算では、擬似乱数の生成を用いる。擬似乱数は、例えば、ある初期値（２つ以上の場合もある）を用い、過去の値を所定の関数に代入することにより、新しい値を順次作るという方法を繰り返し行うことにより生成される。次々に生成される数字（自然数）は乱数ではあるものの、完全な乱数ではなく、同じ初期値を用いた場合には繰り返し発生させられる、言い換えれば初期値依存性のあるものとなるから、その意味で「擬似」乱数と呼ばれる。
上述の「値」を作るのに使われる関数の例として、以下の（ａ）〜（ｃ）を挙げる。以下の（ａ）〜（ｃ）はいずれも、Ｎ番目の「値」であるＸＮを作るための式である。また、Ｐ、Ｑ、Ｒ、Ｓは自然数である。
（ａ）（ＸＮ）＝（ＸＮ−１）Ｐ＋（ＸＮ−２）Ｑ
（ｂ）（ＸＮ）＝（ＸＮ−１）Ｐ
（ｃ）（ＸＮ）＝（ＸＮ−１）Ｐ（ＸＮ−２）Ｑ（ＸＮ-3）R（ＸＮ−4）S
（ａ）は、過去の「値」２つを用い、それらをそれぞれＰ乗とＱ乗したものを足し合わせることにより、新しい「値」を生成する。なお、正確には、過去の「値」２つを用い、それらをＰ乗とＱ乗したものを足し合わせると、桁数が増えるため、実際には得られた値のうちの頭から適当な桁数を抜き出す、末尾から適当な桁数を抜き出す、或いはその値のうちの適当な部分から適当な桁数を抜き出すこと等により、新しい「値」を生成する。
（ｂ）は、過去の「値」１つを用い、それをＰ乗したものの桁数を上述のよう  に整理したものを新しい「値」とするものである。
（ｃ）は、過去の「値」４つを用い、それらをそれぞれＰ乗、Ｑ乗、Ｒ乗、Ｓ乗したものの積を取り、その後上述したように桁数を整理したものを新しい「値」とするものである。
変形例３では、上述の（ａ）〜（ｃ）の数式のいずれかを選択し、それに基いて例えば、１０桁の自然数を連続して生成する。
例えば、管理ＩＤを０００１〜１０００まで作るとして、その場合には、まず、上述の（ａ）〜（ｃ）の数式のいずれかを選択し、擬似乱数を生成する。
管理ＩＤ０００１についての擬似乱数は、上述の数式における（Ｘ１）となる。同様に、管理ＩＤ０００２についての擬似乱数は、上述の数式における（Ｘ２）となり、管理ＩＤ０００３についての擬似乱数は、上述の数式における（Ｘ３）となり、……管理ＩＤ１０００についての擬似乱数は、上述の数式における（Ｘ１０００）となる。これが第１演算となる。かかる第１演算を行うためには、演算部１２２が参照すべきものとして初期値が必要となる。初期値は数式（ａ）であれば、（Ｘ０）と（Ｘ−１）が必要であり、数式（ｂ）であれば、（Ｘ０）が必要であり、数式（ｃ）であれば、（Ｘ０）と（Ｘ−１）と（Ｘ−２）と（Ｘ−３）が必要となる。それら必要となる初期値が、この変形例３では、テーブルとしてテーブル記録部１２３に記録されることになる。
他方、自然数であり且つ擬似乱数であるユーザＩＤから管理ＩＤを演算で求める方法は以下のとおりである。
上述した通り、擬似乱数は一見すれば乱数ではあるが、同じ初期値と同じ数式（アルゴリズム）とを用いれば、同じ数列を何度でも繰り返し生成することができるものである。
あるユーザＩＤが、それと対応付けられた管理ＩＤを生成するためにコンピュータ１に入力されたとする。そのとき、演算部１２２は、初期値に基いて擬似乱数を次々に生成する。次々に生成された擬似乱数の中には必ず入力されたユーザＩＤと同じものがある。演算部１２２は、入力されたユーザＩＤと同じ擬似乱数が初期値から幾つ目に作られたものかカウントしている。その擬似乱数が生成された順番が、そのユーザＩＤの管理ＩＤとなる。例えば、入力されたユーザＩＤと同じ擬似乱数が、初期値から順に生成された擬似乱数のうち１５０番目に生成されたものと一致したとする。その場合、その擬似乱数は（Ｘ０１５０）であり、その管理ＩＤは０１５０であるということになる。
この場合においても、管理ＩＤとユーザＩＤとは一対一対応する。また、この場合においても、管理ＩＤの中の最大の自然数である１０００よりも、大きい自然数が第２集合であるユーザＩＤの集合の中に含まれることになる。ユーザＩＤは１０桁であるから、それは当然である。
【００３９】
＜変形例４＞
変形例４は、上述の実施形態における第１演算と第２演算とについての変形であり、且つ変形例１〜３の変形でもある。
上述の実施形態、及び変形例１〜３はいずれも、管理ＩＤが自然数（正の整数）であり、ユーザＩＤも自然数（正の整数）であった。
上述の実施形態、及び変形例１〜３のいずれにおいても、管理ＩＤを負の整数とし、ユーザＩＤを負の整数とすることが可能である。例えば、上述の実施形態、及び変形例１〜３等で、管理ＩＤが０００１〜１０００であったのを、変形例４では、−１０００〜−０００１とすることが可能である。この場合、それら管理ＩＤのそれぞれに一対一対応するユーザＩＤは、上述の実施形態、及び変形例１〜３で説明したユーザＩＤに「−」の符号が付いたものとなる。
言い換えれば、変形例４の管理ＩＤは、上述の実施形態、及び変形例１〜３で説明した管理ＩＤを、数直線上で０を中心に折り返したものとすることができ、また、変形例４のユーザＩＤは、上述の実施形態、及び変形例１〜３で説明したユーザＩＤを、数直線上で０を中心に折り返したものとすることができる。
変形例４における第１演算及び第２演算の方法は、管理ＩＤとユーザＩＤとの双方に「−」の符号を付す以外の部分においては、上述の実施形態、及び変形例１〜３で説明したものを流用することができる。
【符号の説明】
【００４０】
１  コンピュータ
２  入力装置
２Ａ  ケーブル
３  ディスプレイ
３Ａ  ケーブル
１２１  入力部
１２２  演算部
１２３  テーブル記録部
１２４  出力部
１２５  制御部
【図１】
2018042492.tif 000003
【図２】
2018042492.tif 000004
【図３】
2018042492.tif 000005
【図４】
2018042492.tif 000006
【手続補正書】
【提出日】平成29年11月24日(2017.11.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
連番の自然数の集合である第１集合に含まれる前記自然数のそれぞれを、管理者が用いる管理ＩＤとして用いるとともに、前記第１集合に含まれる最大の自然数よりも大きい自然数を含み、且つそれに含まれる自然数の数が前記第１集合に含まれる数と同数の第２集合に含まれる前記自然数のそれぞれを、ユーザに配布するユーザＩＤとして用いるようにするＩＤ管理装置であって、
入力を行う入力部と、演算を行う演算部と、演算結果を出力する出力部と、前記演算部が演算を行うときに参照するテーブルを記録する記録部と、を備えており、
前記入力部から、前記第１集合に含まれる前記自然数の１つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第１演算を行った結果として、前記第２集合に含まれる前記自然数の１つを生成するようになっており、且つ前記出力部は、前記第１演算の結果として生成された前記第２集合に含まれる前記自然数の１つを出力するようになっているとともに、
前記入力部から、前記第２集合に含まれる前記自然数の１つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第２演算を行った結果として、前記第１集合に含まれる前記自然数の１つを生成するようになっており、且つ前記出力部は、前記第２演算の結果として生成された前記第１集合に含まれる前記自然数の１つを出力するようになっているとともに、
前記第１集合に含まれる自然数のそれぞれと、前記第２集合に含まれる自然数のそれぞれとは、一対一対応しており、前記第１演算を行うために、前記第１集合における前記自然数のうちの任意のものを入力した場合には、入力された前記第１集合における前記自然数に対応した前記第２集合に含まれる前記自然数が出力されるようになっており、且つ前記第２演算を行うために、前記第２集合における前記自然数のうちの任意のものを入力した場合には、入力された前記第２集合における前記自然数に対応した前記第１集合に含まれる前記自然数が出力されるようになっており、且つ、
前記第１集合に含まれる最大の数よりもそれらの積が大きな数となる互いに素である２つの整数ｍ１、及びｍ２のそれぞれに基いて生成された、０からｍ１−１までの自然数を適当に並べた数列であるＭ１、及び０からｍ２−１までの自然数を適当に並べた数列であるＭ２が、前記テーブルとして前記記録部に記録されており、
前記演算部は、前記第１集合に含まれる自然数のうち前記入力部から入力されるものをｘとした場合に、前記出力部から出力される前記第２集合に含まれる自然数を、
ｙ＝Ｍ１［ｘ  ｍｏｄ  ｍ１］×ｍ２＋Ｍ２［ｘ  ｍｏｄ  ｍ２］
（ただし、「Ｍ１［ｎ］」は、数列Ｍ１の中のｎ番目（ただし、最初の数を０番目と数える。）の数を意味し、「Ｍ２［ｎ］」は、数列Ｍ２の中のｎ番目（ただし、最初の数を０番目と数える。）の数を意味する。また、「ｐ  ｍｏｄ  ｑ」  は、ｐ、ｑがいずれも整数である場合に、ｐを法ｑの剰余系で表現した値（言い換えれば、ｐをｑで割った場合の余り）を意味する。）
の演算により求めるようになっている、
ＩＤ管理装置。
【請求項２】
前記第１集合に含まれる前記自然数のうちの最大のものと、前記第２集合に含まれる前記自然数のうちの最大のものとを比較すると、後者は前者よりも一桁以上大きな数である、
請求項１記載のＩＤ管理装置。
【請求項３】
連番の自然数の集合である第１集合に含まれる前記自然数のそれぞれを、管理者が用いる管理ＩＤとして用いるとともに、前記第１集合に含まれる最大の自然数よりも大きい自然数を含み、且つそれに含まれる自然数の数が前記第１集合に含まれる数と同数の第２集合に含まれる前記自然数のそれぞれを、ユーザに配布するユーザＩＤとして用いるようにする、演算を行う演算部と、前記演算部が演算を行うときに参照するテーブルを記録する記録部と、を備えているＩＤ管理装置の前記演算部が実行する方法であって、
前記演算部が実行する、
前記第１集合に含まれる前記自然数の１つが入力されたときに、前記記録部に記録されたテーブルを参照して所定の演算である第１演算を行った結果として、前記第２集合に含まれる前記自然数の１つを生成するとともに、前記第１演算の結果として生成された前記第２集合に含まれる前記自然数の１つを出力する過程、
前記第２集合に含まれる前記自然数の１つが入力されたときに、前記記録部に記録されたテーブルを参照して所定の演算である第２演算を行った結果として、前記第１集合に含まれる前記自然数の１つを生成するとともに、前記第２演算の結果として生成された前記第１集合に含まれる前記自然数の１つを出力する過程、
を含み、
前記第１集合に含まれる自然数のそれぞれと、前記第２集合に含まれる自然数のそれぞれとは、一対一対応しており、前記第１演算を行うために、前記第１集合における前記自然数のうちの任意のものが入力された場合には、入力された前記第１集合における前記自然数に対応した前記第２集合に含まれる前記自然数を出力し、且つ前記第２演算を行うために、前記第２集合における前記自然数のうちの任意のものが入力された場合には、入力された前記第２集合における前記自然数に対応した前記第１集合に含まれる前記自然数を出力し、且つ、
前記第１集合に含まれる最大の数よりもそれらの積が大きな数となる互いに素である２つの整数ｍ１、及びｍ２のそれぞれに基いて生成された、０からｍ１−１までの自然数を適当に並べた数列であるＭ１、及び０からｍ２−１までの自然数を適当に並べた数列であるＭ２が、前記テーブルとして前記記録部に記録されており、
前記演算部は、前記第１集合に含まれる自然数のうち入力されるものをｘとした場合に、出力される前記第２集合に含まれる自然数を、
ｙ＝Ｍ１［ｘ  ｍｏｄ  ｍ１］×ｍ２＋Ｍ２［ｘ  ｍｏｄ  ｍ２］
（ただし、「Ｍ１［ｎ］」は、数列Ｍ１の中のｎ番目（ただし、最初の数を０番目と数える。）の数を意味し、「Ｍ２［ｎ］」は、数列Ｍ２の中のｎ番目（ただし、最初の数を０番目と数える。）の数を意味する。また、「ｐ  ｍｏｄ  ｑ」  は、ｐ、ｑがいずれも整数である場合に、ｐを法ｑの剰余系で表現した値（言い換えれば、ｐをｑで割った場合の余り）を意味する。）
の演算により求める、
方法。
【請求項４】
連番の自然数の集合である第１集合に含まれる前記自然数のそれぞれを、管理者が用いる管理ＩＤとして用いるとともに、前記第１集合に含まれる最大の自然数よりも大きい自然数を含み、且つそれに含まれる自然数の数が前記第１集合に含まれる数と同数の第２集合に含まれる前記自然数のそれぞれを、ユーザに配布するユーザＩＤとして用いるようにするＩＤ管理装置として、コンピュータを機能させるためのコンピュータプログラムであって、
前記コンピュータを、
入力を行う入力部と、演算を行う演算部と、演算結果を出力する出力部と、前記演算部が演算を行うときに参照するテーブルを記録する記録部と、として機能させるためのものであり、
前記入力部から、前記第１集合に含まれる前記自然数の１つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第１演算を行った結果として、前記第２集合に含まれる前記自然数の１つを生成するようになっており、且つ前記出力部は、前記第１演算の結果として生成された前記第２集合に含まれる前記自然数の１つを出力するようになっているとともに、
前記入力部から、前記第２集合に含まれる前記自然数の１つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第２演算を行った結果として、前記第１集合に含まれる前記自然数の１つを生成するようになっており、且つ前記出力部は、前記第２演算の結果として生成された前記第１集合に含まれる前記自然数の１つを出力するようになっているとともに、
前記第１集合に含まれる自然数のそれぞれと、前記第２集合に含まれる自然数のそれぞれとは、一対一対応しており、前記第１演算を行うために、前記第１集合における前記自然数のうちの任意のものを入力した場合には、入力された前記第１集合における前記自然数に対応した前記第２集合に含まれる前記自然数が出力されるようになっており、且つ前記第２演算を行うために、前記第２集合における前記自然数のうちの任意のものを入力した場合には、入力された前記第２集合における前記自然数に対応した前記第１集合に含まれる前記自然数が出力されるようになっており、且つ、
前記第１集合に含まれる最大の数よりもそれらの積が大きな数となる互いに素である２つの整数ｍ１、及びｍ２のそれぞれに基いて生成された、０からｍ１−１までの自然数を適当に並べた数列であるＭ１、及び０からｍ２−１までの自然数を適当に並べた数列であるＭ２が、前記テーブルとして前記記録部に記録されており、
前記演算部は、前記第１集合に含まれる自然数のうち前記入力部から入力されるものをｘとした場合に、前記出力部から出力される前記第２集合に含まれる自然数を、
ｙ＝Ｍ１［ｘ  ｍｏｄ  ｍ１］×ｍ２＋Ｍ２［ｘ  ｍｏｄ  ｍ２］
（ただし、「Ｍ１［ｎ］」は、数列Ｍ１の中のｎ番目（ただし、最初の数を０番目と数える。）の数を意味し、「Ｍ２［ｎ］」は、数列Ｍ２の中のｎ番目（ただし、最初の数を０番目と数える。）の数を意味する。また、「ｐ  ｍｏｄ  ｑ」  は、ｐ、ｑがいずれも整数である場合に、ｐを法ｑの剰余系で表現した値（言い換えれば、ｐをｑで割った場合の余り）を意味する。）
の演算により求めるようになっている、
コンピュータプログラム。
【請求項５】
連番の負の整数の集合である第１集合に含まれる前記負の整数のそれぞれを、管理者が用いる管理ＩＤとして用いるとともに、前記第１集合に含まれる最小の負の整数よりも小さい負の整数を含み、且つそれに含まれる負の整数の数が前記第１集合に含まれる数と同数の第２集合に含まれる前記負の整数のそれぞれを、ユーザに配布するユーザＩＤとして用いるようにするＩＤ管理装置であって、
入力を行う入力部と、演算を行う演算部と、演算結果を出力する出力部と、前記演算部が演算を行うときに参照するテーブルを記録する記録部と、を備えており、
前記入力部から、前記第１集合に含まれる前記負の整数の１つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第１演算を行った結果として、前記第２集合に含まれる前記負の整数の１つを生成するようになっており、且つ前記出力部は、前記第１演算の結果として生成された前記第２集合に含まれる前記負の整数の１つを出力するようになっているとともに、
前記入力部から、前記第２集合に含まれる前記負の整数の１つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第２演算を行った結果として、前記第１集合に含まれる前記負の整数の１つを生成するようになっており、且つ前記出力部は、前記第２演算の結果として生成された前記第１集合に含まれる前記負の整数の１つを出力するようになっているとともに、
前記第１集合に含まれる負の整数のそれぞれと、前記第２集合に含まれる負の整数のそれぞれとは、一対一対応しており、前記第１演算を行うために、前記第１集合における前記負の整数のうちの任意のものを入力した場合には、入力された前記第１集合における前記負の整数に対応した前記第２集合に含まれる前記負の整数が出力されるようになっており、且つ前記第２演算を行うために、前記第２集合における前記負の整数のうちの任意のものを入力した場合には、入力された前記第２集合における前記負の整数に対応した前記第１集合に含まれる前記負の整数が出力されるようになっており、且つ、
前記第１集合に含まれる最大の数よりもそれらの積が小さな数となる互いに素である２つの整数ｍ１、及びｍ２のそれぞれに基いて生成された、０からｍ１＋１までの自然数を適当に並べた数列であるＭ１、及び０からｍ２＋１までの自然数を適当に並べた数列であるＭ２が、前記テーブルとして前記記録部に記録されており、
前記演算部は、前記第１集合に含まれる負の整数のうち前記入力部から入力されるものをｘとした場合に、前記出力部から出力される前記第２集合に含まれる負の整数を、
ｙ＝Ｍ１［ｘ  ｍｏｄ  ｍ１］×ｍ２＋Ｍ２［ｘ  ｍｏｄ  ｍ２］
（ただし、「Ｍ１［ｎ］」は、数列Ｍ１の中の０から順に数えた場合におけるｎ番目（ただし、最初の数を０番目と数える。）の数を意味し、「Ｍ２［ｎ］」は、数列Ｍ２の中の０から順に数えた場合におけるｎ番目（ただし、最初の数を０番目と数える。）の数を意味する。また、「ｐ  ｍｏｄ  ｑ」  は、ｐ、ｑがいずれも整数である場合に、ｐを法ｑの剰余系で表現した値（言い換えれば、ｐをｑで割った場合の余り（負の整数））を意味する。）
の演算により求めるようになっている、
ＩＤ管理装置。
【国際調査報告】
2018042492.tif 000007
2018042492.tif 000008
2018042492.tif 000009
2018042492.tif 000010