IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 石崎 利和の特許一覧

<>
  • 特許-証明書発行及び認証システム 図1
  • 特許-証明書発行及び認証システム 図2
  • 特許-証明書発行及び認証システム 図3
  • 特許-証明書発行及び認証システム 図4
  • 特許-証明書発行及び認証システム 図5
  • 特許-証明書発行及び認証システム 図6
  • 特許-証明書発行及び認証システム 図7
  • 特許-証明書発行及び認証システム 図8
  • 特許-証明書発行及び認証システム 図9
  • 特許-証明書発行及び認証システム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-01
(45)【発行日】2022-07-11
(54)【発明の名称】証明書発行及び認証システム
(51)【国際特許分類】
   H04L 9/32 20060101AFI20220704BHJP
   G09C 1/00 20060101ALI20220704BHJP
【FI】
H04L9/32 200A
G09C1/00 640E
【請求項の数】 3
(21)【出願番号】P 2017202974
(22)【出願日】2017-10-03
(65)【公開番号】P2019068392
(43)【公開日】2019-04-25
【審査請求日】2020-07-07
【前置審査】
(73)【特許権者】
【識別番号】500374445
【氏名又は名称】石崎 利和
(72)【発明者】
【氏名】伊藤 整一
(72)【発明者】
【氏名】石田 隆二
(72)【発明者】
【氏名】石崎 利和
【審査官】金沢 史明
(56)【参考文献】
【文献】特開2016-021700(JP,A)
【文献】特開平07-226732(JP,A)
【文献】特開2003-108901(JP,A)
【文献】特開2011-004039(JP,A)
【文献】特開2011-145464(JP,A)
【文献】米国特許出願公開第2012/0290632(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/00- 9/38
G09C 1/00
G06F 7/58
(57)【特許請求の範囲】
【請求項1】
証明書発行システムと認証装置とPCとを有する、認証システムであって、2つの素数から構成され、1つの素数は循環数列の桁数に使用され、もう一つの素数は分割数に使用され、桁数に使用される1つの素数は、分割数に使用されるもう一つの素数より大きく、循環数列は、16進数0から16進数Fまでを使用して作成された乱数の集合体であって、1列の輪と成った前記乱数の数列であり、初期利用者認証において、証明書発行システムは、循環数列を作成して認証装置とPCに対して送信し、次に、証明書発行システムは、開始ポイントを作成して認証装置とPCに対して送信し、認証装置とPCは、それぞれ、受け取った開始ポイントを使用して認証作成処理にて証明書を作成し、利用者認証において、認証装置とPCは、それぞれ、前回使用した開始ポイントから分割数分ずらした新たな開始ポイントを作成し、新たな開始ポイントを使用して認証作成処理にて証明書を作成し、前記認証作成処理は、使用する開始ポイントから分割数分の乱数を循環数列から取り出し、取り出した乱数をハッシュ化し、タイムスタンプを暗号化し、ハッシュ化した乱数と暗号化したタイムスタンプとを結合して証明書を作成する処理であり、循環数列の桁数回循環した時、分割数を今使用している素数以外の素数に変化させることにより、毎回異なる証明書を作成する事が可能な、認証システム。
【請求項3】
基となる循環数列から、分割数の長さ分違った乱数を循環数列の桁数と分割数に使用される素数の種類の数とを掛け合わせた数の分取り出した後、基となる循環数列をネットワークなどの通信手段を使用し公開する事無く、新たな循環数列を作成しネットワークなどでお互いに同期する事も無く、基となる循環数列に新たに挿入する不足分の乱数と乱数を挿入する位置情報だけを証明書発行システム、認証装置及びPC間で同期させる事により、新たな循環数列を作成する事が出来る、請求項1に記載された認証システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータ・システムにおいて、その入り口となる重要な認証システムについてです。重要な機密データやシステムに顧客がアプリケーションなどからアクセスする前に、その顧客にとって重要な機密データやシステムに対するアクセス権の有無を検証しアクセス権が有る場合はアクセスを許可する認証システムである。
【背景技術】
【0002】
認証方法は、ユーザIDパスワードによるものから生体認証を使用するものまで多数あり、その中でどのような認証方法を選択するかは、データの重要性と認証システムのコストにより決定することになる。しかしコスト重視によりこれまでの簡単で脆弱な認証システムを採用することは、いとも簡単にハッカー突破され踏み台にされ犯罪の温床になってしまう可能性がある為に、簡単なロジックでありながら強力な認証システムが必要となるのである。
【0003】
特許文献1に示したような先行技術は有るが、この技術では前回の認証番号とn回前の認証番号から関数を使い今回の認証番号を算出するといった方法が取られている。この様な方法では前回の認証番号を盗聴され、使っている関数が分かれば誰でも認証を受けられてしまうといった問題が発生する。しかし、本願の方法であれば何度盗聴されても循環数列の内容が分からない限り認証されないので、ハッカーに突破されない安心で安全な環境を構築できる。
【0004】
特許文献2に示したような先行技術は有るが、この技術は本願と同じように大量のパスワードを発行する事は出来るが、発行するパスワードを使用した端末のグルーピング化が目的であって、毎回違ったパスワードを発行し盗聴などの対策に使用する事が出来ない。
【先行技術文献】
【特許文献】
【0005】
【文献】特開第2001-177519号公報
【文献】特開第2007-134990号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明は、アクセスを試みた者が正規の利用者か、悪意が有る攻撃者かを判断する為の安価で簡単な認証方法についてのものである。インターネットの普及により年々、不正アクセス行為が増大し、その方法の多くがIDなどの識別符号を盗用するものである。また、フィッシングサイトを使った、フィッシング詐欺などによるIDの不正入手発生件数が増えている為、安価で簡単に且つ、強力な認証技術が必要になるのである。
【課題を解決するための手段】
【0007】
本発明は、何処からでも簡単にPC、スマホ、タブレットコンピュータなどの端末が有れば、実際にはサーバ、端末間にて3重のチェックを行うが、利用者には1回の認証しか意識させずに、安全に認証出来る事を主要な特徴とする技術の提供である。
【発明の効果】
【0008】
本発明の認証システムは、利用者が生体認証などの特別な装置を用意する事無く、1度の認証しか意識せずに3重の強力で安全な認証システムを使用する事ができるため、フィッシングサイトなどでアカウントを乗っ取られ、個人情報を盗まれるような詐欺被害に遭わずに済むという利点がある。
【図面の簡単な説明】
【0009】
図1】本発明の一例を示す全体構成図
図2】本発明の認証に関しての流れ図
図3】循環数列処理
図4】初期認証処理
図5】認証処理
図6】循環数列の安全度証明図
図7】循環数列による乱数抜取種類数
図8】循環数列の桁増加
図9】循環数列と分割数が自然数の場合
図10】循環数列が自然数、分割数が素数の場合
【発明を実施するための形態】
【実施例
【0010】
図1は、本発明の実施形態の例であるネットワークシステムの全体概要図である。
本発明は、安全で尚且つ簡単なロジックにて認証システムを構築する事によって、外部に絶対漏らしてはならない重要な機密情報などをガードする認証システムである。近年“なりすまし”や“不正利用”などの高度化するハッカーの攻撃に対し、今までのパスワード認証では、企業の機密情報を守る事が難しくなって来ている。そのため情報セキュリティ対策をより強化する必要性が高まっているが、生体認証などでは高価な機材が必要になるとともに、ロジックが複雑で重く成る為に認証に時間がかかるといった課題がある。この課題に対して、本発明は簡単なロジックにて3重の認証を行い、且つ認証局の認証も得られると言った利点を持つものである。この認証システムは図1のように、106PCから101証明書発行システムに利用者認証を行い循環数列を発行させ、この循環数列を101証明書発行システム、105認証装置、106PCの3つの箇所にて共有し、安全な認証を行うものである。
【0011】
本発明のシステムは、発明者及び出願人が独自に名称を付している、各々のソフトウェアおよび装置によって構築されるので、名称の説明を下記に記載する。
【0012】
・101証明書発行システム
106PCなどがサーバなどに対して認証を得る為の証明書を発行したり、証明書を発行する為の環境を作成したり、ワンタイムパスワードを作成する為のシステム。
・102循環数列
証明書やワンタイムパスワードを作成する為の基礎数列。
数列の長さや個数を本願では“桁“と表現しているが”項“と言う表現も同じと捉えられる。
・103LAN
一般的なローカルエリアネットワーク。
・104インターネット
インターネットプロトコルを利用したコンピュータネットワーク。
・105認証装置
106PCなどがサーバやネットワーク上の機器にログインする際に106PCの証明を行うシステム。
・106PC
PC、スマートフォン、タブレットコンピュータ、IoTなどの電子機器。
【0013】
図2は、本発明の初期利用者認証について記載した図である。初期利用者認証の目的は、正しい利用者が次回から簡単に105認証装置に認証されWebサーバなどのサービスを受けられるように準備する事を目的とする。
【0014】
図2の201管理者が利用者に提供した106PC、または201管理者によって身元を証明された106PC、または201管理者自信が直接106PCを使用し、202証明書発行依頼を101証明書発行システムに対して行い、202証明書発行依頼を受けた101証明書発行システムは204循環数列処理にて循環数列などの認証に関わる情報を作成し、205循環数列送信により105認証装置と106PCに対して循環数列などの認証に関わる情報を送信する。次に、207証明書ポイント作成にて証明書作成の為のポイントを作成し、208証明書ポイント送信により105認証装置と106PCに対して証明書ポイントを送信し、105認証装置と106PCは209証明書ポイント受信により証明書ポイントを受信する。105認証装置と106PCは受け取った証明書ポイントを使用し210認証作成処理にて証明書を作成し、作成した証明書を106PCは105認証装置に送信し、105認証装置は211証明書受信にて106PC作成の証明書を受信する。105認証装置は受信した証明書と105認証装置が作成した証明書と互いに証明書内容が同じか確認し、同じであれば212正しい証明書として、106PCを213新たな利用者を認識にて正しい利用者と認識し105認証装置の記憶装置に106PCを新たな利用者として登録する。
【0015】
図3は、本発明の循環数列処理について記載した図である。循環数列処理の目的は、循環数列を作成し、循環数列により証明書を作成する為の様々な情報を作成する事にある。
【0016】
図3の301循環数列作成では循環数列を作成するが、作成の為のロジックは別途記載する。次に、302乱数発生にて16進数00から16進数FFまでの使用できる全ての記号を使用し乱数を循環数列の桁数分発生させ、303循環数列暗号化にて循環数列を暗号化し、304循環数列保存にて、暗号化した乱数を保存する。
【0017】
図4は、本発明の210初期認証処理について記載した図である。101証明書発行システムからの指示により循環数列の一部を取り出し証明書を作成する事にある。
【0018】
401証明書ポイントにて、指示された開始ポイントを使い、循環数列の開始ポイントから分割数値分の乱数を分割数値分抜き取り、402ハッシュ化にて抜き取った乱数をSHA1などにてハッシュ化し、403暗号化にてタイムスタンプ等を独自暗号化にて暗号化し、404結合にて2つの値を結合する。
【0019】
図5は、本発明の利用者認証について記載した図である。利用者認証の目的は、正しい利用者が簡単かつ安全に認証されWebサーバなどのサービスを受けられる事を目的とする。
【0020】
106PCが101証明書発行システムに対してアクションを起こした場合、501ID、PASSWORD要求にて106PCに対しID、PASSWORDの入力画面を提示し、106PCは502ID・PASSWORD入力にてIDとPASSWORDを取り込み、101証明書発行システムに送信し、503正しいにてIDとPASSWORDが正しいか確認し、正しければ504前回証明書要求にて106PCに対し前回使用した証明書の送信要求を行い、505前回証明書を101証明書発行システムに送信し、101証明書発行システムは506前回証明書受信にて505前回証明書を受信し、507正しい証明書の判定にて505前回証明書が正しかった時には、508ログイン通知にて105認証装置と106PCに対してログインの通知を行う。105認証装置は106PCから新しい証明書にて承認要求がくることを確認すると509ログイン準備によって106PCに対しポートを開放するなどの通信可能な状況を作成し、510開始ポイントにて前回使用した開始ポイントから分割数値分加え新たな開始ポイントを作成し、210認証作成処理を実行する。一方、508ログイン通知を受けた106PCは、511開始ポイントにて前回使用した証明書発行のポイントから分割数値分加え新たな開始ポイントを作成し210認証作成処理を実行し、512証明書保管にて作成された証明書を保管し、513証明書送信にて105認証装置に証明書を送信し、105認証装置は514証明書受信にて証明書を受信する。105認証装置は515正しい証明書にて105認証装置と106PCにて別々に作成した証明書を付き合わせ同じか確認し、更に証明書の中に含まれているタイムスタンプを複合化し、n分以内に作成された証明書か確認し問題なければ、ログイン成功としサービスを開始する。
【0021】
循環数列を作成する目的は1回作成した乱数を乱数の長さを変える事無く、乱数を再発行する事無く、循環数列の桁数によっては何万回、何十万回、何百万回も違った乱数に作り変える事が可能と成る。
【0022】
循環数列と分割数の定義は、名称の説明でも述べたが、再度記載する。
循環数列とは:
・素数桁分作成した乱数の集合体とする。
・分割数より大きな素数を使用する。
・16進数00から16進数FFまでを使用し発生させた乱数の集合体とする。
・概念的には1列の数値ではなく輪に成った数列とする。
(実際には一定の長さで繰り返される)
・セキュリティ上、利用者毎、利用デバイス毎に作成する事が望ましい。
分割数とは:
・10以上の素数をいう。
1桁でも良いが、セキュリティ上2桁以上の素数を用いる事が望ましい。
・循環数列を分割する時に使用する素数とする。
・循環数列の桁数(繰り返される一定の長さ)より小さな素数とする。
・分割数を今使用している素数以外の素数に変化させることにより、証明書の作成ロジックを変化させる事無く、証明書を変化させる事が可能となる。
循環数列と分割数の関係:
・分割数を使用し、分割数分の乱数を循環数列から抜き出しても、循環数列の桁数回循環しないと同じ数列を切り取る事と成らない関係。
・循環数列の桁数回循環した時、分割数は次の素数に変化させ新たな乱数を循環数列から抜き取る関係。
【0023】
図6は、循環数列の桁数を説明の為に素数7を使用し7桁とし、分割数を素数2と素数3と素数5を利用した時の説明図となる。
601循環数列7桁、分割数2とした場合は、素数7と2を使用した説明図と成る。602循環数数列は1から7の数字が記載されているが実際はもっと大きな乱数を使用するが、分かりやすくするために1から7の数字を使用する。
603分割1回目にて分割数分循環数列から取り出す。取り出した乱数は1、2となる。
604分割2回目にて分割数分循環数列から取り出す。取り出した乱数は3、4となる。
605分割3回目にて分割数分循環数列から取り出す。取り出した乱数は5、6となる。
606分割4回目にて分割数分循環数列から取り出す。取り出した乱数は7、1となる。
607分割5回目にて分割数分循環数列から取り出す。取り出した乱数は2、3となる。
608分割6回目にて分割数分循環数列から取り出す。取り出した乱数は4、5となる。
609分割7回目にて分割数分循環数列から取り出す。取り出した乱数は6、7となる。
610分割8回目にて分割数分循環数列から取り出す。取り出した乱数は1、2となり元に戻る。
次に、循環数列を変える事無く、分割数を素数3にする。
613分割1回目にて分割数分循環数列から取り出す。取り出した乱数は1、2、3となる。
614分割2回目にて分割数分循環数列から取り出す。取り出した乱数は4、5、6となる。
615分割3回目にて分割数分循環数列から取り出す。取り出した乱数は7、1、2となる。
616分割4回目にて分割数分循環数列から取り出す。取り出した乱数は3、4、5となる。
617分割5回目にて分割数分循環数列から取り出す。取り出した乱数は6、7、1となる。
618分割6回目にて分割数分循環数列から取り出す。取り出した乱数は2、3、4となる。
619分割7回目にて分割数分循環数列から取り出す。取り出した乱数は5、6、7となる。
620分割8回目にて分割数分循環数列から取り出す。取り出した乱数は1、2、3、となり元に戻る。
次に、循環数列を変える事無く、分割数を素数5にする。
623分割1回目にて分割数分循環数列から取り出す。
取り出した乱数は1、2、3、4、5となる。
624分割2回目にて分割数分循環数列から取り出す。
取り出した乱数は6、7、1、2、3となる。
625分割3回目にて分割数分循環数列から取り出す。
取り出した乱数は4、5、6、7、1となる。
626分割4回目にて分割数分循環数列から取り出す。
取り出した乱数は2、3、4、5、6となる。
627分割5回目にて分割数分循環数列から取り出す。
取り出した乱数は7、1、2、3、4となる。
628分割6回目にて分割数分循環数列から取り出す。
取り出した乱数は5、6、7、1、2となる。
629分割7回目にて分割数分循環数列から取り出す。
取り出した乱数は3、4、5、6、7となる。
630分割8回目にて分割数分循環数列から取り出す。
取り出した乱数は1、2、3、4、5となり元に戻る。
循環数列7桁、分割数2、3、5としたどの場合も8回目に元に戻る。
分割数を変える事により循環数列という乱数の集合から分割数の長さ分、違った乱数を循環数列の桁×乱数の種類分抜き出せることが証明された。
つまり、素数の桁数分の循環数列とその循環数列で使用した素数より小さい素数を分割数に使えば循環数列の桁数分、違った乱数をいつでも取り出せるので1回だけお互いに循環数列を交換すれば無限大に乱数を取り出す事が出来る。
このケースでは循環数列に7桁の乱数を使用したが、たった7桁で21種類の違った乱数を取り出す事が可能と成る。
【0024】
図7のように702循環数列を503桁とすると703分割数を安全の為に11からの素数を使用したとしても素数503までは91種類の素数があり、当然ではあるが素数同士なので、704商が割り切れていない。乱数を取り出す種類を計算する式は下記のようになる。
503×91=45,773(取り出せる乱数の種類)
45,773種類の乱数が取り出せるということは、1日に5回ログインしたとしても45,773÷5回÷365日=25.08と成り25年分の乱数を取り出す事が出来る。もし、これが自然数で循環数列と分割数を使うと割り切れてしまう為に循環数列の同じ場所から乱数を抜き出す事に成るので、25年も違った場所から乱数を向き取ることは出来ない。このため素数と素数の組合せが重要となり、更に1回の循環数列の交換で25年間毎回違う乱数を使用しお互いに認証し合えるというところにある。1回の循環数列交換でその後はまったくお互いの情報のやり取りが無く、お互いを認証し合える証明書が発行できる。
1000以下の素数は全部で168個ある。もし循環数列を素数1009にて作成すれば
1009×(168-4)=165、476(取り出せる乱数の種類)
165、476÷5回÷365日=90.67
となり、1日に5回の認証を行っても、90年間も毎回違う証明書が簡単、安全に作成が可能となる。つまり、循環数列の長さにより指数関数的に使用年数を増やす事も可能となる。上記式の“-4”は素数2、3、5、7を除いた為である。
【0025】
循環数列という安全で安心できる証明書を1回発行する事により、その証明書から安全に新たな証明書を無限に作成する事が出来る。
もし、循環数列全て使用してしまった時は基となる循環数列を新たな素数桁に変更し、不足分の乱数を加えれば良いからである。例えば、循環数列が503桁だった場合、次の大きな素数509に循環数列を変える時は6桁の乱数を基の循環数列に加え、分割数を503が使用可能と成るので509個分新たに証明書を作ることが可能と成る。
更に、次の素数521にすれば、分割数が503と509が使用可能と成り、併せて1030個の乱数を抜き取る事が可能と成る。
素数の数は無限にある事がユークリッドの定理により証明されているので、無限に証明書発行が可能と成る。更に、ラビン‐ミラー素数判定法などを使用すれば簡単に素数を得ることが出来る。
【0026】
図8循環数列の桁増加は、循環数列5桁、分割数2、3から循環数列7桁に増やし、分割数を新たな5に変化させた時の説明図と成る。この例では新たな乱数aとbを連続し先頭に挿入しているが、aとbをバラバラに違った場所に挿入し、挿入した位置情報を101証明書発行システム、105認証装置、106PC間で同期を取ればよい。
この乱数追加によっての利点は、素の証明書をネット上でやり取りする必要が無く、新たに挿入する乱数と乱数を挿入する位置情報だけネットを利用し同期すれば良いので証明書の漏洩と言った問題を回避する事が可能と成る。
【0027】
827循環数列7桁に増加、分割数5にした場合や830循環数列7桁に増加、分割数5にした場合のように挿入した乱数を含めた場合、その箇所数×分割数分証明書を増加させることが可能と成る。この場合0023の増加証明書数に、乱数×素数分、更に増加される。
しかし、応用技術でこのパターンを使用する事は管理が複雑に成るので使用しないほうが望ましい。
【0028】
図9循環数列と分割数が自然数の場合は、素数を使わずに自然数を使用した場合の例を示す。
901循環数列8桁、分割数4とした場合は、循環数列が8桁も有るにも関わらず2種類の乱数しか取り出せない。
906循環数列8桁、分割数4とし、1桁ずつずらした場合は、循環数列が8桁なので、最大に乱数を取り出す為に1桁ずつずらしたが、この場合8種類の乱数は取り出せるが、908分割1回目と909分割2回目を比較すれば分かるが1バイトしかずれないので盗聴者から見た場合、1バイトつまり256種類のHexを908分割1回目に加えれば、909分割2回目の乱数を容易に解読できることになるので安全ではないので複雑な管理を行う必要がある。
【0029】
図10のように循環数列を自然数にして、分割数をその自然数を割り切る事が出来ない数にした場合、循環数列分割数共に素数の場合と同じ結果となるが、素数同士の場合との違いは複雑な管理にある。素数同士であれば、絶対に割り切れない事は既に証明されている。更に、ユークリッドの定理やラビン‐ミラー素数判定法などの多数の方式により、大きな素数の中に含まれる小さな素数の種類やその値など簡単に知る事が可能となるが、自然数の場合1つ1つ自分で調べ管理する必要が有り複雑となる。
【産業上の利用可能性】
【0030】
ロジックが簡単な為に安価に実装できることや、ロジックが簡単という事実に反しパスワードが使い捨てなので総当たり攻撃やパスワードが漏洩しても次に何を使うかわからないという堅牢なセキュリティ機能を有することから、今後、ますます盛んになる事が予想されるIoTなどに、安心して使用できる認証システムとして利用される。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10