JP6326176B1 - Id管理装置、id管理方法、コンピュータプログラム - Google Patents
Id管理装置、id管理方法、コンピュータプログラム Download PDFInfo
- Publication number
- JP6326176B1 JP6326176B1 JP2017528980A JP2017528980A JP6326176B1 JP 6326176 B1 JP6326176 B1 JP 6326176B1 JP 2017528980 A JP2017528980 A JP 2017528980A JP 2017528980 A JP2017528980 A JP 2017528980A JP 6326176 B1 JP6326176 B1 JP 6326176B1
- Authority
- JP
- Japan
- Prior art keywords
- calculation
- input
- natural numbers
- unit
- natural
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000004590 computer program Methods 0.000 title claims description 14
- 238000007726 management method Methods 0.000 title description 195
- 238000004364 calculation method Methods 0.000 claims abstract description 197
- 238000000034 method Methods 0.000 claims description 34
- 230000004048 modification Effects 0.000 description 28
- 238000012986 modification Methods 0.000 description 28
- 230000006870 function Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 5
- 208000019901 Anxiety disease Diseases 0.000 description 4
- 230000036506 anxiety Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
連番の管理IDと、管理IDと一対一対応する連番でなく且つ管理IDよりも桁数の大きいユーザIDとを用いるID管理装置を、管理IDとユーザIDとを互いに紐付けて記録したデータベースを不要なように改良する。ID管理装置としてのコンピュータ1は、演算部122とテーブル記録部123を備えている。コンピュータ1には、管理IDを入力可能であり、管理IDが入力されると、演算部122がテーブル記録部123に記録されたテーブルを参照して第1演算を行いユーザIDを都度生成する。コンピュータ1には、ユーザIDを入力可能であり、ユーザIDが入力されると、演算部122がテーブル記録部123に記録されたテーブルを参照して第2演算を行い管理IDを都度生成する。
Description
本発明は、互いにユニークな多数のIDを管理するための技術に関する。
互いにユニークな多数のIDが用いられる場面が良くある。典型的には、多数のユーザのそれぞれに対して、多数のユーザを管理すべき管理者が、それぞれが他に対してユニークなIDを割り振るということが行われている。
例えば、1000人のユーザにIDを割り振るとする。その場合、自然数を用いるのであれば、例えば、0001〜1000という1000個のIDを割り振ることができる。
これは最も簡単なIDの割り振り方であり、ユーザを管理するという目的からすれば、このようなIDでも一応目的を果たすことは可能である。
例えば、1000人のユーザにIDを割り振るとする。その場合、自然数を用いるのであれば、例えば、0001〜1000という1000個のIDを割り振ることができる。
これは最も簡単なIDの割り振り方であり、ユーザを管理するという目的からすれば、このようなIDでも一応目的を果たすことは可能である。
しかしながら、上述の如きIDの割り振り方では不十分なこともある。上述の如きIDの割り振り方は、見た目にも極めて単純である。したがって、自分のユーザIDを悪意の第三者に看破されたら、という不安をユーザに抱かせがちである。
ユーザIDには、ユーザの氏名、住所等の個人情報が紐付けられることもあるため、ユーザIDを悪意の第三者に看破されただけでは、悪意の第三者にユーザの個人情報を知られる等の不具合が即座に生じるというわけでもないが、ユーザIDの漏洩がそのような不具合に繋がるというユーザのそこはかとない不安は確実に存在する。
ユーザIDには、ユーザの氏名、住所等の個人情報が紐付けられることもあるため、ユーザIDを悪意の第三者に看破されただけでは、悪意の第三者にユーザの個人情報を知られる等の不具合が即座に生じるというわけでもないが、ユーザIDの漏洩がそのような不具合に繋がるというユーザのそこはかとない不安は確実に存在する。
そのような点を考慮して、以下のような技術が汎用されている。
その技術では、ユーザに発行するユーザが知るIDであるユーザIDと、管理者が使用するIDである管理IDが異なるものとされる。
例えば、1000人のユーザにユーザIDを配布するとする。その場合、各ユーザに配布されるユーザIDは例えば、1000よりも遥かに大きな自然数の中から選ばれた1000個の自然数とされる。具体例を挙げるのであれば、この場合のユーザIDは、例えば、8桁の数の中から、つまり、00000001〜99999999の中から選ばれた1000個の数とされる。この場合であれば、8桁の数の中には、そもそもユーザIDとして使用されていないものが相当数含まれている。そのような使用されない数の存在が、ユーザの安心感に繋がる。このようなユーザIDは、例えば、8桁の数の中から数を1つずつランダムに選択することによって生成される。
他方、上述の如きユーザIDは、ユーザの安心感という面からすれば優れているが、ユーザを管理する管理者側からすれば非常に扱いにくいものとなる。それは、上述の如きユーザIDのそれぞれは、飛び飛びの数字であって、連番でないことに主に起因する。そこで、上述の如きユーザIDを用いる場合には、管理者は、管理者用の管理IDをユーザIDとは別に作る。この管理IDは管理者の利便性を高めるため、連番とされる。必ずしも0001から始まる必要はないが、一般的には1000人のユーザを管理するのであれば、管理IDは、0001〜1000とされる。
管理IDのそれぞれは、ユーザIDに1つずつ紐付けられる。それにより、管理者は、管理IDを介してランダムな数字であるユーザIDを管理することができるようになる。
その技術では、ユーザに発行するユーザが知るIDであるユーザIDと、管理者が使用するIDである管理IDが異なるものとされる。
例えば、1000人のユーザにユーザIDを配布するとする。その場合、各ユーザに配布されるユーザIDは例えば、1000よりも遥かに大きな自然数の中から選ばれた1000個の自然数とされる。具体例を挙げるのであれば、この場合のユーザIDは、例えば、8桁の数の中から、つまり、00000001〜99999999の中から選ばれた1000個の数とされる。この場合であれば、8桁の数の中には、そもそもユーザIDとして使用されていないものが相当数含まれている。そのような使用されない数の存在が、ユーザの安心感に繋がる。このようなユーザIDは、例えば、8桁の数の中から数を1つずつランダムに選択することによって生成される。
他方、上述の如きユーザIDは、ユーザの安心感という面からすれば優れているが、ユーザを管理する管理者側からすれば非常に扱いにくいものとなる。それは、上述の如きユーザIDのそれぞれは、飛び飛びの数字であって、連番でないことに主に起因する。そこで、上述の如きユーザIDを用いる場合には、管理者は、管理者用の管理IDをユーザIDとは別に作る。この管理IDは管理者の利便性を高めるため、連番とされる。必ずしも0001から始まる必要はないが、一般的には1000人のユーザを管理するのであれば、管理IDは、0001〜1000とされる。
管理IDのそれぞれは、ユーザIDに1つずつ紐付けられる。それにより、管理者は、管理IDを介してランダムな数字であるユーザIDを管理することができるようになる。
上述の如き、ユーザIDと、管理IDとを用いる技術は実用されており、一定の効果をあげている。しかしながら、かかる技術にも改良すべき点がある。
上述の技術においては、いずれも多数の管理IDとユーザIDとを一対一対応させた状態で紐付けることが必要である。かかる管理IDとユーザIDとの紐付けはコンピュータを用いて行われており、一般に管理IDとユーザIDとを紐付けた表のデータを記録したデータベースを用いて実現されている。
つまり、管理者は、ある管理IDと紐付けられたユーザIDを知りたいと思った場合には、コンピュータにその管理IDを打ち込む。そうすると、コンピュータは、上述のデータベースを参照して、その管理IDと紐付けられたユーザIDを出力する(例えば、コンピュータと接続されたディスプレイにユーザIDを表示する。)。他方、管理者は、あるユーザIDと紐付けられた管理IDを知りたいと思った場合には、コンピュータにそのユーザIDを打ち込む。そうすると、コンピュータは、上述のデータベースを参照して、そのユーザIDと紐付けられた管理IDを出力する。それにより、管理者は、管理IDからそれに紐付けられたユーザIDを、或いはユーザIDからそれに紐付けられた管理IDを知ることができる。
上述の技術においては、いずれも多数の管理IDとユーザIDとを一対一対応させた状態で紐付けることが必要である。かかる管理IDとユーザIDとの紐付けはコンピュータを用いて行われており、一般に管理IDとユーザIDとを紐付けた表のデータを記録したデータベースを用いて実現されている。
つまり、管理者は、ある管理IDと紐付けられたユーザIDを知りたいと思った場合には、コンピュータにその管理IDを打ち込む。そうすると、コンピュータは、上述のデータベースを参照して、その管理IDと紐付けられたユーザIDを出力する(例えば、コンピュータと接続されたディスプレイにユーザIDを表示する。)。他方、管理者は、あるユーザIDと紐付けられた管理IDを知りたいと思った場合には、コンピュータにそのユーザIDを打ち込む。そうすると、コンピュータは、上述のデータベースを参照して、そのユーザIDと紐付けられた管理IDを出力する。それにより、管理者は、管理IDからそれに紐付けられたユーザIDを、或いはユーザIDからそれに紐付けられた管理IDを知ることができる。
しかしながら、管理IDとユーザIDとを紐付けた表のデータを記録した上述のデータベースは、管理IDとユーザIDとの数にもよるが、記録すべきデータ量が多くなりがちである。管理IDとユーザIDとを用いたユーザの管理を、例えば、何らかのイベントを行う度に何度も繰り返して行わなければならないとするのであれば、そのデータ量は益々膨大となる。
本願発明は、かかる問題を解決するものであり、管理IDとユーザIDとを一対一対応させて用いるための技術を実用するにあたり、管理IDとユーザIDとを紐付けた表のデータを記録したデータベースを不要とするように改良することを、その課題とする。
上述の課題を解決するために、本願発明者は、以下の発明を提案する。
本願発明は、連番の自然数の集合である第1集合に含まれる前記自然数のそれぞれを、管理者が用いる管理IDとして用いるとともに、前記第1集合に含まれる最大の自然数よりも大きい自然数を含み、且つそれに含まれる自然数の数が前記第1集合に含まれる数と同数の第2集合に含まれる前記自然数のそれぞれを、ユーザに配布するユーザIDとして用いるようにするID管理装置である。
そして、このID管理装置は、入力を行う入力部と、演算を行う演算部と、演算結果を出力する出力部と、前記演算部が演算を行うときに参照するテーブルを記録する記録部と、を備えている。
このID管理装置では、前記入力部から、前記第1集合に含まれる前記自然数の1つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第1演算を行った結果として、前記第2集合に含まれる前記自然数の1つを生成するようになっており、且つ前記出力部は、前記第1演算の結果として生成された前記第2集合に含まれる前記自然数の1つを出力するようになっているとともに、前記入力部から、前記第2集合に含まれる前記自然数の1つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第2演算を行った結果として、前記第1集合に含まれる前記自然数の1つを生成するようになっており、且つ前記出力部は、前記第2演算の結果として生成された前記第1集合に含まれる前記自然数の1つを出力するようになっている。
また、このID管理装置では、前記第1集合に含まれる自然数のそれぞれと、前記第2集合に含まれる自然数のそれぞれとは、一対一対応しており、前記第1演算を行うために、前記第1集合における前記自然数のうちの任意のものを入力した場合には、入力された前記第1集合における前記自然数に対応した前記第2集合に含まれる前記自然数が出力されるようになっており、且つ前記第2演算を行うために、前記第2集合における前記自然数のうちの任意のものを入力した場合には、入力された前記第2集合における前記自然数に対応した前記第1集合に含まれる前記自然数が出力されるようになっている。
本願発明のID管理装置は、背景技術の欄で述べたようなデータベースを有さない。その代わり、演算部によって演算することにより、管理IDからユーザIDを生成することができ、また、ユーザIDから管理IDを生成することができるようになっている。前者の管理IDからユーザIDを生成する演算が第1演算であり、後者のユーザIDから管理IDを生成する演算が第2演算である。
ここで、管理IDは、連番の自然数の集合である第1集合に含まれる自然数のそれぞれである。他方、ユーザIDは、第1集合に含まれる最大の自然数よりも大きい自然数を含み、且つそれに含まれる自然数の数が第1集合に含まれる数と同数の第2集合に含まれる自然数のそれぞれである。そして、第1集合に含まれる自然数のそれぞれと、第2集合に含まれる自然数のそれぞれとは、一対一対応している。また、演算部は、第1演算を行うために、第1集合における自然数のうちの任意のものを入力した場合には、入力された第1集合における自然数に対応した第2集合に含まれる自然数を出力するようになっており、且つ第2演算を行うために、第2集合における自然数のうちの任意のものを入力した場合には、入力された第2集合における自然数に対応した第1集合に含まれる自然数を出力するようになっている。
そのような演算部を用いることにより、言い換えれば、データベースを参照する代わりに、管理者が管理IDからユーザIDを知りたいときには演算部に第1演算を行わせ、管理者がユーザIDから管理IDを知りたいときには演算部に第2演算を行わせるようにすることで、本願発明によれば、管理者は、管理IDからそれと一対一対応したユーザIDを知るか、或いはユーザIDからそれと一対一対応した管理IDを知ることができるようにしつつも、データベースを不要とした。
上述の第1演算と第2演算は、言葉を変えれば、第1集合の中の自然数と、第2集合の中の自然数を、一対一対応の関係を維持したまま、可逆に写像するものであるといえる。そのような特別な第1演算と第2演算とを演算部で行うようにすることによって、本願発明ではデータベースを不要としたのである。かかる特別な演算を可能とするのが、演算部が演算を行うときに参照するテーブルを記録する記録部に記録されたテーブルである。もっとも、かかるテーブルに記録されるデータ量は、第1集合中の自然数と第2集合中の自然数とを、その一対一対応が把握できるようにして互いに紐付けて記録する場合に比較して、著しく小さいから、従来のようなデータベースに記録するデータが極めて大きくなるといった不具合は、本願発明では生じない。
本願発明は、連番の自然数の集合である第1集合に含まれる前記自然数のそれぞれを、管理者が用いる管理IDとして用いるとともに、前記第1集合に含まれる最大の自然数よりも大きい自然数を含み、且つそれに含まれる自然数の数が前記第1集合に含まれる数と同数の第2集合に含まれる前記自然数のそれぞれを、ユーザに配布するユーザIDとして用いるようにするID管理装置である。
そして、このID管理装置は、入力を行う入力部と、演算を行う演算部と、演算結果を出力する出力部と、前記演算部が演算を行うときに参照するテーブルを記録する記録部と、を備えている。
このID管理装置では、前記入力部から、前記第1集合に含まれる前記自然数の1つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第1演算を行った結果として、前記第2集合に含まれる前記自然数の1つを生成するようになっており、且つ前記出力部は、前記第1演算の結果として生成された前記第2集合に含まれる前記自然数の1つを出力するようになっているとともに、前記入力部から、前記第2集合に含まれる前記自然数の1つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第2演算を行った結果として、前記第1集合に含まれる前記自然数の1つを生成するようになっており、且つ前記出力部は、前記第2演算の結果として生成された前記第1集合に含まれる前記自然数の1つを出力するようになっている。
また、このID管理装置では、前記第1集合に含まれる自然数のそれぞれと、前記第2集合に含まれる自然数のそれぞれとは、一対一対応しており、前記第1演算を行うために、前記第1集合における前記自然数のうちの任意のものを入力した場合には、入力された前記第1集合における前記自然数に対応した前記第2集合に含まれる前記自然数が出力されるようになっており、且つ前記第2演算を行うために、前記第2集合における前記自然数のうちの任意のものを入力した場合には、入力された前記第2集合における前記自然数に対応した前記第1集合に含まれる前記自然数が出力されるようになっている。
本願発明のID管理装置は、背景技術の欄で述べたようなデータベースを有さない。その代わり、演算部によって演算することにより、管理IDからユーザIDを生成することができ、また、ユーザIDから管理IDを生成することができるようになっている。前者の管理IDからユーザIDを生成する演算が第1演算であり、後者のユーザIDから管理IDを生成する演算が第2演算である。
ここで、管理IDは、連番の自然数の集合である第1集合に含まれる自然数のそれぞれである。他方、ユーザIDは、第1集合に含まれる最大の自然数よりも大きい自然数を含み、且つそれに含まれる自然数の数が第1集合に含まれる数と同数の第2集合に含まれる自然数のそれぞれである。そして、第1集合に含まれる自然数のそれぞれと、第2集合に含まれる自然数のそれぞれとは、一対一対応している。また、演算部は、第1演算を行うために、第1集合における自然数のうちの任意のものを入力した場合には、入力された第1集合における自然数に対応した第2集合に含まれる自然数を出力するようになっており、且つ第2演算を行うために、第2集合における自然数のうちの任意のものを入力した場合には、入力された第2集合における自然数に対応した第1集合に含まれる自然数を出力するようになっている。
そのような演算部を用いることにより、言い換えれば、データベースを参照する代わりに、管理者が管理IDからユーザIDを知りたいときには演算部に第1演算を行わせ、管理者がユーザIDから管理IDを知りたいときには演算部に第2演算を行わせるようにすることで、本願発明によれば、管理者は、管理IDからそれと一対一対応したユーザIDを知るか、或いはユーザIDからそれと一対一対応した管理IDを知ることができるようにしつつも、データベースを不要とした。
上述の第1演算と第2演算は、言葉を変えれば、第1集合の中の自然数と、第2集合の中の自然数を、一対一対応の関係を維持したまま、可逆に写像するものであるといえる。そのような特別な第1演算と第2演算とを演算部で行うようにすることによって、本願発明ではデータベースを不要としたのである。かかる特別な演算を可能とするのが、演算部が演算を行うときに参照するテーブルを記録する記録部に記録されたテーブルである。もっとも、かかるテーブルに記録されるデータ量は、第1集合中の自然数と第2集合中の自然数とを、その一対一対応が把握できるようにして互いに紐付けて記録する場合に比較して、著しく小さいから、従来のようなデータベースに記録するデータが極めて大きくなるといった不具合は、本願発明では生じない。
前記第1集合に含まれる前記自然数のうちの最大のものと、前記第2集合に含まれる前記自然数のうちの最大のものとを比較すると、後者は前者よりも一桁以上大きな数とすることができる。それにより、ユーザの不安がより解消されることになる。例えば、第1集合に含まれる自然数のうちの最大のものと、第2集合に含まれる自然数のうちの最大のものとを比較したときに、後者は前者よりも三桁以上大きな数となっていれば、ユーザの不安は殆ど解消できるであろう。
前記記録部に記録されるテーブルは、演算部がそれを参照することによって第1演算と第2演算とを実行できるようにするためのものであれば良い。かかるテーブルに記録されるデータは、いずれも変化することのない定数、数列、或いはそれらの組合せとすることができる。また、そのテーブルに記録されたデータを参照して演算部が行う第1演算と第2演算とは、テーブルに記録されたデータを参照すれば行うことができるのみならず、テーブルに記録されたデータを参照しなければ第三者が再現できないものであるのが好ましい。そうすることで、本願発明のID管理装置により発行されるユーザIDに対するユーザの安心感をより高めることができるようになる。
記録部に記録されるテーブルには、例えば、前記第1集合に含まれる最大の数よりもそれらの積が大きな数となる互いに素である2つの整数m1、及びm2のそれぞれに基いて生成された、0からm1−1までの自然数を適当に並べた数列であるM1、及び0からm2−1までの自然数を適当に並べた数列であるM2が、記録されていても構わない。これにより、テーブルを参照しなければ第三者が再現できない第1演算と第2演算とを実現できるようになる。
例えば、前記演算部は、記録部に記録されたテーブルが上記のものである場合、前記第1集合に含まれる自然数のうち前記入力手段から入力されるものをxとした場合に、前記出力部から出力される前記第2集合に含まれる自然数を、以下の数式にしたがった演算を行うことにより求めるようになっていても構わない。
y=M1[x mod m1]×m2+M2[x mod m2]
(ただし、「M1[n]」は、数列M1の中のn番目(ただし、最初の数を0番目と数える。)の数を意味し、「M2[n]」は、数列M2の中のn番目(ただし、最初の数を0番目と数える。)の数を意味する。また、「p mod q」 は、p、qがいずれも整数である場合に、pを法qの剰余系で表現した値(言い換えれば、pをqで割った場合の余り)を意味する。)
これにより、テーブルを参照しなければ第三者が再現できない第1演算が実現可能となる。第1演算が上記の通りである場合、第2演算は、
a=int(y/m2)
b=y−a×m2
として、
a≡x mod k1(「≡」は合同、以下同じ。)
b≡x mod k2
の合同方程式を変形した、
ax+bx=cの不定方程式を解くことにより求めることができる。かかる不定方程式は、a、b、k1、k2が整数の場合であって、且つk1とk2とが互いに素である場合には、解が一意に定まることが知られている。ここでk1とk2とを得ることができるが、最終的に求めたいxは、下記の式によって初めて求めることができる。
x=M1[k1]×m2+M2[k2]
つまり、第三者が、ユーザID(y)から、そのユーザIDと紐付けられた管理ID(x)を知ろうとした場合には、M1とM2を予め入手していることが必要となる。一方、不正な手段を用いることなく、発行済のユーザIDからM1、M2を推定するためには、連続したxとyの組を、M1に含まれる自然数の数とM2に含まれる自然数の数の少ない方の数以上の数入手することが必要となる(省略するが、これは数学的に証明可能である。)。
したがって、上述の如き演算を採用することで、テーブルを参照しなければ第三者が再現できない第2演算を実現できるようになる。
なお、第1演算、第2演算ともに、上述の演算方法に加えて、更に別の、例えば擬似乱数を加味する等の要素を付加することが可能であり、それにより解読に必要な情報量を増加させることが可能となる。
記録部に記録されるテーブルには、例えば、前記第1集合に含まれる最大の数よりもそれらの積が大きな数となる互いに素である2つの整数m1、及びm2のそれぞれに基いて生成された、0からm1−1までの自然数を適当に並べた数列であるM1、及び0からm2−1までの自然数を適当に並べた数列であるM2が、記録されていても構わない。これにより、テーブルを参照しなければ第三者が再現できない第1演算と第2演算とを実現できるようになる。
例えば、前記演算部は、記録部に記録されたテーブルが上記のものである場合、前記第1集合に含まれる自然数のうち前記入力手段から入力されるものをxとした場合に、前記出力部から出力される前記第2集合に含まれる自然数を、以下の数式にしたがった演算を行うことにより求めるようになっていても構わない。
y=M1[x mod m1]×m2+M2[x mod m2]
(ただし、「M1[n]」は、数列M1の中のn番目(ただし、最初の数を0番目と数える。)の数を意味し、「M2[n]」は、数列M2の中のn番目(ただし、最初の数を0番目と数える。)の数を意味する。また、「p mod q」 は、p、qがいずれも整数である場合に、pを法qの剰余系で表現した値(言い換えれば、pをqで割った場合の余り)を意味する。)
これにより、テーブルを参照しなければ第三者が再現できない第1演算が実現可能となる。第1演算が上記の通りである場合、第2演算は、
a=int(y/m2)
b=y−a×m2
として、
a≡x mod k1(「≡」は合同、以下同じ。)
b≡x mod k2
の合同方程式を変形した、
ax+bx=cの不定方程式を解くことにより求めることができる。かかる不定方程式は、a、b、k1、k2が整数の場合であって、且つk1とk2とが互いに素である場合には、解が一意に定まることが知られている。ここでk1とk2とを得ることができるが、最終的に求めたいxは、下記の式によって初めて求めることができる。
x=M1[k1]×m2+M2[k2]
つまり、第三者が、ユーザID(y)から、そのユーザIDと紐付けられた管理ID(x)を知ろうとした場合には、M1とM2を予め入手していることが必要となる。一方、不正な手段を用いることなく、発行済のユーザIDからM1、M2を推定するためには、連続したxとyの組を、M1に含まれる自然数の数とM2に含まれる自然数の数の少ない方の数以上の数入手することが必要となる(省略するが、これは数学的に証明可能である。)。
したがって、上述の如き演算を採用することで、テーブルを参照しなければ第三者が再現できない第2演算を実現できるようになる。
なお、第1演算、第2演算ともに、上述の演算方法に加えて、更に別の、例えば擬似乱数を加味する等の要素を付加することが可能であり、それにより解読に必要な情報量を増加させることが可能となる。
本願発明は、方法の発明と捉えることも可能である。その効果は、上述のID管理装置の効果に同じである。
その方法は、例えば、連番の自然数の集合である第1集合に含まれる前記自然数のそれぞれを、管理者が用いる管理IDとして用いるとともに、前記第1集合に含まれる最大の自然数よりも大きい自然数を含み、且つそれに含まれる自然数の数が前記第1集合に含まれる数と同数の第2集合に含まれる前記自然数のそれぞれを、ユーザに配布するユーザIDとして用いるようにする、演算を行う演算部と、前記演算部が演算を行うときに参照するテーブルを記録する記録部と、を備えているID管理装置の前記演算部が実行する方法である。
そして、この方法は、前記演算部が実行する、前記第1集合に含まれる前記自然数の1つが入力されたときに、前記記録部に記録されたテーブルを参照して所定の演算である第1演算を行った結果として、前記第2集合に含まれる前記自然数の1つを生成するとともに、前記第1演算の結果として生成された前記第2集合に含まれる前記自然数の1つを出力する過程、前記第2集合に含まれる前記自然数の1つが入力されたときに、前記記録部に記録されたテーブルを参照して所定の演算である第2演算を行った結果として、前記第1集合に含まれる前記自然数の1つを生成するとともに、前記第2演算の結果として生成された前記第1集合に含まれる前記自然数の1つを出力する過程、を含む。
この方法では、前記第1集合に含まれる自然数のそれぞれと、前記第2集合に含まれる自然数のそれぞれとは、一対一対応しており、前記第1演算を行うために、前記第1集合における前記自然数のうちの任意のものが入力された場合には、入力された前記第1集合における前記自然数に対応した前記第2集合に含まれる前記自然数を出力し、且つ前記第2演算を行うために、前記第2集合における前記自然数のうちの任意のものが入力された場合には、入力された前記第2集合における前記自然数に対応した前記第1集合に含まれる前記自然数を出力する。
その方法は、例えば、連番の自然数の集合である第1集合に含まれる前記自然数のそれぞれを、管理者が用いる管理IDとして用いるとともに、前記第1集合に含まれる最大の自然数よりも大きい自然数を含み、且つそれに含まれる自然数の数が前記第1集合に含まれる数と同数の第2集合に含まれる前記自然数のそれぞれを、ユーザに配布するユーザIDとして用いるようにする、演算を行う演算部と、前記演算部が演算を行うときに参照するテーブルを記録する記録部と、を備えているID管理装置の前記演算部が実行する方法である。
そして、この方法は、前記演算部が実行する、前記第1集合に含まれる前記自然数の1つが入力されたときに、前記記録部に記録されたテーブルを参照して所定の演算である第1演算を行った結果として、前記第2集合に含まれる前記自然数の1つを生成するとともに、前記第1演算の結果として生成された前記第2集合に含まれる前記自然数の1つを出力する過程、前記第2集合に含まれる前記自然数の1つが入力されたときに、前記記録部に記録されたテーブルを参照して所定の演算である第2演算を行った結果として、前記第1集合に含まれる前記自然数の1つを生成するとともに、前記第2演算の結果として生成された前記第1集合に含まれる前記自然数の1つを出力する過程、を含む。
この方法では、前記第1集合に含まれる自然数のそれぞれと、前記第2集合に含まれる自然数のそれぞれとは、一対一対応しており、前記第1演算を行うために、前記第1集合における前記自然数のうちの任意のものが入力された場合には、入力された前記第1集合における前記自然数に対応した前記第2集合に含まれる前記自然数を出力し、且つ前記第2演算を行うために、前記第2集合における前記自然数のうちの任意のものが入力された場合には、入力された前記第2集合における前記自然数に対応した前記第1集合に含まれる前記自然数を出力する。
本願発明は、コンピュータ、一般的には汎用のコンピュータを、本願発明によるID管理装置として機能させるためのコンピュータプログラムの発明と捉えることも可能である。その効果は、上述のID管理装置の効果に同じである。
そのコンピュータプログラムは、例えば、連番の自然数の集合である第1集合に含まれる前記自然数のそれぞれを、管理者が用いる管理IDとして用いるとともに、前記第1集合に含まれる最大の自然数よりも大きい自然数を含み、且つそれに含まれる自然数の数が前記第1集合に含まれる数と同数の第2集合に含まれる前記自然数のそれぞれを、ユーザに配布するユーザIDとして用いるようにするID管理装置として、コンピュータを機能させるためのコンピュータプログラムである。
そして、このコンピュータプログラムは、前記コンピュータを、入力を行う入力部と、演算を行う演算部と、演算結果を出力する出力部と、前記演算部が演算を行うときに参照するテーブルを記録する記録部と、として機能させるためのものである。
この場合、前記入力部から、前記第1集合に含まれる前記自然数の1つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第1演算を行った結果として、前記第2集合に含まれる前記自然数の1つを生成するようになっており、且つ前記出力部は、前記第1演算の結果として生成された前記第2集合に含まれる前記自然数の1つを出力するようになっているとともに、前記入力部から、前記第2集合に含まれる前記自然数の1つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第2演算を行った結果として、前記第1集合に含まれる前記自然数の1つを生成するようになっており、且つ前記出力部は、前記第2演算の結果として生成された前記第1集合に含まれる前記自然数の1つを出力するようになっているとともに、前記第1集合に含まれる自然数のそれぞれと、前記第2集合に含まれる自然数のそれぞれとは、一対一対応しており、前記第1演算を行うために、前記第1集合における前記自然数のうちの任意のものを入力した場合には、入力された前記第1集合における前記自然数に対応した前記第2集合に含まれる前記自然数が出力されるようになっており、且つ前記第2演算を行うために、前記第2集合における前記自然数のうちの任意のものを入力した場合には、入力された前記第2集合における前記自然数に対応した前記第1集合に含まれる前記自然数が出力されるようになっている。
そのコンピュータプログラムは、例えば、連番の自然数の集合である第1集合に含まれる前記自然数のそれぞれを、管理者が用いる管理IDとして用いるとともに、前記第1集合に含まれる最大の自然数よりも大きい自然数を含み、且つそれに含まれる自然数の数が前記第1集合に含まれる数と同数の第2集合に含まれる前記自然数のそれぞれを、ユーザに配布するユーザIDとして用いるようにするID管理装置として、コンピュータを機能させるためのコンピュータプログラムである。
そして、このコンピュータプログラムは、前記コンピュータを、入力を行う入力部と、演算を行う演算部と、演算結果を出力する出力部と、前記演算部が演算を行うときに参照するテーブルを記録する記録部と、として機能させるためのものである。
この場合、前記入力部から、前記第1集合に含まれる前記自然数の1つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第1演算を行った結果として、前記第2集合に含まれる前記自然数の1つを生成するようになっており、且つ前記出力部は、前記第1演算の結果として生成された前記第2集合に含まれる前記自然数の1つを出力するようになっているとともに、前記入力部から、前記第2集合に含まれる前記自然数の1つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第2演算を行った結果として、前記第1集合に含まれる前記自然数の1つを生成するようになっており、且つ前記出力部は、前記第2演算の結果として生成された前記第1集合に含まれる前記自然数の1つを出力するようになっているとともに、前記第1集合に含まれる自然数のそれぞれと、前記第2集合に含まれる自然数のそれぞれとは、一対一対応しており、前記第1演算を行うために、前記第1集合における前記自然数のうちの任意のものを入力した場合には、入力された前記第1集合における前記自然数に対応した前記第2集合に含まれる前記自然数が出力されるようになっており、且つ前記第2演算を行うために、前記第2集合における前記自然数のうちの任意のものを入力した場合には、入力された前記第2集合における前記自然数に対応した前記第1集合に含まれる前記自然数が出力されるようになっている。
上述したように、本願発明におけるID管理装置は、管理IDについての第1集合と、ユーザIDについての第2集合とを扱うものであり、管理IDの中の自然数と、ユーザIDの中の自然数とを、一対一対応させるものであった。
もっとも、第1集合に含まれる数は自然数(正の整数)には限られず、負の整数であっても良いし、第2集合に含まれる数は自然数(正の整数)には限られず、負の整数であっても良い。その場合、記録部に記録されるテーブルは、例えば、前記第1集合に含まれる最小の数の絶対値よりもそれらの積が大きな数となる互いに素である2つの整数m1、及びm2のそれぞれに基いて生成された、0からm1−1までの自然数を適当に並べた数列であるM1、及び0からm2−1までの自然数を適当に並べた数列であるM2が、記録されていても構わない。この場合の管理ID(x)の集合である第1集合と、ユーザID(y)の集合である第2集合とは、管理IDとユーザIDとがともに自然数である場合におけるそれらに対して、0を中心として折り返した関係となる。
かかるID管理装置は、例えば、連番の負の整数の集合である第1集合に含まれる前記負の整数のそれぞれを、管理者が用いる管理IDとして用いるとともに、前記第1集合に含まれる最小の負の整数よりも小さい負の整数を含み、且つそれに含まれる負の整数の数が前記第1集合に含まれる数と同数の第2集合に含まれる前記負の整数のそれぞれを、ユーザに配布するユーザIDとして用いるようにするID管理装置である。
そして、このID管理装置は、入力を行う入力部と、演算を行う演算部と、演算結果を出力する出力部と、前記演算部が演算を行うときに参照するテーブルを記録する記録部と、を備えている。
このID管理装置は、前記入力部から、前記第1集合に含まれる前記負の整数の1つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第1演算を行った結果として、前記第2集合に含まれる前記負の整数の1つを生成するようになっており、且つ前記出力部は、前記第1演算の結果として生成された前記第2集合に含まれる前記負の整数の1つを出力するようになっているとともに、前記入力部から、前記第2集合に含まれる前記負の整数の1つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第2演算を行った結果として、前記第1集合に含まれる前記負の整数の1つを生成するようになっており、且つ前記出力部は、前記第2演算の結果として生成された前記第1集合に含まれる前記負の整数の1つを出力するようになっているとともに、前記第1集合に含まれる負の整数のそれぞれと、前記第2集合に含まれる負の整数のそれぞれとは、一対一対応しており、前記第1演算を行うために、前記第1集合における前記負の整数のうちの任意のものを入力した場合には、入力された前記第1集合における前記負の整数に対応した前記第2集合に含まれる前記負の整数が出力されるようになっており、且つ前記第2演算を行うために、前記第2集合における前記負の整数のうちの任意のものを入力した場合には、入力された前記第2集合における前記負の整数に対応した前記第1集合に含まれる前記負の整数が出力されるようになっている。
もっとも、第1集合に含まれる数は自然数(正の整数)には限られず、負の整数であっても良いし、第2集合に含まれる数は自然数(正の整数)には限られず、負の整数であっても良い。その場合、記録部に記録されるテーブルは、例えば、前記第1集合に含まれる最小の数の絶対値よりもそれらの積が大きな数となる互いに素である2つの整数m1、及びm2のそれぞれに基いて生成された、0からm1−1までの自然数を適当に並べた数列であるM1、及び0からm2−1までの自然数を適当に並べた数列であるM2が、記録されていても構わない。この場合の管理ID(x)の集合である第1集合と、ユーザID(y)の集合である第2集合とは、管理IDとユーザIDとがともに自然数である場合におけるそれらに対して、0を中心として折り返した関係となる。
かかるID管理装置は、例えば、連番の負の整数の集合である第1集合に含まれる前記負の整数のそれぞれを、管理者が用いる管理IDとして用いるとともに、前記第1集合に含まれる最小の負の整数よりも小さい負の整数を含み、且つそれに含まれる負の整数の数が前記第1集合に含まれる数と同数の第2集合に含まれる前記負の整数のそれぞれを、ユーザに配布するユーザIDとして用いるようにするID管理装置である。
そして、このID管理装置は、入力を行う入力部と、演算を行う演算部と、演算結果を出力する出力部と、前記演算部が演算を行うときに参照するテーブルを記録する記録部と、を備えている。
このID管理装置は、前記入力部から、前記第1集合に含まれる前記負の整数の1つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第1演算を行った結果として、前記第2集合に含まれる前記負の整数の1つを生成するようになっており、且つ前記出力部は、前記第1演算の結果として生成された前記第2集合に含まれる前記負の整数の1つを出力するようになっているとともに、前記入力部から、前記第2集合に含まれる前記負の整数の1つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第2演算を行った結果として、前記第1集合に含まれる前記負の整数の1つを生成するようになっており、且つ前記出力部は、前記第2演算の結果として生成された前記第1集合に含まれる前記負の整数の1つを出力するようになっているとともに、前記第1集合に含まれる負の整数のそれぞれと、前記第2集合に含まれる負の整数のそれぞれとは、一対一対応しており、前記第1演算を行うために、前記第1集合における前記負の整数のうちの任意のものを入力した場合には、入力された前記第1集合における前記負の整数に対応した前記第2集合に含まれる前記負の整数が出力されるようになっており、且つ前記第2演算を行うために、前記第2集合における前記負の整数のうちの任意のものを入力した場合には、入力された前記第2集合における前記負の整数に対応した前記第1集合に含まれる前記負の整数が出力されるようになっている。
第1集合に含まれる数と、第2集合に含まれる数がともに負の整数である場合においても、本願発明は、方法の発明と捉えることが可能である。その効果は、上述のID管理装置の効果に同じである。
その方法は、連番の負の整数の集合である第1集合に含まれる前記負の整数のそれぞれを、管理者が用いる管理IDとして用いるとともに、前記第1集合に含まれる最小の負の整数よりも小さい負の整数を含み、且つそれに含まれる負の整数の数が前記第1集合に含まれる数と同数の第2集合に含まれる前記負の整数のそれぞれを、ユーザに配布するユーザIDとして用いるようにする、演算を行う演算部と、前記演算部が演算を行うときに参照するテーブルを記録する記録部と、を備えているID管理装置の前記演算部が実行する方法である。
そして、この方法は、前記演算部が実行する、前記第1集合に含まれる前記負の整数の1つが入力されたときに、前記記録部に記録されたテーブルを参照して所定の演算である第1演算を行った結果として、前記第2集合に含まれる前記負の整数の1つを生成するとともに、前記第1演算の結果として生成された前記第2集合に含まれる前記負の整数の1つを出力する過程、前記第2集合に含まれる前記負の整数の1つが入力されたときに、前記記録部に記録されたテーブルを参照して所定の演算である第2演算を行った結果として、前記第1集合に含まれる前記負の整数の1つを生成するとともに、前記第2演算の結果として生成された前記第1集合に含まれる前記負の整数の1つを出力する過程、を含む。
この方法では、前記第1集合に含まれる負の整数のそれぞれと、前記第2集合に含まれる負の整数のそれぞれとは、一対一対応しており、前記第1演算を行うために、前記第1集合における前記負の整数のうちの任意のものが入力された場合には、入力された前記第1集合における前記負の整数に対応した前記第2集合に含まれる前記負の整数を出力し、且つ前記第2演算を行うために、前記第2集合における前記負の整数のうちの任意のものが入力された場合には、入力された前記第2集合における前記負の整数に対応した前記第1集合に含まれる前記負の整数を出力する。
その方法は、連番の負の整数の集合である第1集合に含まれる前記負の整数のそれぞれを、管理者が用いる管理IDとして用いるとともに、前記第1集合に含まれる最小の負の整数よりも小さい負の整数を含み、且つそれに含まれる負の整数の数が前記第1集合に含まれる数と同数の第2集合に含まれる前記負の整数のそれぞれを、ユーザに配布するユーザIDとして用いるようにする、演算を行う演算部と、前記演算部が演算を行うときに参照するテーブルを記録する記録部と、を備えているID管理装置の前記演算部が実行する方法である。
そして、この方法は、前記演算部が実行する、前記第1集合に含まれる前記負の整数の1つが入力されたときに、前記記録部に記録されたテーブルを参照して所定の演算である第1演算を行った結果として、前記第2集合に含まれる前記負の整数の1つを生成するとともに、前記第1演算の結果として生成された前記第2集合に含まれる前記負の整数の1つを出力する過程、前記第2集合に含まれる前記負の整数の1つが入力されたときに、前記記録部に記録されたテーブルを参照して所定の演算である第2演算を行った結果として、前記第1集合に含まれる前記負の整数の1つを生成するとともに、前記第2演算の結果として生成された前記第1集合に含まれる前記負の整数の1つを出力する過程、を含む。
この方法では、前記第1集合に含まれる負の整数のそれぞれと、前記第2集合に含まれる負の整数のそれぞれとは、一対一対応しており、前記第1演算を行うために、前記第1集合における前記負の整数のうちの任意のものが入力された場合には、入力された前記第1集合における前記負の整数に対応した前記第2集合に含まれる前記負の整数を出力し、且つ前記第2演算を行うために、前記第2集合における前記負の整数のうちの任意のものが入力された場合には、入力された前記第2集合における前記負の整数に対応した前記第1集合に含まれる前記負の整数を出力する。
第1集合に含まれる数と、第2集合に含まれる数がともに負の整数である場合においても、本願発明は、コンピュータ、一般的には汎用のコンピュータを、本願発明によるID管理装置として機能させるためのコンピュータプログラムの発明と捉えることが可能である。その効果は、上述のID管理装置の効果に同じである。
そのコンピュータプログラムは、例えば、連番の負の整数の集合である第1集合に含まれる前記負の整数のそれぞれを、管理者が用いる管理IDとして用いるとともに、前記第1集合に含まれる最小の負の整数よりも小さい負の整数を含み、且つそれに含まれる負の整数の数が前記第1集合に含まれる数と同数の第2集合に含まれる前記負の整数のそれぞれを、ユーザに配布するユーザIDとして用いるようにするID管理装置として、コンピュータを機能させるためのコンピュータプログラムである。
そして、そのコンピュータプログラムは、前記コンピュータを、入力を行う入力部と、演算を行う演算部と、演算結果を出力する出力部と、前記演算部が演算を行うときに参照するテーブルを記録する記録部と、として機能させるためのものである。
この場合、前記入力部から、前記第1集合に含まれる前記負の整数の1つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第1演算を行った結果として、前記第2集合に含まれる前記負の整数の1つを生成するようになっており、且つ前記出力部は、前記第1演算の結果として生成された前記第2集合に含まれる前記負の整数の1つを出力するようになっているとともに、前記入力部から、前記第2集合に含まれる前記負の整数の1つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第2演算を行った結果として、前記第1集合に含まれる前記負の整数の1つを生成するようになっており、且つ前記出力部は、前記第2演算の結果として生成された前記第1集合に含まれる前記負の整数の1つを出力するようになっているとともに、前記第1集合に含まれる負の整数のそれぞれと、前記第2集合に含まれる負の整数のそれぞれとは、一対一対応しており、前記第1演算を行うために、前記第1集合における前記負の整数のうちの任意のものを入力した場合には、入力された前記第1集合における前記負の整数に対応した前記第2集合に含まれる前記負の整数が出力されるようになっており、且つ前記第2演算を行うために、前記第2集合における前記負の整数のうちの任意のものを入力した場合には、入力された前記第2集合における前記負の整数に対応した前記第1集合に含まれる前記負の整数が出力されるようになっている。
そのコンピュータプログラムは、例えば、連番の負の整数の集合である第1集合に含まれる前記負の整数のそれぞれを、管理者が用いる管理IDとして用いるとともに、前記第1集合に含まれる最小の負の整数よりも小さい負の整数を含み、且つそれに含まれる負の整数の数が前記第1集合に含まれる数と同数の第2集合に含まれる前記負の整数のそれぞれを、ユーザに配布するユーザIDとして用いるようにするID管理装置として、コンピュータを機能させるためのコンピュータプログラムである。
そして、そのコンピュータプログラムは、前記コンピュータを、入力を行う入力部と、演算を行う演算部と、演算結果を出力する出力部と、前記演算部が演算を行うときに参照するテーブルを記録する記録部と、として機能させるためのものである。
この場合、前記入力部から、前記第1集合に含まれる前記負の整数の1つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第1演算を行った結果として、前記第2集合に含まれる前記負の整数の1つを生成するようになっており、且つ前記出力部は、前記第1演算の結果として生成された前記第2集合に含まれる前記負の整数の1つを出力するようになっているとともに、前記入力部から、前記第2集合に含まれる前記負の整数の1つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第2演算を行った結果として、前記第1集合に含まれる前記負の整数の1つを生成するようになっており、且つ前記出力部は、前記第2演算の結果として生成された前記第1集合に含まれる前記負の整数の1つを出力するようになっているとともに、前記第1集合に含まれる負の整数のそれぞれと、前記第2集合に含まれる負の整数のそれぞれとは、一対一対応しており、前記第1演算を行うために、前記第1集合における前記負の整数のうちの任意のものを入力した場合には、入力された前記第1集合における前記負の整数に対応した前記第2集合に含まれる前記負の整数が出力されるようになっており、且つ前記第2演算を行うために、前記第2集合における前記負の整数のうちの任意のものを入力した場合には、入力された前記第2集合における前記負の整数に対応した前記第1集合に含まれる前記負の整数が出力されるようになっている。
以下、図面を参照して、本発明の実施の形態について説明する。
本願発明のID管理装置の概観を示す。
図中1が本願発明のID管理装置としてのコンピュータである。一般的には、コンピュータ1は、多数のユーザに対してユーザIDを配布する管理者が使用する。
かかるコンピュータ1は、入力装置2、及びディスプレイ3と接続されている。
入力装置2は、コンピュータ1に対して入力を行うための装置である。この実施形態における入力装置2は、後述するように数字の入力を行えることが必要であるが、それが可能な限り、この実施形態における入力装置2は、公知、或いは周知の装置により実現することができる。これには限られないが、この実施形態における入力装置2は、キーボードとマウスにより構成されている。
ディスプレイ3は、コンピュータ1によって生成された画像データに基づく画像を表示するための表示装置である。ディスプレイ3はどのようなものでも構わず、公知、或いは周知の装置によりそれを実現することができるが、例えば、液晶ディスプレイ、CRTディスプレイがその一例となる。
なお、この実施形態では、入力装置2及びディスプレイ3は、コンピュータ1に対してケーブル2A、3Aを介して有線で接続されているが、かかる接続は、公知或いは周知の技術を用いて無線でなされていても構わない。
図中1が本願発明のID管理装置としてのコンピュータである。一般的には、コンピュータ1は、多数のユーザに対してユーザIDを配布する管理者が使用する。
かかるコンピュータ1は、入力装置2、及びディスプレイ3と接続されている。
入力装置2は、コンピュータ1に対して入力を行うための装置である。この実施形態における入力装置2は、後述するように数字の入力を行えることが必要であるが、それが可能な限り、この実施形態における入力装置2は、公知、或いは周知の装置により実現することができる。これには限られないが、この実施形態における入力装置2は、キーボードとマウスにより構成されている。
ディスプレイ3は、コンピュータ1によって生成された画像データに基づく画像を表示するための表示装置である。ディスプレイ3はどのようなものでも構わず、公知、或いは周知の装置によりそれを実現することができるが、例えば、液晶ディスプレイ、CRTディスプレイがその一例となる。
なお、この実施形態では、入力装置2及びディスプレイ3は、コンピュータ1に対してケーブル2A、3Aを介して有線で接続されているが、かかる接続は、公知或いは周知の技術を用いて無線でなされていても構わない。
コンピュータ1は、汎用のものでよく、例えば、汎用のパーソナルコンピュータで構わない。この実施形態におけるコンピュータ1はデスクトップ型であるが、ノートブック型でも構わず、その場合には広く知られているように、コンピュータ1はディスプレイ3と一体となる。
コンピュータ1は、図2に示したようなハードウエアを備えている。この実施形態におけるコンピュータは、CPU(Central Processing Unit)111、ROM(Read Only Memory)112、RAM(Random Access Memory)113、HDD(Hard disc drive)114、インタフェイス115、及びこれらを接続するバス116を備えている。
CPU111は、演算装置であり、コンピュータ1全体の制御を行う。CPU111は、本願発明によるプログラムを含むプログラムを実行することで、以下に説明するような種々の処理を実行する。
ROM112は、書換不可能なメモリであり、CPU111を動作させるためのプログラム、データなどを記憶している。
RAM113は、書換可能なメモリであり、CPU111が以下の処理を実行する場合のワーク領域を提供する。
HDD114はデータを記録する大容量記録媒体である。HDD114もまた、CPU111を動作させるためのプログラム、データを記録している。例えば、CPU111を動作させるためのOSがHDD114に記録されている。また、このコンピュータ1をID管理装置として機能させるためのプログラムが、ROM112か、或いはHDD114に記録されている。なお、そのプログラムは、コンピュータ1の出荷時からコンピュータ1にインストールされていてもよく、コンピュータ1の出荷後に、例えば管理者によりコンピュータ1にインストールされたものであっても構わない。コンピュータ1の出荷後にそのプログラムがコンピュータ1にインストールされる場合、そのプログラムは、CD−ROM等の記録媒体からコンピュータ1に記録されてもよく、また、インターネット等の所定のネットワークからのダウンロードを経てコンピュータ1に記録されたものであってもよい。上述のプログラムは、それ単独で後述する処理をCPU111に実行させるものとなっていてもよく、OSその他の他のプログラムとの協働により後述の処理をCPU111に実行させるものとなっていても構わない。
インタフェイス115は、CPU111、ROM112、RAM113、HDD114とコンピュータ1の図3で示したハードウエアの外部とを繋ぐ窓口となるものであり、CPU111、ROM112、RAM113、HDD114は、インタフェイス115を介して図3に示したコンピュータ1のハードウエアの外部とデータ交換を行えるようになっている。例えば、インタフェイス115は、ケーブル2Aを介して入力装置2と、またケーブル3Aを介してディスプレイ3と、それぞれ接続されている。入力装置2で生成された後述する入力データは、インタフェイス115を介してコンピュータ1が受取り、CPU111等の適当な部分に送られる。また、CPU111で生成された画像データが、インタフェイス115を介してディスプレイ3に送られるようになっており、画像データを受取ったディスプレイ3は画像データに基づく画像をディスプレイ3の画面に表示するようになっている。
コンピュータ1は、図2に示したようなハードウエアを備えている。この実施形態におけるコンピュータは、CPU(Central Processing Unit)111、ROM(Read Only Memory)112、RAM(Random Access Memory)113、HDD(Hard disc drive)114、インタフェイス115、及びこれらを接続するバス116を備えている。
CPU111は、演算装置であり、コンピュータ1全体の制御を行う。CPU111は、本願発明によるプログラムを含むプログラムを実行することで、以下に説明するような種々の処理を実行する。
ROM112は、書換不可能なメモリであり、CPU111を動作させるためのプログラム、データなどを記憶している。
RAM113は、書換可能なメモリであり、CPU111が以下の処理を実行する場合のワーク領域を提供する。
HDD114はデータを記録する大容量記録媒体である。HDD114もまた、CPU111を動作させるためのプログラム、データを記録している。例えば、CPU111を動作させるためのOSがHDD114に記録されている。また、このコンピュータ1をID管理装置として機能させるためのプログラムが、ROM112か、或いはHDD114に記録されている。なお、そのプログラムは、コンピュータ1の出荷時からコンピュータ1にインストールされていてもよく、コンピュータ1の出荷後に、例えば管理者によりコンピュータ1にインストールされたものであっても構わない。コンピュータ1の出荷後にそのプログラムがコンピュータ1にインストールされる場合、そのプログラムは、CD−ROM等の記録媒体からコンピュータ1に記録されてもよく、また、インターネット等の所定のネットワークからのダウンロードを経てコンピュータ1に記録されたものであってもよい。上述のプログラムは、それ単独で後述する処理をCPU111に実行させるものとなっていてもよく、OSその他の他のプログラムとの協働により後述の処理をCPU111に実行させるものとなっていても構わない。
インタフェイス115は、CPU111、ROM112、RAM113、HDD114とコンピュータ1の図3で示したハードウエアの外部とを繋ぐ窓口となるものであり、CPU111、ROM112、RAM113、HDD114は、インタフェイス115を介して図3に示したコンピュータ1のハードウエアの外部とデータ交換を行えるようになっている。例えば、インタフェイス115は、ケーブル2Aを介して入力装置2と、またケーブル3Aを介してディスプレイ3と、それぞれ接続されている。入力装置2で生成された後述する入力データは、インタフェイス115を介してコンピュータ1が受取り、CPU111等の適当な部分に送られる。また、CPU111で生成された画像データが、インタフェイス115を介してディスプレイ3に送られるようになっており、画像データを受取ったディスプレイ3は画像データに基づく画像をディスプレイ3の画面に表示するようになっている。
上記プログラムをCPU111が実行することにより、コンピュータ1の内部には、図3に示した如き種々の機能ブロックが生成される。
コンピュータ1の内部には、入力部121、演算部122、テーブル記録部123、出力部124、制御部125が生成される。
コンピュータ1の内部には、入力部121、演算部122、テーブル記録部123、出力部124、制御部125が生成される。
入力部121はインタフェイス115と接続されており、インタフェイス115からの入力を受取るものである。上述したように、インタフェイス115には入力装置2から、入力データが入力されるが、この入力データはインタフェイス115から入力部121に入力されるようになっている。詳しくは追って述べるが、入力装置2から入力される入力データは、本願発明との関係では、管理IDを特定するデータである管理IDデータ、ユーザIDを特定するデータであるユーザIDデータ、及びテーブル記録部123内のテーブルを生成するためのデータである準備データのいずれかである。入力部121は、入力データを受取ったとき、それが管理IDデータ又はユーザIDデータのいずれかである場合にはそれを演算部122に送るようになっており、また、それが準備データである場合にはその準備データを制御部125に送るようになっている。
演算部122は、本願発明でいうところの第1演算と第2演算を実行するものである。演算部122は上述のように、管理IDデータ又はユーザIDデータを入力部121から受取る場合がある。管理IDデータを受取った場合、演算部122は第1演算を実行し、ユーザIDデータを受取った場合には演算部122は第2演算を実行するようになっている。第1演算、及び第2演算の内容、及び実行方法については追って詳しく述べるが、第1演算、及び第2演算を実行する場合、演算部122は、テーブル記録部123に記録されたテーブルを参照する。
演算部122が行う第1演算と第2演算では、第1集合と第2集合という概念が用いられる。
第1集合は、連番の自然数の集合である。第1集合に含まれる自然数のそれぞれは、管理者が管理IDとして用いることが意図されたものである。したがって、第1集合に含まれる自然数の数は、管理者が発行しようとするユーザIDの数よりも多くされる。第1集合に含まれる連番の自然数は、は必ずしも1から始まる必要はないが、1から始まるのが便利である。
他方、第2集合は、連番となる可能性が0ではないが、事実上、連番ではない、飛び飛びの自然数の集合である。第2集合に含まれる自然数のそれぞれは、管理者がユーザIDとしてユーザに配布することが意図されたものである。第2集合に含まれる自然数の数は、第1集合に含まれる自然数の数と同一である。また、第2集合に含まれる自然数の中には必ず、第1集合に含まれる最大の自然数よりも大きい自然数が含まれる。第1集合に含まれる自然数と、第2集合に含まれる自然数は、一対一対応をしている。もっとも、第1集合に含まれる自然数と、第2集合に含まれる自然数との一対一対応は、両者に含まれる自然数を小さい順に対応させる等の規則的なものではなく、後述するようにランダムであることが多い。
演算部122が実行する第1演算は、第1集合に含まれるいずれかの自然数に対して実行される。第1演算が実行されると、その結果第2集合の中のいずれかの自然数が得られる。この場合に得られる第2集合の中の自然数は、その第2集合の中の自然数を得るために用いられた第1集合の中の自然数と、一対一対応したものとなるようになっている。他方、演算部122が実行する第2演算は、第2集合に含まれるいずれかの自然数に対して実行される。第2演算が実行されると、その結果第1集合の中のいずれかの自然数が得られる。この場合に得られる第1集合の中の自然数は、その第1集合の中の自然数を得るために用いられた第2集合の中の自然数と、一対一対応したものとなるようになっている。上述の第1演算と第2演算は、言葉を変えれば、第1集合の中の自然数と、第2集合の中の自然数を、一対一対応の関係を維持したまま、可逆に写像するものである。そのような演算を行うために必要なテーブルのデータが、テーブル記録部123に記録されている。
演算部122は、管理IDデータを受取った場合には第1演算を実行して、ユーザID(第2集合の中の自然数)を得て、それについてのユーザIDデータを生成する。また、演算部122は、ユーザIDデータを受取った場合には第2演算を実行して、管理ID(第1集合の中の自然数)を得て、それについての管理IDデータを生成する。
演算部122は、ユーザIDデータ又は管理IDデータを生成した場合には、生成したユーザIDデータ又は管理IDデータを出力部124に送るようになっている。
演算部122が行う第1演算と第2演算では、第1集合と第2集合という概念が用いられる。
第1集合は、連番の自然数の集合である。第1集合に含まれる自然数のそれぞれは、管理者が管理IDとして用いることが意図されたものである。したがって、第1集合に含まれる自然数の数は、管理者が発行しようとするユーザIDの数よりも多くされる。第1集合に含まれる連番の自然数は、は必ずしも1から始まる必要はないが、1から始まるのが便利である。
他方、第2集合は、連番となる可能性が0ではないが、事実上、連番ではない、飛び飛びの自然数の集合である。第2集合に含まれる自然数のそれぞれは、管理者がユーザIDとしてユーザに配布することが意図されたものである。第2集合に含まれる自然数の数は、第1集合に含まれる自然数の数と同一である。また、第2集合に含まれる自然数の中には必ず、第1集合に含まれる最大の自然数よりも大きい自然数が含まれる。第1集合に含まれる自然数と、第2集合に含まれる自然数は、一対一対応をしている。もっとも、第1集合に含まれる自然数と、第2集合に含まれる自然数との一対一対応は、両者に含まれる自然数を小さい順に対応させる等の規則的なものではなく、後述するようにランダムであることが多い。
演算部122が実行する第1演算は、第1集合に含まれるいずれかの自然数に対して実行される。第1演算が実行されると、その結果第2集合の中のいずれかの自然数が得られる。この場合に得られる第2集合の中の自然数は、その第2集合の中の自然数を得るために用いられた第1集合の中の自然数と、一対一対応したものとなるようになっている。他方、演算部122が実行する第2演算は、第2集合に含まれるいずれかの自然数に対して実行される。第2演算が実行されると、その結果第1集合の中のいずれかの自然数が得られる。この場合に得られる第1集合の中の自然数は、その第1集合の中の自然数を得るために用いられた第2集合の中の自然数と、一対一対応したものとなるようになっている。上述の第1演算と第2演算は、言葉を変えれば、第1集合の中の自然数と、第2集合の中の自然数を、一対一対応の関係を維持したまま、可逆に写像するものである。そのような演算を行うために必要なテーブルのデータが、テーブル記録部123に記録されている。
演算部122は、管理IDデータを受取った場合には第1演算を実行して、ユーザID(第2集合の中の自然数)を得て、それについてのユーザIDデータを生成する。また、演算部122は、ユーザIDデータを受取った場合には第2演算を実行して、管理ID(第1集合の中の自然数)を得て、それについての管理IDデータを生成する。
演算部122は、ユーザIDデータ又は管理IDデータを生成した場合には、生成したユーザIDデータ又は管理IDデータを出力部124に送るようになっている。
出力部124は、受取ったユーザIDデータ又は管理IDデータを、コンピュータ1の外部に出力できるようにする処理を行うものである。これには限られないが、この実施形態では、ディスプレイ3にユーザIDデータに基づくユーザID、或いは管理IDデータに基づく管理IDを表示するために、ディスプレイ3に画像を表示させるための画像データを生成する。
もっとも、ユーザIDデータ又は管理IDデータの出力の方法は、ディスプレイ3に表示するに限られず、例えば、ユーザに配布するカードにユーザIDを印刷するとか、インターネットを介して管理者等がユーザID或いは管理IDを閲覧可能とする等もデータの出力の方法として考えられる。出力部124は、必要なデータの出力を行えるように必要に応じたユーザID又は管理IDに対する処理を行えるようになっている。
この実施形態では、簡単のため、出力部124は、上述の如き画像データを生成するのみであることとする。出力部124は、生成した画像データをインタフェイス115に出力するようになっている。インタフェイス115は、その画像データをディスプレイ3に送るようになっている。
もっとも、ユーザIDデータ又は管理IDデータの出力の方法は、ディスプレイ3に表示するに限られず、例えば、ユーザに配布するカードにユーザIDを印刷するとか、インターネットを介して管理者等がユーザID或いは管理IDを閲覧可能とする等もデータの出力の方法として考えられる。出力部124は、必要なデータの出力を行えるように必要に応じたユーザID又は管理IDに対する処理を行えるようになっている。
この実施形態では、簡単のため、出力部124は、上述の如き画像データを生成するのみであることとする。出力部124は、生成した画像データをインタフェイス115に出力するようになっている。インタフェイス115は、その画像データをディスプレイ3に送るようになっている。
制御部125は、このコンピュータ1の全体の制御を行うとともに、テーブル記録部123内のテーブルのデータを生成し、テーブル記録部123に記録するものである。制御部125は、テーブルのデータの生成を、入力部121から送られてきた準備データに基いて行う。制御部125がどのようにしてテーブルのデータを生成するのかについては、追って述べることにする。
制御部125は、後述するデータを出力部124に送る場合もある。
制御部125は、後述するデータを出力部124に送る場合もある。
以上説明したID管理装置としてのコンピュータ1の使用方法と、動作について説明する。
コンピュータ1をID管理装置として用いるには、まず、テーブル記録部123に対してテーブルのデータを書き込む処理を制御部125に実行させるべく、管理者は準備データである入力データの入力を入力装置2の操作を行うことによって行う。
コンピュータ1をID管理装置として用いるには、まず、テーブル記録部123に対してテーブルのデータを書き込む処理を制御部125に実行させるべく、管理者は準備データである入力データの入力を入力装置2の操作を行うことによって行う。
かかる入力を行う場合、管理者は、まず、幾つのユーザIDを発行するかを決める。これは、発行されるユーザIDの数、つまり第2集合に含まれる自然数の個数を決定することを意味する。第2集合に含まれる自然数の個数が決まると、第1集合に含まれる自然数の数、つまり第1集合に含まれる連番である自然数の数が決まる。例えば、第1集合に含まれる自然数が1から始まるのであれば、第1集合に含まれる自然数は、発行すべきユーザIDの個数と同数となり、第1集合に含まれる最大の自然数は発行すべきユーザIDの個数と同一になる。また、第1集合に含まれる自然数が1から始まらないのであれあれば、第1集合に含まれる自然数の中の最大のものは、発行すべきユーザIDの個数に、第1集合の中の自然数の始まりとなる第1集合の中の最も小さい自然数を足し、それから1を引いたものとなる。いずれにせよ、これにより第1集合に含まれる自然数のうち、最大の数が求められる。
次いで、管理者は、その最大の数をmとした場合において、m<m1×m2の条件を満たすm1及びm2を決定する。ただし、m1及びm2は互いに素であることが条件となる。
例えば、1000個のユーザIDが必要であり、且つ管理IDが0001から始まるとする。そうすると、管理IDは、0001〜1000の1000個である。この場合、上述のm=1000であるから、上述のm1及びm2は1000<m1×m2の条件を満たす数から選択する。両者は互いに素であり、共通の素因数も含まないのであるから、例えば、前者をある素数のA乗、後者を他の素数のB乗等とすれば、1000<m1×m2の条件を満たすm1及びm2を決定するのは容易である。例えば、m1を3の3乗である27とし、m2を11の2乗である121とした場合には、1000<m1×m2(=3267)の条件が充足される。ここで、m1×m2は、第2集合に含まれ得る自然数の最大値を決定する、言い換えれば、第2集合に含まれ得る数の桁数を決定するものであるから、この数をより大きくすることにより、ユーザIDの桁数は膨れ上がる。例えば、m1を3の3乗と5の3乗の積である3375とし、m2を11の2乗である121と17の3乗である594473とした場合には、m1×m2=2006346375と、第2集合の中に含まれ得る最大の自然数は、10桁にもなる。もっとも、自然数である0000000001〜2006346375のうち、第2集合に含まれる自然数は、これらのうち1000個に過ぎないから、0000000001〜0000001000までの自然数がたまたま第2集合に含まれる自然数として選択された場合には第2集合に含まれる自然数の最大値は0000001000にしかならないことは理論上あり得る。しかしながら、後述するような方法を用いることにより、第2集合に含まれることになる自然数は、1〜m1×m2で求められる自然数の中でランダム性をもって選択されることになるので、第2集合に含まれる自然数の最大値が0000001000にしかならないなどということは、確率的にまず生じない。
管理者は、m1×m2を決定したら、その2つの数を入力装置2を操作して入力する。その2つの数を特定するデータが、準備データである。なお、準備データの入力を行う場合には、ディスプレイ3に、準備データの入力を管理者に促すための画像が表示される。かかる画像の表示は、制御部125からの指示にしたがって出力部124が生成し、インタフェイス115を介してディスプレイ3に送られた画像データに基いて行われる。
準備データは、入力装置2からケーブル2Aを介してコンピュータ1のインタフェイス115に送られ、インタフェイス115を介して入力部121へ送られる。
次いで、管理者は、その最大の数をmとした場合において、m<m1×m2の条件を満たすm1及びm2を決定する。ただし、m1及びm2は互いに素であることが条件となる。
例えば、1000個のユーザIDが必要であり、且つ管理IDが0001から始まるとする。そうすると、管理IDは、0001〜1000の1000個である。この場合、上述のm=1000であるから、上述のm1及びm2は1000<m1×m2の条件を満たす数から選択する。両者は互いに素であり、共通の素因数も含まないのであるから、例えば、前者をある素数のA乗、後者を他の素数のB乗等とすれば、1000<m1×m2の条件を満たすm1及びm2を決定するのは容易である。例えば、m1を3の3乗である27とし、m2を11の2乗である121とした場合には、1000<m1×m2(=3267)の条件が充足される。ここで、m1×m2は、第2集合に含まれ得る自然数の最大値を決定する、言い換えれば、第2集合に含まれ得る数の桁数を決定するものであるから、この数をより大きくすることにより、ユーザIDの桁数は膨れ上がる。例えば、m1を3の3乗と5の3乗の積である3375とし、m2を11の2乗である121と17の3乗である594473とした場合には、m1×m2=2006346375と、第2集合の中に含まれ得る最大の自然数は、10桁にもなる。もっとも、自然数である0000000001〜2006346375のうち、第2集合に含まれる自然数は、これらのうち1000個に過ぎないから、0000000001〜0000001000までの自然数がたまたま第2集合に含まれる自然数として選択された場合には第2集合に含まれる自然数の最大値は0000001000にしかならないことは理論上あり得る。しかしながら、後述するような方法を用いることにより、第2集合に含まれることになる自然数は、1〜m1×m2で求められる自然数の中でランダム性をもって選択されることになるので、第2集合に含まれる自然数の最大値が0000001000にしかならないなどということは、確率的にまず生じない。
管理者は、m1×m2を決定したら、その2つの数を入力装置2を操作して入力する。その2つの数を特定するデータが、準備データである。なお、準備データの入力を行う場合には、ディスプレイ3に、準備データの入力を管理者に促すための画像が表示される。かかる画像の表示は、制御部125からの指示にしたがって出力部124が生成し、インタフェイス115を介してディスプレイ3に送られた画像データに基いて行われる。
準備データは、入力装置2からケーブル2Aを介してコンピュータ1のインタフェイス115に送られ、インタフェイス115を介して入力部121へ送られる。
入力部121は、その準備データを制御部125に送る。
ここで、制御部125は、テーブルのデータを生成する。これには限られないが、この実施形態におけるテーブルのデータは、以下のようなM1と、M2のデータである。
M1は、0からm1−1までの自然数を適当に並べた数列である。仮にM1が27であるとすれば、例えば、M1=(25、15、8、17、26、22、10、11、18、23、2、4、1、9、5、13、3、6、20、0、7、12、21、14、16、19、24)といった0〜26までの自然数を並べた数列になる。
M2は、0からm2−1までの自然数を適当に並べた数列である。M2が仮に121だとすれば、M2は、M1の場合と同様に、0〜120までの数を適当に並べた数列となる。これら数列M1、M2の中の自然数の並び方はランダムであるべきであり、制御部125は公知、或いは周知の方法で、自然数の並びがランダム性を持つ数列M1、M2を生成する。
そして、上記2つの数列M1、M2を、テーブルのデータとして、制御部125はテーブル記録部123に記録する。
ここで、制御部125は、テーブルのデータを生成する。これには限られないが、この実施形態におけるテーブルのデータは、以下のようなM1と、M2のデータである。
M1は、0からm1−1までの自然数を適当に並べた数列である。仮にM1が27であるとすれば、例えば、M1=(25、15、8、17、26、22、10、11、18、23、2、4、1、9、5、13、3、6、20、0、7、12、21、14、16、19、24)といった0〜26までの自然数を並べた数列になる。
M2は、0からm2−1までの自然数を適当に並べた数列である。M2が仮に121だとすれば、M2は、M1の場合と同様に、0〜120までの数を適当に並べた数列となる。これら数列M1、M2の中の自然数の並び方はランダムであるべきであり、制御部125は公知、或いは周知の方法で、自然数の並びがランダム性を持つ数列M1、M2を生成する。
そして、上記2つの数列M1、M2を、テーブルのデータとして、制御部125はテーブル記録部123に記録する。
これにより、コンピュータ1に管理IDからユーザIDを出力させる準備が整った。
管理者は、コンピュータ1に管理IDからユーザIDを出力させる。
管理者は、コンピュータ1に管理IDからユーザIDを出力させる。
上述したように、管理IDは、0001〜1000の1000個である。管理者は、どの管理IDに対応付けられたユーザIDを出力したいのかということを特定する入力を入力装置2を用いて行う。かかる入力が行われるに先立って、ディスプレイ3には、どの管理IDに対するユーザIDを出力したいのかということを特定するための入力を行うことを管理者に促すための画像が表示される。かかる画像の表示は、制御部125からの指示にしたがって出力部124が生成し、インタフェイス115を介してディスプレイ3に送られた画像データに基いて行われる。かかる画像は、1つの管理IDの入力を管理者に促すものであっても良いし、複数の、例えば、管理ID0001〜管理ID0099までのといったある範囲を特定するのに必要となる始点と終点となる管理IDの入力を管理者に促すものであってもよい。
管理者は、例えば、管理ID0001についてのユーザIDを生成したいのであれば、その管理IDを指定する0001の入力を入力装置2にて行い、管理ID0002についてのユーザIDを生成したいのであれば、その管理IDを指定する0002の入力を入力装置2にて行う。或いは、0001〜0099と管理者が指定すると、管理者が、管理ID0001〜管理ID0099までの99個の管理IDと紐付けられたユーザIDの出力を望んでいるという意味合いの入力となる。この実施形態のコンピュータ1は、複数の管理IDの入力をまとめて受取ることができ、複数の管理IDの入力をまとめて受取った場合には、受取った複数の管理IDに対応したユーザIDをまとめて生成できるようにされている。このようにすると、複数のユーザIDを一度の入力装置2の操作でまとめて生成できるので、管理者にとって便利である。
いずれにせよ、管理者が入力した、どの管理IDに対応付けられたユーザIDを出力したいのかということを特定する入力データ、つまり管理IDデータは、インタフェイス115から入力部121へと送られる。
入力部121は、管理IDデータを演算部122に送る。
管理者は、例えば、管理ID0001についてのユーザIDを生成したいのであれば、その管理IDを指定する0001の入力を入力装置2にて行い、管理ID0002についてのユーザIDを生成したいのであれば、その管理IDを指定する0002の入力を入力装置2にて行う。或いは、0001〜0099と管理者が指定すると、管理者が、管理ID0001〜管理ID0099までの99個の管理IDと紐付けられたユーザIDの出力を望んでいるという意味合いの入力となる。この実施形態のコンピュータ1は、複数の管理IDの入力をまとめて受取ることができ、複数の管理IDの入力をまとめて受取った場合には、受取った複数の管理IDに対応したユーザIDをまとめて生成できるようにされている。このようにすると、複数のユーザIDを一度の入力装置2の操作でまとめて生成できるので、管理者にとって便利である。
いずれにせよ、管理者が入力した、どの管理IDに対応付けられたユーザIDを出力したいのかということを特定する入力データ、つまり管理IDデータは、インタフェイス115から入力部121へと送られる。
入力部121は、管理IDデータを演算部122に送る。
演算部122は、管理IDデータを受取った場合、第1演算を行う。
第1演算は以下の数式にしたがって行われる。
y=M1[x mod m1]×m2+M2[x mod m2]
ここで、xは管理IDに対応した自然数、yはユーザIDに対応した自然数、「M1[n]」は、数列M1の中のn番目(ただし、最初の数を0番目と数える。)の数を意味し、「M2[n]」は、数列M2の中のn番目(ただし、最初の数を0番目と数える。)の数を意味する。また、「p mod q」 は、p、qがいずれも整数である場合に、pを法qの剰余系で表現した値、つまり、pをqで割った場合の余りを意味する。演算部122は、「M1[n]」と「M2[n]」の演算を行うためにテーブル記録部123に記録されたテーブルのデータを参照するが、それ以外の部分については、上述の数式による演算を行えるようにされている。
具体的な数字を用いて計算例を示す。ただし、上述のM1とM2は、それらに含まれる自然数の数が多すぎて例としてわかりにくいので、ここではm1、m2、M1、M2として、より簡素な例を用いる。
ここでは、ユーザIDとして3つの自然数が欲しいとする。その場合、管理IDの数は3であり、管理IDは、その最初の番号が1であるとすると、1、2、3となる。その場合、mは3である。ここで、m1=4、m2=3とする。これであれば、m=3<m1×m2(=12)が充足される。
このとき、M1は、0〜3を並べ替えた数列であり、例えば、M1=(1、3、0、2)であるとする。またこのときM2は、0〜2を並べ替えた数列であり、例えば、M2=(2、0、1)であるとする。
まず、管理ID1に対してどのユーザIDが対応しているかを求める。このときの数式は、以下のようになる。なお、yに添えた文字は、その文字に対応した管理IDに対応したユーザIDという意味である。
y1=M1[1 mod 4]×3+M2[1 mod 3]
これを計算すると、
y1=M1[1]×3+M2[1]
=3×3+0=9
つまり、y1=9となる。
同様に、y2を計算する。
y2=M1[2 mod 4]×3+M2[2 mod 3]
=M1[2]×3+M2[2]
=0×3+1=1
つまり、y2=1となる。
同様に、y3を計算する。
y3=M1[3 mod 4]×3+M2[3 mod 3]
=M1[3]×3+M2[0]
=2×3+2=8
つまり、y3=8となる。
これにより、管理ID1に対してユーザID9が、管理ID2に対してユーザID1が、管理ID3に対してユーザID8が、それぞれ重複することなく割当てられる。上述の数式にしたがえば、すべての管理IDに対して重複無く一対一対応した状態で、ユーザIDが割当てられる。
上記計算例によれば、管理IDとユーザIDの桁数はすべての場合で一桁であった。しかしながら、M1、M2に含まれる自然数の数がより大きければ、例えば、既に例示したように、m1を3375とし、m2を594473とするがごときに、両者を大きな数として取れば、ユーザIDはより大きな数が出現することとなり、ユーザIDの桁数は管理IDの桁数よりも一桁以上大きくなる。実際には、ユーザIDの桁数が管理IDの桁数よりも一桁以上、できれば三桁程度以上大きくなるようにm1及びm2を決定するのが良い。
いずれにせよ、生成したユーザIDについてのデータであるユーザIDデータは、演算部122から出力部124へと送られる。なお、この実施形態では、ユーザIDデータは、そのユーザIDデータを生成するきっかけとなった管理IDについての管理IDデータと紐付けられた状態で出力部124に送られるものとする。
第1演算は以下の数式にしたがって行われる。
y=M1[x mod m1]×m2+M2[x mod m2]
ここで、xは管理IDに対応した自然数、yはユーザIDに対応した自然数、「M1[n]」は、数列M1の中のn番目(ただし、最初の数を0番目と数える。)の数を意味し、「M2[n]」は、数列M2の中のn番目(ただし、最初の数を0番目と数える。)の数を意味する。また、「p mod q」 は、p、qがいずれも整数である場合に、pを法qの剰余系で表現した値、つまり、pをqで割った場合の余りを意味する。演算部122は、「M1[n]」と「M2[n]」の演算を行うためにテーブル記録部123に記録されたテーブルのデータを参照するが、それ以外の部分については、上述の数式による演算を行えるようにされている。
具体的な数字を用いて計算例を示す。ただし、上述のM1とM2は、それらに含まれる自然数の数が多すぎて例としてわかりにくいので、ここではm1、m2、M1、M2として、より簡素な例を用いる。
ここでは、ユーザIDとして3つの自然数が欲しいとする。その場合、管理IDの数は3であり、管理IDは、その最初の番号が1であるとすると、1、2、3となる。その場合、mは3である。ここで、m1=4、m2=3とする。これであれば、m=3<m1×m2(=12)が充足される。
このとき、M1は、0〜3を並べ替えた数列であり、例えば、M1=(1、3、0、2)であるとする。またこのときM2は、0〜2を並べ替えた数列であり、例えば、M2=(2、0、1)であるとする。
まず、管理ID1に対してどのユーザIDが対応しているかを求める。このときの数式は、以下のようになる。なお、yに添えた文字は、その文字に対応した管理IDに対応したユーザIDという意味である。
y1=M1[1 mod 4]×3+M2[1 mod 3]
これを計算すると、
y1=M1[1]×3+M2[1]
=3×3+0=9
つまり、y1=9となる。
同様に、y2を計算する。
y2=M1[2 mod 4]×3+M2[2 mod 3]
=M1[2]×3+M2[2]
=0×3+1=1
つまり、y2=1となる。
同様に、y3を計算する。
y3=M1[3 mod 4]×3+M2[3 mod 3]
=M1[3]×3+M2[0]
=2×3+2=8
つまり、y3=8となる。
これにより、管理ID1に対してユーザID9が、管理ID2に対してユーザID1が、管理ID3に対してユーザID8が、それぞれ重複することなく割当てられる。上述の数式にしたがえば、すべての管理IDに対して重複無く一対一対応した状態で、ユーザIDが割当てられる。
上記計算例によれば、管理IDとユーザIDの桁数はすべての場合で一桁であった。しかしながら、M1、M2に含まれる自然数の数がより大きければ、例えば、既に例示したように、m1を3375とし、m2を594473とするがごときに、両者を大きな数として取れば、ユーザIDはより大きな数が出現することとなり、ユーザIDの桁数は管理IDの桁数よりも一桁以上大きくなる。実際には、ユーザIDの桁数が管理IDの桁数よりも一桁以上、できれば三桁程度以上大きくなるようにm1及びm2を決定するのが良い。
いずれにせよ、生成したユーザIDについてのデータであるユーザIDデータは、演算部122から出力部124へと送られる。なお、この実施形態では、ユーザIDデータは、そのユーザIDデータを生成するきっかけとなった管理IDについての管理IDデータと紐付けられた状態で出力部124に送られるものとする。
出力部124は、管理者が入力した管理IDと、その管理IDに一対一対応しているユーザIDとを、それらの対応関係を管理者が視覚的に認識できるようにディスプレイ3に表示するための画像データを生成する。
出力部124は、その画像データをインタフェイス115に出力し、インタフェイス115はその画像データをケーブル3Aを介して、ディスプレイ3に送る。
ディスプレイ3の画面には、管理者が入力した管理IDと、その管理IDに一対一対応しているユーザIDとを、それらの対応関係を管理者が視覚的に認識できるような画像が表示される。
その画像中には例えば、管理者が出力を要求したユーザIDが1つだけの場合であれば、
「管理ID0001…ユーザID2150091233」
の如き画像が含まれることになろう。
また、管理者が出力を要求したユーザIDが複数、例えば3つの場合であれば、
「管理ID0001…ユーザID2150091233
管理ID0002…ユーザID0857325693
管理ID0003…ユーザID1254566578」
の如き画像が含まれることになろう。
このようにして、管理者は、希望した管理IDに一対一対応したユーザIDを得ることができる。なお、このID管理装置としてのコンピュータ1で生成しうる数のユーザIDが未だに生成されていないのであれば、管理者は、更に管理IDを指定して、その管理IDに対応するユーザIDをいつでもコンピュータ1に追加で生成させることができる。
管理者は、上述のようにして生成されたユーザIDを、紙等に印刷してユーザに渡す、電子メールに記載して送信する、インターネット経由で閲覧させる等の適当な方法でユーザに配布すれば良い。
ユーザは、受取ったユーザIDを自分のユーザIDとして使用するが、ユーザも、管理者を除く第三者も、そのユーザIDに紐付けられた管理IDが存在することを知らないし、知る必要もない。また、管理IDからユーザIDを生成するための第1演算には、数列M1、M2が必要であるから、これを知らない第三者は、配布されているユーザIDから管理IDを知ろうとしても、管理IDを知ることができない。
出力部124は、その画像データをインタフェイス115に出力し、インタフェイス115はその画像データをケーブル3Aを介して、ディスプレイ3に送る。
ディスプレイ3の画面には、管理者が入力した管理IDと、その管理IDに一対一対応しているユーザIDとを、それらの対応関係を管理者が視覚的に認識できるような画像が表示される。
その画像中には例えば、管理者が出力を要求したユーザIDが1つだけの場合であれば、
「管理ID0001…ユーザID2150091233」
の如き画像が含まれることになろう。
また、管理者が出力を要求したユーザIDが複数、例えば3つの場合であれば、
「管理ID0001…ユーザID2150091233
管理ID0002…ユーザID0857325693
管理ID0003…ユーザID1254566578」
の如き画像が含まれることになろう。
このようにして、管理者は、希望した管理IDに一対一対応したユーザIDを得ることができる。なお、このID管理装置としてのコンピュータ1で生成しうる数のユーザIDが未だに生成されていないのであれば、管理者は、更に管理IDを指定して、その管理IDに対応するユーザIDをいつでもコンピュータ1に追加で生成させることができる。
管理者は、上述のようにして生成されたユーザIDを、紙等に印刷してユーザに渡す、電子メールに記載して送信する、インターネット経由で閲覧させる等の適当な方法でユーザに配布すれば良い。
ユーザは、受取ったユーザIDを自分のユーザIDとして使用するが、ユーザも、管理者を除く第三者も、そのユーザIDに紐付けられた管理IDが存在することを知らないし、知る必要もない。また、管理IDからユーザIDを生成するための第1演算には、数列M1、M2が必要であるから、これを知らない第三者は、配布されているユーザIDから管理IDを知ろうとしても、管理IDを知ることができない。
他方、管理者は、ユーザから、ユーザIDについての問い合わせを受けた場合などに、発行されたユーザIDがどの管理IDと対応付けられているのかを確認する必要が生じることがある。
そのような場合、管理者は、それと対応付けられている管理IDを確認する対象となるユーザIDを、入力装置2にて入力する。この場合の入力データは、それと対応付けられている管理IDを確認する対象となるユーザIDを特定するためのユーザIDデータとなる。ユーザIDデータは、ケーブル2Aを介してコンピュータ1に送られ、インタフェイス115を介して、入力部121へと送られる。なお、ユーザIDデータの入力を行う場合には、ディスプレイ3に、ユーザIDデータの入力を管理者に促すための画像が表示される。かかる画像の表示は、制御部125からの指示にしたがって出力部124が生成し、インタフェイス115を介してディスプレイ3に送られた画像データに基いて行われる。
入力部121は受取ったユーザIDデータを演算部122へと送る。
そのような場合、管理者は、それと対応付けられている管理IDを確認する対象となるユーザIDを、入力装置2にて入力する。この場合の入力データは、それと対応付けられている管理IDを確認する対象となるユーザIDを特定するためのユーザIDデータとなる。ユーザIDデータは、ケーブル2Aを介してコンピュータ1に送られ、インタフェイス115を介して、入力部121へと送られる。なお、ユーザIDデータの入力を行う場合には、ディスプレイ3に、ユーザIDデータの入力を管理者に促すための画像が表示される。かかる画像の表示は、制御部125からの指示にしたがって出力部124が生成し、インタフェイス115を介してディスプレイ3に送られた画像データに基いて行われる。
入力部121は受取ったユーザIDデータを演算部122へと送る。
ユーザIDデータを受取った場合、演算部122は、上述した第2演算を行う。
第2演算は、入力されたユーザIDに対する演算であって、その結果得られる解が、そのユーザIDと一対一対応している管理IDとなるものである。
これには限られないが、この実施形態では、第2演算は以下のようにして実行される。
第2演算は、
a=int(y/m2)
b=y−a×m2
として、
a≡x mod k1(「≡」は合同、以下同じ。)
b≡x mod k2
の合同方程式を変形した、
ax+bx=cの不定方程式を解くことにより求めることができる。かかる不定方程式は、a、b、k1、k2が整数の場合であって、且つk1とk2とが互いに素である場合には、解が一意に定まることが知られている。ここでk1とk2とを得ることができるが、最終的に求めたいxは、下記の式によって初めて求めることができる。
x=M1[k1]×m2+M2[k2]
ここで、数列M1、M2を参照することが必要となるのが、かかる数列M1、M2はテーブル記録部123に上記のテーブルとして記録されているので、演算部122はテーブル記録部123に記録されたテーブルを参照して、正しいxを特定することができる。
これにより、xつまり管理IDが定まる。演算部122は、管理IDについての管理IDデータを生成し、それを出力部124に送る。これには限られないが、この実施形態の出力部124は、生成した管理IDデータを、その管理IDデータを生成するきっかけとなったユーザIDを特定するユーザIDデータとともに、両者を互いに紐付けた状態で出力部124に送るようになっている。
第2演算は、入力されたユーザIDに対する演算であって、その結果得られる解が、そのユーザIDと一対一対応している管理IDとなるものである。
これには限られないが、この実施形態では、第2演算は以下のようにして実行される。
第2演算は、
a=int(y/m2)
b=y−a×m2
として、
a≡x mod k1(「≡」は合同、以下同じ。)
b≡x mod k2
の合同方程式を変形した、
ax+bx=cの不定方程式を解くことにより求めることができる。かかる不定方程式は、a、b、k1、k2が整数の場合であって、且つk1とk2とが互いに素である場合には、解が一意に定まることが知られている。ここでk1とk2とを得ることができるが、最終的に求めたいxは、下記の式によって初めて求めることができる。
x=M1[k1]×m2+M2[k2]
ここで、数列M1、M2を参照することが必要となるのが、かかる数列M1、M2はテーブル記録部123に上記のテーブルとして記録されているので、演算部122はテーブル記録部123に記録されたテーブルを参照して、正しいxを特定することができる。
これにより、xつまり管理IDが定まる。演算部122は、管理IDについての管理IDデータを生成し、それを出力部124に送る。これには限られないが、この実施形態の出力部124は、生成した管理IDデータを、その管理IDデータを生成するきっかけとなったユーザIDを特定するユーザIDデータとともに、両者を互いに紐付けた状態で出力部124に送るようになっている。
出力部124は、受取った管理IDデータと、ユーザIDデータとに基づき、互いに一対一対応している管理IDとユーザIDとを、それらの一対一対応の関係が視覚的に管理者が把握できるような状態とした画像を、ディスプレイ3に表示させるための画像データを生成する。
生成された画像データはインタフェイス115から、ディスプレイ3に送られる。ディスプレイ3には、その画像データに基づく画像が表示される。当該画像には、管理者が入力したユーザIDと、そのユーザIDと一対一対応した管理IDとが、それらの一対一対応が視覚的に理解できるような状態で表示される。その画像中には、例えば、「ユーザID2150091233…管理ID0001」といった表示が含まれる。
生成された画像データはインタフェイス115から、ディスプレイ3に送られる。ディスプレイ3には、その画像データに基づく画像が表示される。当該画像には、管理者が入力したユーザIDと、そのユーザIDと一対一対応した管理IDとが、それらの一対一対応が視覚的に理解できるような状態で表示される。その画像中には、例えば、「ユーザID2150091233…管理ID0001」といった表示が含まれる。
<変形例1>
上述のID管理装置としてのコンピュータ1では、テーブル記録部123に記録されるテーブルのデータは、管理者の入力する準備データに基いて生成されるものであった。より詳細には、管理者は、上述の互いに素の2つの自然数であるm1及びm2の入力を行い、それに基いてテーブル記録部123に書き込むべきテーブルである数列M1及びM2を制御部125が生成することとなっていた。
もっともかかるテーブルは、コンピュータ1を本願発明のID管理装置として機能させるためのコンピュータプログラムがコンピュータ1にインストールされた時点からテーブル記録部123に記録されていても構わない。また、コンピュータプログラムがコンピュータ1にインストールされた時点でテーブル記録部123に複数のテーブルが記録されており、実際にユーザIDを発行する場合には、その複数のテーブルのうちの1つを管理者に選択させるような仕組みを採用してもよい。
または、上述の実施形態では、準備データを受け付けた制御部125が数列M1及びM2を生成することとなっていたが、管理者がかかる数列M1及びM2を自ら生成して、数列M1及びM2についてのデータを入力装置2から自ら入力することもできる。この場合には、制御部125は受取った数列M1及びM2のデータをそのままテーブル記録部123に記録することになる。
いずれにせよ、ユーザIDの発行が行われるまでのどこかの段階でテーブル記録部123にテーブルが記録されていることが必要なのであるが、それが達成されている限りにおいてはテーブルを記録するために、或いはテーブルを決定するために必要な作業のうちのどの部分をコンピュータ1が担い、どの部分を管理者が担うかということの仕様については、適宜決定することができる。
上述のID管理装置としてのコンピュータ1では、テーブル記録部123に記録されるテーブルのデータは、管理者の入力する準備データに基いて生成されるものであった。より詳細には、管理者は、上述の互いに素の2つの自然数であるm1及びm2の入力を行い、それに基いてテーブル記録部123に書き込むべきテーブルである数列M1及びM2を制御部125が生成することとなっていた。
もっともかかるテーブルは、コンピュータ1を本願発明のID管理装置として機能させるためのコンピュータプログラムがコンピュータ1にインストールされた時点からテーブル記録部123に記録されていても構わない。また、コンピュータプログラムがコンピュータ1にインストールされた時点でテーブル記録部123に複数のテーブルが記録されており、実際にユーザIDを発行する場合には、その複数のテーブルのうちの1つを管理者に選択させるような仕組みを採用してもよい。
または、上述の実施形態では、準備データを受け付けた制御部125が数列M1及びM2を生成することとなっていたが、管理者がかかる数列M1及びM2を自ら生成して、数列M1及びM2についてのデータを入力装置2から自ら入力することもできる。この場合には、制御部125は受取った数列M1及びM2のデータをそのままテーブル記録部123に記録することになる。
いずれにせよ、ユーザIDの発行が行われるまでのどこかの段階でテーブル記録部123にテーブルが記録されていることが必要なのであるが、それが達成されている限りにおいてはテーブルを記録するために、或いはテーブルを決定するために必要な作業のうちのどの部分をコンピュータ1が担い、どの部分を管理者が担うかということの仕様については、適宜決定することができる。
<変形例2>
変形例2は、上述の実施形態における第1演算と第2演算とについての変形である。
上述の実施形態における第1演算と第2演算は、剰余系の概念を利用した演算であった。変形例2は、より簡単なテーブルを使った、より簡単な演算を、第1演算と第2演算として用いる。
変形例2で用いるテーブルは、例えば、図4(A)に示したようなものである。このテーブルでは、上段に記載の0〜9の一組の数字と、下段に記載の0〜9の他の一組の数字とを、その上下に位置するものとの間でそれぞれ相互に変換することとしている。0と3を相互に変換する、1と9を相互に変換する、2と7を相互に変換する…、というのがこの図4(A)の意味するところである。
ここで、例えば、管理ID01〜20に対応したユーザIDを発行するとする。図4(A)の表における上側が管理IDにおける数字に、同下側がユーザIDにおける数字に対応するとする。
例えば、管理ID01であれば、図4(A)の表によれば、0は3に、1は9にそれぞれ変換される。かかる変換が第1演算である。したがって、管理ID01に対応するユーザIDは39になる。ユーザIDからそれに対応する管理IDを求めることも、図4(A)の表を用いて上記と逆の処理を行うことにより実現することができる。こちらの変換が第2演算である。
この場合においても、管理IDとユーザIDとは一対一対応する。また、この場合においても、管理IDの中の最大の自然数である20よりも、大きい自然数が第2集合であるユーザIDの集合の中に含まれる。最大のユーザIDは、管理ID11に対応する99である。
変形例2は、上述の実施形態における第1演算と第2演算とについての変形である。
上述の実施形態における第1演算と第2演算は、剰余系の概念を利用した演算であった。変形例2は、より簡単なテーブルを使った、より簡単な演算を、第1演算と第2演算として用いる。
変形例2で用いるテーブルは、例えば、図4(A)に示したようなものである。このテーブルでは、上段に記載の0〜9の一組の数字と、下段に記載の0〜9の他の一組の数字とを、その上下に位置するものとの間でそれぞれ相互に変換することとしている。0と3を相互に変換する、1と9を相互に変換する、2と7を相互に変換する…、というのがこの図4(A)の意味するところである。
ここで、例えば、管理ID01〜20に対応したユーザIDを発行するとする。図4(A)の表における上側が管理IDにおける数字に、同下側がユーザIDにおける数字に対応するとする。
例えば、管理ID01であれば、図4(A)の表によれば、0は3に、1は9にそれぞれ変換される。かかる変換が第1演算である。したがって、管理ID01に対応するユーザIDは39になる。ユーザIDからそれに対応する管理IDを求めることも、図4(A)の表を用いて上記と逆の処理を行うことにより実現することができる。こちらの変換が第2演算である。
この場合においても、管理IDとユーザIDとは一対一対応する。また、この場合においても、管理IDの中の最大の自然数である20よりも、大きい自然数が第2集合であるユーザIDの集合の中に含まれる。最大のユーザIDは、管理ID11に対応する99である。
変形例2で用いるテーブルは、図4(B)に示したようなものであってもよい。このテーブルでは、上段に記載の0〜9の一組の数字と、下段に記載の28、57、93……82、64という他の一組の数字とを、その上下に位置するものとの間でそれぞれ相互に変換することとしている。0と28を相互に変換する、1と57を相互に変換する、2と93を相互に変換する…、というのがこの図4(B)の意味するところである。
ここで、例えば、管理ID01〜20に対応したユーザIDを発行するとする。図4(B)の表における上側が管理IDにおける数字に、同下側がユーザIDにおける数字に対応するとする。
例えば、管理ID01であれば、図4(B)の表によれば、0は28に、1は57にそれぞれ変換される。かかる変換が第1演算である。したがって、管理ID01に対応するユーザIDは2857になる。ユーザIDからそれに対応する管理IDを求めることも、ユーザIDを二桁ずつに分割した上で、その二桁の数字を図4(B)の表を用いて下段から上段に変換する、上記と逆の処理を行うことにより実現することができる。こちらの変換が第2演算である。
この場合においても、管理IDとユーザIDとは一対一対応する。また、この場合においても、管理IDの中の最大の自然数である20よりも、大きい自然数が第2集合であるユーザIDの集合の中に含まれる。最大のユーザIDは、管理ID20に対応する9328である。
ここで、例えば、管理ID01〜20に対応したユーザIDを発行するとする。図4(B)の表における上側が管理IDにおける数字に、同下側がユーザIDにおける数字に対応するとする。
例えば、管理ID01であれば、図4(B)の表によれば、0は28に、1は57にそれぞれ変換される。かかる変換が第1演算である。したがって、管理ID01に対応するユーザIDは2857になる。ユーザIDからそれに対応する管理IDを求めることも、ユーザIDを二桁ずつに分割した上で、その二桁の数字を図4(B)の表を用いて下段から上段に変換する、上記と逆の処理を行うことにより実現することができる。こちらの変換が第2演算である。
この場合においても、管理IDとユーザIDとは一対一対応する。また、この場合においても、管理IDの中の最大の自然数である20よりも、大きい自然数が第2集合であるユーザIDの集合の中に含まれる。最大のユーザIDは、管理ID20に対応する9328である。
<変形例3>
変形例3は、上述の実施形態における第1演算と第2演算とについての変形である。
この場合、第1演算と第2演算とは、以下のようなものとなる。
第1演算では、擬似乱数の生成を用いる。擬似乱数は、例えば、ある初期値(2つ以上の場合もある)を用い、過去の値を所定の関数に代入することにより、新しい値を順次作るという方法を繰り返し行うことにより生成される。次々に生成される数字(自然数)は乱数ではあるものの、完全な乱数ではなく、同じ初期値を用いた場合には繰り返し発生させられる、言い換えれば初期値依存性のあるものとなるから、その意味で「擬似」乱数と呼ばれる。
上述の「値」を作るのに使われる関数の例として、以下の(a)〜(c)を挙げる。以下の(a)〜(c)はいずれも、N番目の「値」であるXNを作るための式である。また、P、Q、R、Sは自然数である。
(a)(XN)=(XN−1)P+(XN−2)Q
(b)(XN)=(XN−1)P
(c)(XN)=(XN−1)P(XN−2)Q(XN-3)R(XN−4)S
(a)は、過去の「値」2つを用い、それらをそれぞれP乗とQ乗したものを足し合わせることにより、新しい「値」を生成する。なお、正確には、過去の「値」2つを用い、それらをP乗とQ乗したものを足し合わせると、桁数が増えるため、実際には得られた値のうちの頭から適当な桁数を抜き出す、末尾から適当な桁数を抜き出す、或いはその値のうちの適当な部分から適当な桁数を抜き出すこと等により、新しい「値」を生成する。
(b)は、過去の「値」1つを用い、それをP乗したものの桁数を上述のよう に整理したものを新しい「値」とするものである。
(c)は、過去の「値」4つを用い、それらをそれぞれP乗、Q乗、R乗、S乗したものの積を取り、その後上述したように桁数を整理したものを新しい「値」とするものである。
変形例3では、上述の(a)〜(c)の数式のいずれかを選択し、それに基いて例えば、10桁の自然数を連続して生成する。
例えば、管理IDを0001〜1000まで作るとして、その場合には、まず、上述の(a)〜(c)の数式のいずれかを選択し、擬似乱数を生成する。
管理ID0001についての擬似乱数は、上述の数式における(X1)となる。同様に、管理ID0002についての擬似乱数は、上述の数式における(X2)となり、管理ID0003についての擬似乱数は、上述の数式における(X3)となり、……管理ID1000についての擬似乱数は、上述の数式における(X1000)となる。これが第1演算となる。かかる第1演算を行うためには、演算部122が参照すべきものとして初期値が必要となる。初期値は数式(a)であれば、(X0)と(X−1)が必要であり、数式(b)であれば、(X0)が必要であり、数式(c)であれば、(X0)と(X−1)と(X−2)と(X−3)が必要となる。それら必要となる初期値が、この変形例3では、テーブルとしてテーブル記録部123に記録されることになる。
他方、自然数であり且つ擬似乱数であるユーザIDから管理IDを演算で求める方法は以下のとおりである。
上述した通り、擬似乱数は一見すれば乱数ではあるが、同じ初期値と同じ数式(アルゴリズム)とを用いれば、同じ数列を何度でも繰り返し生成することができるものである。
あるユーザIDが、それと対応付けられた管理IDを生成するためにコンピュータ1に入力されたとする。そのとき、演算部122は、初期値に基いて擬似乱数を次々に生成する。次々に生成された擬似乱数の中には必ず入力されたユーザIDと同じものがある。演算部122は、入力されたユーザIDと同じ擬似乱数が初期値から幾つ目に作られたものかカウントしている。その擬似乱数が生成された順番が、そのユーザIDの管理IDとなる。例えば、入力されたユーザIDと同じ擬似乱数が、初期値から順に生成された擬似乱数のうち150番目に生成されたものと一致したとする。その場合、その擬似乱数は(X0150)であり、その管理IDは0150であるということになる。
この場合においても、管理IDとユーザIDとは一対一対応する。また、この場合においても、管理IDの中の最大の自然数である1000よりも、大きい自然数が第2集合であるユーザIDの集合の中に含まれることになる。ユーザIDは10桁であるから、それは当然である。
変形例3は、上述の実施形態における第1演算と第2演算とについての変形である。
この場合、第1演算と第2演算とは、以下のようなものとなる。
第1演算では、擬似乱数の生成を用いる。擬似乱数は、例えば、ある初期値(2つ以上の場合もある)を用い、過去の値を所定の関数に代入することにより、新しい値を順次作るという方法を繰り返し行うことにより生成される。次々に生成される数字(自然数)は乱数ではあるものの、完全な乱数ではなく、同じ初期値を用いた場合には繰り返し発生させられる、言い換えれば初期値依存性のあるものとなるから、その意味で「擬似」乱数と呼ばれる。
上述の「値」を作るのに使われる関数の例として、以下の(a)〜(c)を挙げる。以下の(a)〜(c)はいずれも、N番目の「値」であるXNを作るための式である。また、P、Q、R、Sは自然数である。
(a)(XN)=(XN−1)P+(XN−2)Q
(b)(XN)=(XN−1)P
(c)(XN)=(XN−1)P(XN−2)Q(XN-3)R(XN−4)S
(a)は、過去の「値」2つを用い、それらをそれぞれP乗とQ乗したものを足し合わせることにより、新しい「値」を生成する。なお、正確には、過去の「値」2つを用い、それらをP乗とQ乗したものを足し合わせると、桁数が増えるため、実際には得られた値のうちの頭から適当な桁数を抜き出す、末尾から適当な桁数を抜き出す、或いはその値のうちの適当な部分から適当な桁数を抜き出すこと等により、新しい「値」を生成する。
(b)は、過去の「値」1つを用い、それをP乗したものの桁数を上述のよう に整理したものを新しい「値」とするものである。
(c)は、過去の「値」4つを用い、それらをそれぞれP乗、Q乗、R乗、S乗したものの積を取り、その後上述したように桁数を整理したものを新しい「値」とするものである。
変形例3では、上述の(a)〜(c)の数式のいずれかを選択し、それに基いて例えば、10桁の自然数を連続して生成する。
例えば、管理IDを0001〜1000まで作るとして、その場合には、まず、上述の(a)〜(c)の数式のいずれかを選択し、擬似乱数を生成する。
管理ID0001についての擬似乱数は、上述の数式における(X1)となる。同様に、管理ID0002についての擬似乱数は、上述の数式における(X2)となり、管理ID0003についての擬似乱数は、上述の数式における(X3)となり、……管理ID1000についての擬似乱数は、上述の数式における(X1000)となる。これが第1演算となる。かかる第1演算を行うためには、演算部122が参照すべきものとして初期値が必要となる。初期値は数式(a)であれば、(X0)と(X−1)が必要であり、数式(b)であれば、(X0)が必要であり、数式(c)であれば、(X0)と(X−1)と(X−2)と(X−3)が必要となる。それら必要となる初期値が、この変形例3では、テーブルとしてテーブル記録部123に記録されることになる。
他方、自然数であり且つ擬似乱数であるユーザIDから管理IDを演算で求める方法は以下のとおりである。
上述した通り、擬似乱数は一見すれば乱数ではあるが、同じ初期値と同じ数式(アルゴリズム)とを用いれば、同じ数列を何度でも繰り返し生成することができるものである。
あるユーザIDが、それと対応付けられた管理IDを生成するためにコンピュータ1に入力されたとする。そのとき、演算部122は、初期値に基いて擬似乱数を次々に生成する。次々に生成された擬似乱数の中には必ず入力されたユーザIDと同じものがある。演算部122は、入力されたユーザIDと同じ擬似乱数が初期値から幾つ目に作られたものかカウントしている。その擬似乱数が生成された順番が、そのユーザIDの管理IDとなる。例えば、入力されたユーザIDと同じ擬似乱数が、初期値から順に生成された擬似乱数のうち150番目に生成されたものと一致したとする。その場合、その擬似乱数は(X0150)であり、その管理IDは0150であるということになる。
この場合においても、管理IDとユーザIDとは一対一対応する。また、この場合においても、管理IDの中の最大の自然数である1000よりも、大きい自然数が第2集合であるユーザIDの集合の中に含まれることになる。ユーザIDは10桁であるから、それは当然である。
<変形例4>
変形例4は、上述の実施形態における第1演算と第2演算とについての変形であり、且つ変形例1〜3の変形でもある。
上述の実施形態、及び変形例1〜3はいずれも、管理IDが自然数(正の整数)であり、ユーザIDも自然数(正の整数)であった。
上述の実施形態、及び変形例1〜3のいずれにおいても、管理IDを負の整数とし、ユーザIDを負の整数とすることが可能である。例えば、上述の実施形態、及び変形例1〜3等で、管理IDが0001〜1000であったのを、変形例4では、−1000〜−0001とすることが可能である。この場合、それら管理IDのそれぞれに一対一対応するユーザIDは、上述の実施形態、及び変形例1〜3で説明したユーザIDに「−」の符号が付いたものとなる。
言い換えれば、変形例4の管理IDは、上述の実施形態、及び変形例1〜3で説明した管理IDを、数直線上で0を中心に折り返したものとすることができ、また、変形例4のユーザIDは、上述の実施形態、及び変形例1〜3で説明したユーザIDを、数直線上で0を中心に折り返したものとすることができる。
変形例4における第1演算及び第2演算の方法は、管理IDとユーザIDとの双方に「−」の符号を付す以外の部分においては、上述の実施形態、及び変形例1〜3で説明したものを流用することができる。
変形例4は、上述の実施形態における第1演算と第2演算とについての変形であり、且つ変形例1〜3の変形でもある。
上述の実施形態、及び変形例1〜3はいずれも、管理IDが自然数(正の整数)であり、ユーザIDも自然数(正の整数)であった。
上述の実施形態、及び変形例1〜3のいずれにおいても、管理IDを負の整数とし、ユーザIDを負の整数とすることが可能である。例えば、上述の実施形態、及び変形例1〜3等で、管理IDが0001〜1000であったのを、変形例4では、−1000〜−0001とすることが可能である。この場合、それら管理IDのそれぞれに一対一対応するユーザIDは、上述の実施形態、及び変形例1〜3で説明したユーザIDに「−」の符号が付いたものとなる。
言い換えれば、変形例4の管理IDは、上述の実施形態、及び変形例1〜3で説明した管理IDを、数直線上で0を中心に折り返したものとすることができ、また、変形例4のユーザIDは、上述の実施形態、及び変形例1〜3で説明したユーザIDを、数直線上で0を中心に折り返したものとすることができる。
変形例4における第1演算及び第2演算の方法は、管理IDとユーザIDとの双方に「−」の符号を付す以外の部分においては、上述の実施形態、及び変形例1〜3で説明したものを流用することができる。
1 コンピュータ
2 入力装置
2A ケーブル
3 ディスプレイ
3A ケーブル
121 入力部
122 演算部
123 テーブル記録部
124 出力部
125 制御部
2 入力装置
2A ケーブル
3 ディスプレイ
3A ケーブル
121 入力部
122 演算部
123 テーブル記録部
124 出力部
125 制御部
Claims (5)
- 連番の自然数の集合である第1集合に含まれる前記自然数のそれぞれを、管理者が用いる管理IDとして用いるとともに、前記第1集合に含まれる最大の自然数よりも大きい自然数を含み、且つそれに含まれる自然数の数が前記第1集合に含まれる数と同数の第2集合に含まれる前記自然数のそれぞれを、ユーザに配布するユーザIDとして用いるようにするID管理装置であって、
入力を行う入力部と、演算を行う演算部と、演算結果を出力する出力部と、前記演算部が演算を行うときに参照するテーブルを記録する記録部と、を備えており、
前記入力部から、前記第1集合に含まれる前記自然数の1つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第1演算を行った結果として、前記第2集合に含まれる前記自然数の1つを生成するようになっており、且つ前記出力部は、前記第1演算の結果として生成された前記第2集合に含まれる前記自然数の1つを出力するようになっているとともに、
前記入力部から、前記第2集合に含まれる前記自然数の1つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第2演算を行った結果として、前記第1集合に含まれる前記自然数の1つを生成するようになっており、且つ前記出力部は、前記第2演算の結果として生成された前記第1集合に含まれる前記自然数の1つを出力するようになっているとともに、
前記第1集合に含まれる自然数のそれぞれと、前記第2集合に含まれる自然数のそれぞれとは、一対一対応しており、前記第1演算を行うために、前記第1集合における前記自然数のうちの任意のものを入力した場合には、入力された前記第1集合における前記自然数に対応した前記第2集合に含まれる前記自然数が出力されるようになっており、且つ前記第2演算を行うために、前記第2集合における前記自然数のうちの任意のものを入力した場合には、入力された前記第2集合における前記自然数に対応した前記第1集合に含まれる前記自然数が出力されるようになっており、且つ、
前記第1集合に含まれる最大の数よりもそれらの積が大きな数となる互いに素である2つの整数m 1 、及びm 2 のそれぞれに基いて生成された、0からm 1 −1までの自然数を適当に並べた数列であるM1、及び0からm 2 −1までの自然数を適当に並べた数列であるM2が、前記テーブルとして前記記録部に記録されており、
前記演算部は、前記第1集合に含まれる自然数のうち前記入力部から入力されるものをxとした場合に、前記出力部から出力される前記第2集合に含まれる自然数を、
y=M1[x mod m 1 ]×m 2 +M2[x mod m 2 ]
(ただし、「M1[n]」は、数列M1の中のn番目(ただし、最初の数を0番目と数える。)の数を意味し、「M2[n]」は、数列M2の中のn番目(ただし、最初の数を0番目と数える。)の数を意味する。また、「p mod q」 は、p、qがいずれも整数である場合に、pを法qの剰余系で表現した値(言い換えれば、pをqで割った場合の余り)を意味する。)
の演算により求めるようになっている、
ID管理装置。 - 前記第1集合に含まれる前記自然数のうちの最大のものと、前記第2集合に含まれる前記自然数のうちの最大のものとを比較すると、後者は前者よりも一桁以上大きな数である、
請求項1記載のID管理装置。 - 連番の自然数の集合である第1集合に含まれる前記自然数のそれぞれを、管理者が用いる管理IDとして用いるとともに、前記第1集合に含まれる最大の自然数よりも大きい自然数を含み、且つそれに含まれる自然数の数が前記第1集合に含まれる数と同数の第2集合に含まれる前記自然数のそれぞれを、ユーザに配布するユーザIDとして用いるようにする、演算を行う演算部と、前記演算部が演算を行うときに参照するテーブルを記録する記録部と、を備えているID管理装置の前記演算部が実行する方法であって、
前記演算部が実行する、
前記第1集合に含まれる前記自然数の1つが入力されたときに、前記記録部に記録されたテーブルを参照して所定の演算である第1演算を行った結果として、前記第2集合に含まれる前記自然数の1つを生成するとともに、前記第1演算の結果として生成された前記第2集合に含まれる前記自然数の1つを出力する過程、
前記第2集合に含まれる前記自然数の1つが入力されたときに、前記記録部に記録されたテーブルを参照して所定の演算である第2演算を行った結果として、前記第1集合に含まれる前記自然数の1つを生成するとともに、前記第2演算の結果として生成された前記第1集合に含まれる前記自然数の1つを出力する過程、
を含み、
前記第1集合に含まれる自然数のそれぞれと、前記第2集合に含まれる自然数のそれぞれとは、一対一対応しており、前記第1演算を行うために、前記第1集合における前記自然数のうちの任意のものが入力された場合には、入力された前記第1集合における前記自然数に対応した前記第2集合に含まれる前記自然数を出力し、且つ前記第2演算を行うために、前記第2集合における前記自然数のうちの任意のものが入力された場合には、入力された前記第2集合における前記自然数に対応した前記第1集合に含まれる前記自然数を出力し、且つ、
前記第1集合に含まれる最大の数よりもそれらの積が大きな数となる互いに素である2つの整数m 1 、及びm 2 のそれぞれに基いて生成された、0からm 1 −1までの自然数を適当に並べた数列であるM1、及び0からm 2 −1までの自然数を適当に並べた数列であるM2が、前記テーブルとして前記記録部に記録されており、
前記演算部は、前記第1集合に含まれる自然数のうち入力されるものをxとした場合に、出力される前記第2集合に含まれる自然数を、
y=M1[x mod m 1 ]×m 2 +M2[x mod m 2 ]
(ただし、「M1[n]」は、数列M1の中のn番目(ただし、最初の数を0番目と数える。)の数を意味し、「M2[n]」は、数列M2の中のn番目(ただし、最初の数を0番目と数える。)の数を意味する。また、「p mod q」 は、p、qがいずれも整数である場合に、pを法qの剰余系で表現した値(言い換えれば、pをqで割った場合の余り)を意味する。)
の演算により求める、
方法。 - 連番の自然数の集合である第1集合に含まれる前記自然数のそれぞれを、管理者が用いる管理IDとして用いるとともに、前記第1集合に含まれる最大の自然数よりも大きい自然数を含み、且つそれに含まれる自然数の数が前記第1集合に含まれる数と同数の第2集合に含まれる前記自然数のそれぞれを、ユーザに配布するユーザIDとして用いるようにするID管理装置として、コンピュータを機能させるためのコンピュータプログラムであって、
前記コンピュータを、
入力を行う入力部と、演算を行う演算部と、演算結果を出力する出力部と、前記演算部が演算を行うときに参照するテーブルを記録する記録部と、として機能させるためのものであり、
前記入力部から、前記第1集合に含まれる前記自然数の1つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第1演算を行った結果として、前記第2集合に含まれる前記自然数の1つを生成するようになっており、且つ前記出力部は、前記第1演算の結果として生成された前記第2集合に含まれる前記自然数の1つを出力するようになっているとともに、
前記入力部から、前記第2集合に含まれる前記自然数の1つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第2演算を行った結果として、前記第1集合に含まれる前記自然数の1つを生成するようになっており、且つ前記出力部は、前記第2演算の結果として生成された前記第1集合に含まれる前記自然数の1つを出力するようになっているとともに、
前記第1集合に含まれる自然数のそれぞれと、前記第2集合に含まれる自然数のそれぞれとは、一対一対応しており、前記第1演算を行うために、前記第1集合における前記自然数のうちの任意のものを入力した場合には、入力された前記第1集合における前記自然数に対応した前記第2集合に含まれる前記自然数が出力されるようになっており、且つ前記第2演算を行うために、前記第2集合における前記自然数のうちの任意のものを入力した場合には、入力された前記第2集合における前記自然数に対応した前記第1集合に含まれる前記自然数が出力されるようになっており、且つ、
前記第1集合に含まれる最大の数よりもそれらの積が大きな数となる互いに素である2つの整数m 1 、及びm 2 のそれぞれに基いて生成された、0からm 1 −1までの自然数を適当に並べた数列であるM1、及び0からm 2 −1までの自然数を適当に並べた数列であるM2が、前記テーブルとして前記記録部に記録されており、
前記演算部は、前記第1集合に含まれる自然数のうち前記入力部から入力されるものをxとした場合に、前記出力部から出力される前記第2集合に含まれる自然数を、
y=M1[x mod m 1 ]×m 2 +M2[x mod m 2 ]
(ただし、「M1[n]」は、数列M1の中のn番目(ただし、最初の数を0番目と数える。)の数を意味し、「M2[n]」は、数列M2の中のn番目(ただし、最初の数を0番目と数える。)の数を意味する。また、「p mod q」 は、p、qがいずれも整数である場合に、pを法qの剰余系で表現した値(言い換えれば、pをqで割った場合の余り)を意味する。)
の演算により求めるようになっている、
コンピュータプログラム。 - 連番の負の整数の集合である第1集合に含まれる前記負の整数のそれぞれを、管理者が用いる管理IDとして用いるとともに、前記第1集合に含まれる最小の負の整数よりも小さい負の整数を含み、且つそれに含まれる負の整数の数が前記第1集合に含まれる数と同数の第2集合に含まれる前記負の整数のそれぞれを、ユーザに配布するユーザIDとして用いるようにするID管理装置であって、
入力を行う入力部と、演算を行う演算部と、演算結果を出力する出力部と、前記演算部が演算を行うときに参照するテーブルを記録する記録部と、を備えており、
前記入力部から、前記第1集合に含まれる前記負の整数の1つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第1演算を行った結果として、前記第2集合に含まれる前記負の整数の1つを生成するようになっており、且つ前記出力部は、前記第1演算の結果として生成された前記第2集合に含まれる前記負の整数の1つを出力するようになっているとともに、
前記入力部から、前記第2集合に含まれる前記負の整数の1つを入力すると、前記演算部は、前記記録部に記録されたテーブルを参照して所定の演算である第2演算を行った結果として、前記第1集合に含まれる前記負の整数の1つを生成するようになっており、且つ前記出力部は、前記第2演算の結果として生成された前記第1集合に含まれる前記負の整数の1つを出力するようになっているとともに、
前記第1集合に含まれる負の整数のそれぞれと、前記第2集合に含まれる負の整数のそれぞれとは、一対一対応しており、前記第1演算を行うために、前記第1集合における前記負の整数のうちの任意のものを入力した場合には、入力された前記第1集合における前記負の整数に対応した前記第2集合に含まれる前記負の整数が出力されるようになっており、且つ前記第2演算を行うために、前記第2集合における前記負の整数のうちの任意のものを入力した場合には、入力された前記第2集合における前記負の整数に対応した前記第1集合に含まれる前記負の整数が出力されるようになっており、且つ、
前記第1集合に含まれる最大の数よりもそれらの積が小さな数となる互いに素である2つの整数m 1 、及びm 2 のそれぞれに基いて生成された、0からm 1 +1までの自然数を適当に並べた数列であるM1、及び0からm 2 +1までの自然数を適当に並べた数列であるM2が、前記テーブルとして前記記録部に記録されており、
前記演算部は、前記第1集合に含まれる負の整数のうち前記入力部から入力されるものをxとした場合に、前記出力部から出力される前記第2集合に含まれる負の整数を、
y=M1[x mod m 1 ]×m 2 +M2[x mod m 2 ]
(ただし、「M1[n]」は、数列M1の中の0から順に数えた場合におけるn番目(ただし、最初の数を0番目と数える。)の数を意味し、「M2[n]」は、数列M2の中の0から順に数えた場合におけるn番目(ただし、最初の数を0番目と数える。)の数を意味する。また、「p mod q」 は、p、qがいずれも整数である場合に、pを法qの剰余系で表現した値(言い換えれば、pをqで割った場合の余り(負の整数))を意味する。)
の演算により求めるようになっている、
ID管理装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2016/075210 WO2018042492A1 (ja) | 2016-08-29 | 2016-08-29 | Id管理装置、id管理方法、コンピュータプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6326176B1 true JP6326176B1 (ja) | 2018-05-16 |
JPWO2018042492A1 JPWO2018042492A1 (ja) | 2018-08-30 |
Family
ID=61300294
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017528980A Active JP6326176B1 (ja) | 2016-08-29 | 2016-08-29 | Id管理装置、id管理方法、コンピュータプログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6326176B1 (ja) |
WO (1) | WO2018042492A1 (ja) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002236862A (ja) * | 2001-02-09 | 2002-08-23 | Toyota Motor Corp | 決済実行サイト、決済システム、決済方法、記録媒体、及び、プログラム |
JP2005110015A (ja) * | 2003-09-30 | 2005-04-21 | Toshiba Corp | 識別情報埋込装置、識別情報解析装置、識別情報埋込方法、識別情報解析方法及びプログラム |
JP2006092131A (ja) * | 2004-09-22 | 2006-04-06 | Fujitsu Ltd | パスワード入力装置 |
JP2007041801A (ja) * | 2005-08-02 | 2007-02-15 | E Bank Corp | 取引システムの制御装置 |
WO2012098649A1 (ja) * | 2011-01-18 | 2012-07-26 | 三菱電機株式会社 | 暗号システム、暗号システムの暗号処理方法、暗号化装置、暗号化プログラム、復号装置、復号プログラム、セットアップ装置、セットアッププログラム、鍵生成装置、鍵生成プログラム、鍵委譲装置および鍵委譲プログラム |
JP2014032537A (ja) * | 2012-08-03 | 2014-02-20 | Cac:Kk | モバイル通信デバイス向けの認証システム |
JP2014139736A (ja) * | 2013-01-21 | 2014-07-31 | Dainippon Printing Co Ltd | Id識別子生成方法及びid識別子生成システム |
-
2016
- 2016-08-29 JP JP2017528980A patent/JP6326176B1/ja active Active
- 2016-08-29 WO PCT/JP2016/075210 patent/WO2018042492A1/ja active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002236862A (ja) * | 2001-02-09 | 2002-08-23 | Toyota Motor Corp | 決済実行サイト、決済システム、決済方法、記録媒体、及び、プログラム |
JP2005110015A (ja) * | 2003-09-30 | 2005-04-21 | Toshiba Corp | 識別情報埋込装置、識別情報解析装置、識別情報埋込方法、識別情報解析方法及びプログラム |
JP2006092131A (ja) * | 2004-09-22 | 2006-04-06 | Fujitsu Ltd | パスワード入力装置 |
JP2007041801A (ja) * | 2005-08-02 | 2007-02-15 | E Bank Corp | 取引システムの制御装置 |
WO2012098649A1 (ja) * | 2011-01-18 | 2012-07-26 | 三菱電機株式会社 | 暗号システム、暗号システムの暗号処理方法、暗号化装置、暗号化プログラム、復号装置、復号プログラム、セットアップ装置、セットアッププログラム、鍵生成装置、鍵生成プログラム、鍵委譲装置および鍵委譲プログラム |
JP2014032537A (ja) * | 2012-08-03 | 2014-02-20 | Cac:Kk | モバイル通信デバイス向けの認証システム |
JP2014139736A (ja) * | 2013-01-21 | 2014-07-31 | Dainippon Printing Co Ltd | Id識別子生成方法及びid識別子生成システム |
Also Published As
Publication number | Publication date |
---|---|
JPWO2018042492A1 (ja) | 2018-08-30 |
WO2018042492A1 (ja) | 2018-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Freire et al. | Computational reproducibility: state-of-the-art, challenges, and database research opportunities | |
JP2015525394A5 (ja) | ||
WO2005078587A1 (ja) | コンピュータシステムおよびファイルの保存・読出方法 | |
JP6459378B2 (ja) | 課題管理装置および課題管理プログラム | |
CN113468556B (zh) | 完全策略隐藏的数据访问控制方法及其相关设备 | |
JP2015510307A5 (ja) | ||
JP2005174023A (ja) | 認証システムおよびその方法 | |
JP6326176B1 (ja) | Id管理装置、id管理方法、コンピュータプログラム | |
KR101658072B1 (ko) | 터치 면적에 따른 잠금 해제가 가능한 터치 스크린을 포함하는 장치 | |
JP4602675B2 (ja) | 機密情報管理システム、機密情報管理方法、および機密情報管理プログラム、並びに機密情報管理システム用端末プログラム | |
CN112583603B (zh) | 可视化签名方法、装置、电子设备和计算机可读存储介质 | |
JP2005130404A5 (ja) | ||
Firnberg | Computers, management and information | |
JP2005130404A (ja) | 復元制御型秘密情報分散方法、復元制御型秘密情報分散装置、復元制御型秘密情報分散プログラム及びその記録媒体 | |
JP2010231434A5 (ja) | 表示方法、プログラムおよび表示装置 | |
JP6506201B2 (ja) | 目的変数に対応する説明変数群を決定するシステム及び方法 | |
JP2017220218A (ja) | 報酬予測計算装置、報酬予測計算サーバー、報酬予測計算プログラム及び報酬予測計算方法 | |
DeLong et al. | Design and evaluation of graphical feedback on tangible interactions in a low-resolution edge display | |
JP2007172202A (ja) | 遺伝子情報管理システム | |
JP7110862B2 (ja) | 情報処理装置及びプログラム | |
JP2015035199A (ja) | データ通信システム、通信端末装置、及び通信プログラム | |
JP6985128B2 (ja) | 処方監査情報表示装置、処方監査情報表示方法、および処方監査情報表示プログラム | |
JP5759925B2 (ja) | データ制御装置、データ制御方法、データ制御プログラム | |
JP5843897B2 (ja) | Dns検索用レコード生成装置、dnsレコード検索装置およびプログラム | |
JP6705836B2 (ja) | 機器間接続方法およびオブジェクト共有機器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20180410 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180413 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6326176 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |