(57)【要約】      （修正有）【課題】利用者の認証を簡単、安全に行うシステムを提供する。【解決手段】証明書発行システム１０１はＰＣ１０６からの証明書発行依頼に対して循環数列のうち開始ポイント以降の一部を取り出して証明書を発行する。証明書は証明書発行システム１０１、認証装置１０５、およびＰＣ１０６にて安全に共有される。ＰＣ１０６の利用者は証明書を用いて認証装置１０５から認証を受けることができる。【効果】認証環境設定時に１度だけ乱数をやり取りする事によって何十年と言った長い期間、毎回違った証明書を安全に利用者と認証局間にてやり取り出来、そのロジックが非常に簡単な為、ＩｏＴなどのメモリィやＣＰＵ資源が豊富ではない環境においても安全に認証できる。【選択図】図１
2019068392.tif 000002
【特許請求の範囲】
【請求項１】
２つの素数から構成され、
１つの素数は循環数列の桁数に使用し、
もう一つの素数は分割数に使用され、
循環数列の桁数に使用される素数は、
分割数に使用される素数より大きく、
循環数列は１６進数０から１６進数Ｆまでを使用して作成された乱数の集合体とし、
循環数列は１列の輪と成った乱数の数列であり、
分割数は循環数列を分割する目的で使用し、
分割数の素数桁分の乱数を循環数列から抜き出して証明書とし使用し、
次に循環数列から乱数を抜き出す時には、
分割数分抜き出す箇所をずらして使用し、
循環数列に使用された素数と分割数の種類を掛け合わせた数値分の異なる内容の乱数を抜き出し、
毎回異なる証明書を作成する事が可能な
証明書発行システム。
【請求項２】
基となる素数で表す桁数の乱数かから構成される循環数列発行によって発行された循環数列から異なる乱数を全て取り出した時、
新たな大きな素数を使用し循環数列を再構成する時、
不足する桁数分の乱数を乱数の挿入場所と実際に挿入する乱数を認証装置や
ＰＣなどの端末間にて同期させる事により、
新たな大きな素数より小さな素数であり、
且つ最後に使用した分割数より大きな素数の種類と
新たな大きな素数を掛け合わせた分、
新たな証明書を作製する事が可能と成る
証明書発行システム。
【請求項３】
前記、循環数列から全種類の乱数を抜き出した後、
基となる循環数列をネットワークなどの通信手段を使用し公開する事無く、
新たな循環数列を作成しネットワークなどでお互いに同期する事も無く、
不足分の乱数と乱数の挿入箇所情報だけを同期する事により、
新たな循環数列を作成する事が出来る
証明書発行システム。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、コンピュータ・システムにおいて、その入り口となる重要な認証システムについてです。重要な機密データやシステムに顧客がアプリケーションなどからアクセスする前に、その顧客にとって重要な機密データやシステムに対するアクセス権の有無を検証しアクセス権が有る場合はアクセスを許可する認証システムである。
【背景技術】
【０００２】  認証方法は、ユーザＩＤパスワードによるものから生体認証を使用するものまで多数あり、その中でどのような認証方法を選択するかは、データの重要性と認証システムのコストにより決定することになる。しかしコスト重視によりこれまでの簡単で脆弱な認証システムを採用することは、いとも簡単にハッカー突破され踏み台にされ犯罪の温床になってしまう可能性がある為に、簡単なロジックでありながら強力な認証システムが必要となるのである。【０００３】    特許文献１に示したような先行技術は有るが、この技術では前回の認証番号とｎ回前の認証番号から関数を使い今回の認証番号を算出するといった方法が取られている。この様な方法では前回の認証番号を盗聴され、使っている関数が分かれば誰でも認証を受けられてしまうといった問題が発生する。しかし、本願の方法であれば何度盗聴されても循環数列の内容が分からない限り認証されないので、ハッカーに突破されない安心で安全な環境を構築できる。【０００４】    特許文献２に示したような先行技術は有るが、この技術は本願と同じように大量のパスワードを発行する事は出来るが、発行するパスワードを使用した端末のグルーピング化が目的であって、毎回違ったパスワードを発行し盗聴などの対策に使用する事が出来ない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開第２００１−１７７５１９号公報
【特許文献２】特開第２００７−１３４９９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】本発明は、アクセスを試みた者が正規の利用者か、悪意が有る攻撃者かを判断する為の安価で簡単な認証方法についてのものである。インターネットの普及により年々、不正アクセス行為が増大し、その方法の多くがＩＤなどの識別符号を盗用するものである。また、フィッシングサイトを使った、フィッシング詐欺などによるＩＤの不正入手発生件数が増えている為、安価で簡単に且つ、強力な認証技術が必要になるのである。
【課題を解決するための手段】
【０００７】本発明は、何処からでも簡単にＰＣ、スマホ、タブレットコンピュータなどの端末が有れば、実際にはサーバ、端末間にて３重のチェックを行うが、利用者には１回の認証しか意識させずに、安全に認証出来る事を主要な特徴とする技術の提供である。
【発明の効果】
【０００８】本発明の認証システムは、利用者が生体認証などの特別な装置を用意する事無く、１度の認証しか意識せずに３重の強力で安全な認証システムを使用する事ができるため、フィッシングサイトなどでアカウントを乗っ取られ、個人情報を盗まれるような詐欺被害に遭わずに済むという利点がある。
【図面の簡単な説明】
【０００９】
【図１】本発明の一例を示す全体構成図
【図２】本発明の認証に関しての流れ図
【図３】循環数列処理
【図４】初期認証処理
【図５】認証処理
【図６】循環数列の安全度証明図
【図７】循環数列による乱数抜取種類数
【図８】循環数列の桁増加
【図９】循環数列と分割数が自然数の場合
【図１０】循環数列が自然数、分割数が素数の場合
【発明を実施するための形態】
【実施例】
【００１０】図１は、本発明の実施形態の例であるネットワークシステムの全体概要図である。
本発明は、安全で尚且つ簡単なロジックにて認証システムを構築する事によって、外部に絶対漏らしてはならない重要な機密情報などをガードする認証システムである。近年“なりすまし”や“不正利用”などの高度化するハッカーの攻撃に対し、今までのパスワード認証では、企業の機密情報を守る事が難しくなって来ている。そのため情報セキュリティ対策をより強化する必要性が高まっているが、生体認証などでは高価な機材が必要になるとともに、ロジックが複雑で重く成る為に認証に時間がかかるといった課題がある。この課題に対して、本発明は簡単なロジックにて３重の認証を行い、且つ認証局の認証も得られると言った利点を持つものである。この認証システムは図１のように、１０６ＰＣから１０１証明書発行システムに利用者認証を行い循環数列を発行させ、この循環数列を１０１証明書発行システム、１０５認証装置、１０６ＰＣの３つの箇所にて共有し、安全な認証を行うものである。【００１１】本発明のシステムは、発明者及び出願人が独自に名称を付している、各々のソフトウェアおよび装置によって構築されるので、名称の説明を下記に記載する。【００１２】・１０１証明書発行システム
１０６ＰＣなどがサーバなどに対して認証を得る為の証明書を発行したり、証明書を発行する為の環境を作成したり、ワンタイムパスワードを作成する為のシステム。
・１０２循環数列
証明書やワンタイムパスワードを作成する為の基礎数列。
数列の長さや個数を本願では“桁“と表現しているが”項“と言う表現も同じと捉えられる。
・１０３ＬＡＮ
一般的なローカルエリアネットワーク。
・１０４インターネット
インターネットプロトコルを利用したコンピュータネットワーク。
・１０５認証装置
１０６ＰＣなどがサーバやネットワーク上の機器にログインする際に１０６ＰＣの証明を行うシステム。
・１０６ＰＣ
ＰＣ、スマートフォン、タブレットコンピュータ、ＩｏＴなどの電子機器。【００１３】  図２は、本発明の初期利用者認証について記載した図である。初期利用者認証の目的は、正しい利用者が次回から簡単に１０５認証装置に認証されＷｅｂサーバなどのサービスを受けられるように準備する事を目的とする。【００１４】図２の２０１管理者が利用者に提供した１０６ＰＣ、または２０１管理者によって身元を証明された１０６ＰＣ、または２０１管理者自信が直接１０６ＰＣを使用し、２０２証明書発行依頼を１０１証明書発行システムに対して行い、２０２証明書発行依頼を受けた１０１証明書発行システムは２０４循環数列処理にて循環数列などの認証に関わる情報を作成し、２０５循環数列送信により１０５認証装置と１０６ＰＣに対して循環数列などの認証に関わる情報を送信する。次に、２０７証明書ポイント作成にて証明書作成の為のポイントを作成し、２０８証明書ポイント送信により１０５認証装置と１０６ＰＣに対して証明書ポイントを送信し、１０５認証装置と１０６ＰＣは２０９証明書ポイント受信により証明書ポイントを受信する。１０５認証装置と１０６ＰＣは受け取った証明書ポイントを使用し２１０認証作成処理にて証明書を作成し、作成した証明書を１０６ＰＣは１０５認証装置に送信し、１０５認証装置は２１１証明書受信にて１０６ＰＣ作成の証明書を受信する。１０５認証装置は受信した証明書と１０５認証装置が作成した証明書と互いに証明書内容が同じか確認し、同じであれば２１２正しい証明書として、１０６ＰＣを２１３新たな利用者を認識にて正しい利用者と認識し１０５認証装置の記憶装置に１０６ＰＣを新たな利用者として登録する。【００１５】図３は、本発明の循環数列処理について記載した図である。循環数列処理の目的は、循環数列を作成し、循環数列により証明書を作成する為の様々な情報を作成する事にある。【００１６】図３の３０１循環数列作成では循環数列を作成するが、作成の為のロジックは別途記載する。次に、３０２乱数発生にて１６進数００から１６進数ＦＦまでの使用できる全ての記号を使用し乱数を循環数列の桁数分発生させ、３０３循環数列暗号化にて循環数列を暗号化し、３０４循環数列保存にて、暗号化した乱数を保存する。【００１７】図４は、本発明の２１０初期認証処理について記載した図である。１０１証明書発行システムからの指示により循環数列の一部を取り出し証明書を作成する事にある。【００１８】４０１証明書ポイントにて、指示された開始ポイントを使い、循環数列の開始ポイントから分割数値分の乱数を分割数値分抜き取り、４０２ハッシュ化にて抜き取った乱数をＳＨＡ１などにてハッシュ化し、４０３暗号化にてタイムスタンプ等を独自暗号化にて暗号化し、４０４結合にて２つの値を結合する。【００１９】図５は、本発明の利用者認証について記載した図である。利用者認証の目的は、正しい利用者が簡単かつ安全に認証されＷｅｂサーバなどのサービスを受けられる事を目的とする。【００２０】１０６ＰＣが１０１証明書発行システムに対してアクションを起こした場合、５０１ＩＤ、ＰＡＳＳＷＯＲＤ要求にて１０６ＰＣに対しＩＤ、ＰＡＳＳＷＯＲＤの入力画面を提示し、１０６ＰＣ���５０２ＩＤ・ＰＡＳＳＷＯＲＤ入力にてＩＤとＰＡＳＳＷＯＲＤを取り込み、１０１証明書発行システムに送信し、５０３正しいにてＩＤとＰＡＳＳＷＯＲＤが正しいか確認し、正しければ５０４前回証明書要求にて１０６ＰＣに対し前回使用した証明書の送信要求を行い、５０５前回証明書を１０１証明書発行システムに送信し、１０１証明書発行システムは５０６前回証明書受信にて５０５前回証明書を受信し、５０７正しい証明書の判定にて５０５前回証明書が正しかった時には、５０８ログイン通知にて１０５認証装置と１０６ＰＣに対してログインの通知を行う。１０５認証装置は１０６ＰＣから新しい証明書にて承認要求がくることを確認すると５０９ログイン準備によって１０６ＰＣに対しポートを開放するなどの通信可能な状況を作成し、５１０開始ポイントにて前回使用した開始ポイントから分割数値分加え新たな開始ポイントを作成し、２１０認証作成処理を実行する。一方、５０８ログイン通知を受けた１０６ＰＣは、５１１開始ポイントにて前回使用した証明書発行のポイントから分割数値分加え新たな開始ポイントを作成し２１０認証作成処理を実行し、５１２証明書保管にて作成された証明書を保管し、５１３証明書送信にて１０５認証装置に証明書を送信し、１０５認証装置は５１４証明書受信にて証明書を受信する。１０５認証装置は５１５正しい証明書にて１０５認証装置と１０６ＰＣにて別々に作成した証明書を付き合わせ同じか確認し、更に証明書の中に含まれているタイムスタンプを複合化し、ｎ分以内に作成された証明書か確認し問題なければ、ログイン成功としサービスを開始する。【００２１】循環数列を作成する目的は１回作成した乱数を乱数の長さを変える事無く、乱数を再発行する事無く、循環数列の桁数によっては何万回、何十万回、何百万回も違った乱数に作り変える事が可能と成る。【００２２】循環数列と分割数の定義は、名称の説明でも述べたが、再度記載する。
循環数列とは：
・素数桁分作成した乱数の集合体とする。
・分割数より大きな素数を使用する。
・１６進数００から１６進数ＦＦまでを使用し発生させた乱数の集合体とする。
・概念的には１列の数値ではなく輪に成った数列とする。
（実際には一定の長さで繰り返される）
・セキュリティ上、利用者毎、利用デバイス毎に作成する事が望ましい。
分割数とは：
・１０以上の素数をいう。
１桁でも良いが、セキュリティ上２桁以上の素数を用いる事が望ましい。
・循環数列を分割する時に使用する素数とする。
・循環数列の桁数（繰り返される一定の長さ）より小さな素数とする。
・分割数を今使用している素数以外の素数に変化させることにより、証明書の作成ロジックを変化させる事無く、証明書を変化させる事が可能となる。
循環数列と分割数の関係：
・分割数を使用し、分割数分の乱数を循環数列から抜き出しても、循環数列の桁数回循環しないと同じ数列を切り取る事と成らない関係。
・循環数列の桁数回循環した時、分割数は次の素数に変化させ新たな乱数を循環数列から抜き取る関係。【００２３】図６は、循環数列の桁数を説明の為に素数７を使用し７桁とし、分割数を素数２と素数３と素数５を利用した時の説明図となる。
６０１循環数列７桁、分割数２とした場合は、素数７と２を使用した説明図と成る。６０２循環数数列は１から７の数字が記載されているが実際はもっと大きな乱数を使用するが、分かりやすくするために１から７の数字を使用する。
６０３分割１回目にて分割数分循環数列から取り出す。取り出した乱数は１、２となる。
６０４分割２回目にて分割数分循環数列から取り出す。取り出した乱数は３、４となる。
６０５分割３回目にて分割数分循環数列から取り出す。取り出した乱数は５、６となる。
６０６分割４回目にて分割数分循環数列から取り出す。取り出した乱数は７、１となる。
６０７分割５回目にて分割数分循環数列から取り出す。取り出した乱数は２、３となる。
６０８分割６回目にて分割数分循環数列から取り出す。取り出した乱数は４、５となる。
６０９分割７回目にて分割数分循環数列から取り出す。取り出した乱数は６、７となる。
６１０分割８回目にて分割数分循環数列から取り出す。取り出した乱数は１、２となり元に戻る。
次に、循環数列を変える事無く、分割数を素数３にする。
６１３分割１回目にて分割数分循環数列から取り出す。取り出した乱数は１、２、３となる。
６１４分割２回目にて分割数分循環数列から取り出す。取り出した乱数は４、５、６となる。
６１５分割３回目にて分割数分循環数列から取り出す。取り出した乱数は７、１、２となる。
６１６分割４回目にて分割数分循環数列から取り出す。取り出した乱数は３、４、５となる。
６１７分割５回目にて分割数分循環数列から取り出す。取り出した乱数は６、７、１となる。
６１８分割６回目にて分割数分循環数列から取り出す。取り出した乱数は２、３、４となる。
６１９分割７回目にて分割数分循環数列から取り出す。取り出した乱数は５、６、７となる。
６２０分割８回目にて分割数分循環数列から取り出す。取り出した乱数は１、２、３、となり元に戻る。
次に、循環数列を変える事無く、分割数を素数５にする。
６２３分割１回目にて分割数分循環数列から取り出す。
取り出した乱数は１、２、３、４、５となる。
６２４分割２回目にて分割数分循環数列から取り出す。
取り出した乱数は６、７、１、２、３となる。
６２５分割３回目にて分割数分循環数列から取り出す。
取り出した乱数は４、５、６、７、１となる。
６２６分割４回目にて分割数分循環数列から取り出す。
取り出した乱数は２、３、４、５、６となる。
６２７分割５回目にて分割数分循環数列から取り出す。
取り出した乱数は７、１、２、３、４となる。
６２８分割６回目にて分割数分循環数列から取り出す。
取り出した乱数は５、６、７、１、２となる。
６２９分割７回目にて分割数分循環数列から取り出す。
取り出した乱数は３、４、５、６、７となる。
６３０分割８回目にて分割数分循環数列から取り出す。
取り出した乱数は１、２、３、４、５となり元に戻る。
循環数列７桁、分割数２、３、５としたどの場合も８回目に元に戻る。
分割数を変える事により循環数列という乱数の集合から分割数の長さ分、違った乱数を循環数列の桁×乱数の種類分抜き出せることが証明された。
つまり、素数の桁数分の循環数列とその循環数列で使用した素数より小さい素数を分割数に使えば循環数列の桁数分、違った乱数をいつでも取り出せるので１回だけお互いに循環数列を交換すれば無限大に乱数を取り出す事が出来る。
このケースでは循環数列に７桁の乱数を使用したが、たった７桁で２１種類の違った乱数を取り出す事が可能と成る。【００２４】図７のように７０２循環数列を５０３桁とすると７０３分割数を安全の為に１１からの素数を使用したとしても素数５０３までは９１種類の素数があり、当然ではあるが素数同士なので、７０４商が割り切れていない。乱数を取り出す種類を計算する式は下記のようになる。
５０３×９１＝４５，７７３（取り出せる乱数の種類）
４５，７７３種類の乱数が取り出せるということは、１日に５回ログインしたとしても４５，７７３÷５回÷３６５日＝２５．０８と成り２５年分の乱数を取り出す事が出来る。もし、これが自然数で循環数列と分割数を使うと割り切れてしまう為に循環数列の同じ場所から乱数を抜き出す事に成るので、２５年も違った場所から乱数を向き取ることは出来ない。このため素数と素数の組合せが重要となり、更に１回の循環数列の交換で２５年間毎回違う乱数を使用しお互いに認証し合えるというところにある。１回の循環数列交換でその後はまったくお互いの情報のやり取りが無く、お互いを認証し合える証明書が発行できる。
１０００以下の素数は全部で１６８個ある。もし循環数列を素数１００９にて作成すれば
１００９×（１６８−４）＝１６５、４７６（取り出せる乱数の種類）
１６５、４７６÷５回÷３６５日＝９０．６７
となり、１日に５回の認証を行っても、９０年間も毎回違う証明書が簡単、安全に作成が可能となる。つまり、循環数列の長さにより指数関数的に使用年数を増やす事も可能となる。上記式の“−４”は素数２、３、５、７を除いた為である。【００２５】循環数列という安全で安心できる証明書を１回発行する事により、その証明書から安全に新たな証明書を無限に作成する事が出来る。
もし、循環数列全て使用してしまった時は基となる循環数列を新たな素数桁に変更し、不足分の乱数を加えれば良いからである。例えば、循環数列が５０３桁だった場合、次の大きな素数５０９に循環数列を変える時は６桁の乱数を基の循環数列に加え、分割数を５０３が使用可能と成るので５０９個分新たに証明書を作ることが可能と成る。
更に、次の素数５２１にすれば、分割数が５０３と５０９が使用可能と成り、併せて１０３０個の乱数を抜き取る事が可能と成る。
素数の数は無限にある事がユークリッドの定理により証明されているので、無限に証明書発行が可能と成る。更に、ラビン‐ミラー素数判定法などを使用すれば簡単に素数を得ることが出来る。【００２６】図８循環数列の桁増加は、循環数列５桁、分割数２、３から循環数列７桁に増やし、分割数を新たな５に変化させた時の説明図と成る。この例では新たな乱数ａとｂを連続し先頭に挿入しているが、ａとｂをバラバラに違った場所に挿入し、挿入した位置情報を１０１証明書発行システム、１０５認証装置、１０６ＰＣ間で同期を取ればよい。
この乱数追加によっての利点は、素の証明書をネット上でやり取りする必要が無く、新たに挿入する乱数と乱数を挿入する位置情報だけネットを利用し同期すれば良いので証明書の漏洩と言った問題を回避する事が可能と成る。【００２７】８２７循環数列７桁に増加、分割数５にした場合や８３０循環数列７桁に増加、分割数５にした場合のように挿入した乱数を含めた場合、その箇所数×分割数分証明書を増加させることが可能と成る。この場合００２３の増加証明書数に、乱数×素数分、更に増加される。
しかし、応用技術でこのパターンを使用する事は管理が複雑に成るので使用しないほうが望ましい。【００２８】図９循環数列と分割数が自然数の場合は、素数を使わずに自然数を使用した場合の例を示す。
９０１循環数列８桁、分割数４とした場合は、循環数列が８桁も有るにも関わらず２種類の乱数しか取り出せない。
９０６循環数列８桁、分割数４とし、１桁ずつずらした場合は、循環数列が８桁なので、最大に乱数を取り出す為に１桁ずつずらしたが、この場合８種類の乱数は取り出せるが、９０８分割１回目と９０９分割２回目を比較すれば分かるが１バイトしかずれないので盗聴者から見た場合、１バイトつまり２５６種類のＨｅｘを９０８分割１回目に加えれば、９０９分割２回目の乱数を容易に解読できることになるので安全ではないので複雑な管理を行う必要がある。【００２９】図１０のように循環数列を自然数にして、分割数をその自然数を割り切る事が出来ない数にした場合、循環数列分割数共に素数の場合と同じ結果となるが、素数同士の場合との違いは複雑な管理にある。素数同士であれば、絶対に割り切れない事は既に証明されている。更に、ユークリッドの定理やラビン‐ミラー素数判定法などの多数の方式により、大きな素数の中に含まれる小さな素数の種類やその値など簡単に知る事が可能となるが、自然数の場合１つ１つ自分で調べ管理する必要が有り複雑となる。
【産業上の利用可能性】
【００３０】ロジックが簡単な為に安価に実装できることや、ロジックが簡単という事実に反しパスワードが使い捨てなので総当たり攻撃やパスワードが漏洩しても次に何を使うかわからないという堅牢なセキュリティ機能を有することから、今後、ますます盛んになる事が予想されるＩｏＴなどに、安心して使用できる認証システムとして利用される。
【図１】
2019068392.tif 000003
【図２】
2019068392.tif 000004
【図３】
2019068392.tif 000005
【図４】
2019068392.tif 000006
【図５】
2019068392.tif 000007
【図６】
2019068392.tif 000008
【図７】
2019068392.tif 000009
【図８】
2019068392.tif 000010
【図９】
2019068392.tif 000011
【図１０】
2019068392.tif 000012