JP2017182377A - 情報処理装置、制御方法、及びプログラム - Google Patents

情報処理装置、制御方法、及びプログラム Download PDF

Info

Publication number
JP2017182377A
JP2017182377A JP2016067289A JP2016067289A JP2017182377A JP 2017182377 A JP2017182377 A JP 2017182377A JP 2016067289 A JP2016067289 A JP 2016067289A JP 2016067289 A JP2016067289 A JP 2016067289A JP 2017182377 A JP2017182377 A JP 2017182377A
Authority
JP
Japan
Prior art keywords
hash value
character string
value sequence
hash
information processing
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.)
Pending
Application number
JP2016067289A
Other languages
English (en)
Inventor
毅 柴田
Takeshi Shibata
毅 柴田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2016067289A priority Critical patent/JP2017182377A/ja
Publication of JP2017182377A publication Critical patent/JP2017182377A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】パスワードの安全性を向上させる情報処理装置、制御方法、及びプログラムを提供する。
【解決手段】分割部2020は、第1文字列を、所定の規則で複数の部分文字列に分割する。第1文字列は、ユーザの識別子に対応づけられている。ハッシュ値列生成部2040は第1ハッシュ値列を生成する。ハッシュ値列生成部2040は、所定のハッシュ関数を用いて、複数の部分文字列それぞれについてハッシュ値を算出し、算出された複数のハッシュ値からなる列を第1ハッシュ値列とする。判定部2060は、第1ハッシュ値列と第2ハッシュ値列とが類似するか否かを判定する。第2ハッシュ値列は、ユーザの識別子に対応づけられている第2文字列から生成されたものである。その生成方法は、第1文字列から第1ハッシュ値列を生成する方法と同じ方法である。
【選択図】図1

Description

本発明は文字列処理に関する。
ユーザ認証を行う手段の1つとして、パスワードを用いた認証がある。パスワードを用いて認証を行うためには、予め各ユーザについて、ユーザ識別子及びパスワードの組み合わせを記憶装置に記憶させておく。ユーザ認証を行う装置(以下、認証装置)は、ユーザ認証を行う際、ユーザ識別子及びパスワードの組み合わせをユーザから取得する。そして、認証装置は、取得したユーザ識別子及びパスワードの組み合わせが、記憶装置に記憶されているユーザ識別子及びパスワードの組み合わせと合致するか否かを判定することで、ユーザ認証を行う。
パスワードは、何らかの原因で漏洩する可能性がある。そのため、同一のパスワードが長期間使い続けられることは好ましくない。そこで、ユーザに対してパスワードの変更が求められる。
パスワードを変更する際、新たなパスワードは、元のパスワードと類似しないことが好ましい。仮に元のパスワードが漏洩していると、そのパスワードから、そのパスワードに類似している新たなパスワードが推測されてしまう恐れがあるためである。
パスワードの管理に関する技術を開示している文献には、例えば特許文献1から特許文献3がある。特許文献1と特許文献2は、新たなパスワードを表す文字列と、これまでに入力されたパスワードを表す文字列との類否を判定するシステムを開示している。特許文献1のシステムは、現在のパスワードを表す文字列と新たなパスワードを表す文字列との間で内積を計算し、この内積の大きさで類否を判定する。特許文献2のシステムは、隠れマルコフモデルなどの確率モデルを用いて、これまでに入力された1つ以上のパスワードの文字列に基づき、文字列の状態遷移モデルを生成する。そして、特許文献2のシステムは、この状態遷移モデルを用いて、新たに入力されたパスワードの各文字の出現確率を算出し、算出した出現確率の積の大きさで、新たに入力されたパスワードとこれまでに入力されたパスワードとの類否を判定する。
特許文献3は、ユーザに入力されたパスワードが、所定の禁止されたパスワードと同一又は類似の場合に、入力されたパスワードの登録を拒否するシステムを開示している。所定の禁止されたパスワードは、例えば覚えやすい簡単なパスワード(例えば「password」)である。特許文献3では、「aと@」や「Gと6」など、外見上似ている文字の対応表を予め用意しておくことで、所定の禁止パスワードに外見上類似しているパスワードの登録を拒否する。例えば「password」が禁止パスワードである場合、「p@ssword」というパスワードの登録も拒否される。
特開2009−230684号公報 特開2010−191871号公報 欧州特許第1943768号明細書
パスワードを安全に管理するため、ユーザから取得したパスワードそのものについては記憶装置に記憶せず、パスワード全体のハッシュ値を記憶装置に記憶しておく手法が利用されることがある。
この手法が利用されていると、前述した特許文献1から特許文献3に開示されている技術が利用できない。これらの技術は、新たなパスワードとの比較対象とするパスワード(例えば現在のパスワード)が記憶装置に記憶されていることを前提としているためである。
また、パスワード全体のハッシュ値同士を比較しても、パスワードそのもの同士の類否を判定することはできない。パスワード全体のハッシュ値同士の類否と、パスワードそのもの同士の類否は、必ずしも一致しないためである。
本発明は、上記の課題に鑑みてなされたものであり、パスワードの安全性を向上する技術を提供することを目的とする。
本発明の情報処理装置は、(1)ユーザの識別子に対応づけられた第1の文字列を、所定の規則で複数の部分文字列に分割する分割手段と、(2)所定のハッシュ関数を用いて、前記複数の部分文字列それぞれについてハッシュ値を算出し、前記算出された複数のハッシュ値の列である第1のハッシュ値列を生成するハッシュ値列生成手段と、(3)前記第1のハッシュ値列と第2のハッシュ値列とが類似するか否かを判定する判定手段と、を有する。
前記第2のハッシュ値列は、前記所定の規則及び前記所定のハッシュ関数を用いて、前記ユーザの識別子に対応づけられた第2の文字列から生成されたハッシュ値列である。
本発明の制御方法は、コンピュータによって実行される。当該制御方法は、(1)ユーザの識別子に対応づけられた第1の文字列を、所定の規則で複数の部分文字列に分割する分割ステップと、(2)所定のハッシュ関数を用いて、前記複数の部分文字列それぞれについてハッシュ値を算出し、前記算出された複数のハッシュ値の列である第1のハッシュ値列を生成するハッシュ値列生成ステップと、(3)前記第1のハッシュ値列と第2のハッシュ値列とが類似するか否かを判定する判定ステップと、を有する。
前記第2のハッシュ値列は、前記所定の規則及び前記所定のハッシュ関数を用いて、前記ユーザの識別子に対応づけられた第2の文字列から生成されたハッシュ値列である。
本発明のプログラムは、本発明の制御方法が有する各ステップをコンピュータに実行させる。
本発明によれば、パスワードの安全性を向上する技術が提供される。
実施形態1に係る情報処理装置を例示するブロック図である。 文字列全体のハッシュ値同士を比較する方法を例示する図である。 文字列から生成されるハッシュ値列を比較する方法を例示する図である。 情報処理装置を実現するための計算機を例示する図である。 情報処理装置の実現例を示す図である。 実施形態1の情報処理装置によって実行される処理の流れを例示するフローチャートである。 第1文字列を2文字ずつ分割する方法を例示する図である。 第1文字列を3個の部分文字列に分割する方法を例示する図である。 第1文字列において連続していない文字から部分文字列を生成する方法を例示する図である。 第1部分文字列群から第1ハッシュ値列を生成する方法を例示する図である。 一致するハッシュ値の個数を基準としてハッシュ値列の類否を判定するケースを例示する図である。 編集距離を利用してハッシュ値列の類否を判定するケースを例示する図である。 ユーザの現在のパスワードから生成されたハッシュ値列がユーザIDと対応づけられて記憶されている様子を例示する図である。 部分文字列に対してソルトを付加するケースを例示する図である。 情報処理装置の外部に設けられているデータベースにおいて、ユーザIDと対応付けられたソルトが管理されている様子を例示する図である。 実施形態2の情報処理装置によって実行される処理の流れを例示するフローチャートである。 情報処理装置の外部に設けられているデータベースにおいて、ユーザIDと対応付けられたハッシュの適用回数が管理されている様子を例示する図である。 データベースにおいて、ハッシュの適用回数とソルトがユーザIDと対応づけられて管理される様子を例示する図である。 実施形態4の情報処理装置を例示するブロック図である。 実施形態4の情報処理装置によって実行される処理の流れを例示するフローチャートである。
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
[実施形態1]
図1は、実施形態1に係る情報処理装置2000を例示するブロック図である。図1において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。
情報処理装置2000は、分割部2020、ハッシュ値列生成部2040、及び判定部2060を有する。分割部2020は、第1文字列を、所定の規則で複数の部分文字列に分割する。第1文字列は、ユーザの識別子に対応づけられている。例えば第1文字列がパスワードである場合、ユーザの識別子は、パスワードと共に入力されるユーザID(Identifier)である。以下、第1文字列を分割することで得られた複数の部分文字列を、第1部分文字列群とも表記する。
ハッシュ値列生成部2040は第1ハッシュ値列を生成する。具体的には、ハッシュ値列生成部2040は、所定のハッシュ関数を用いて、上記複数の部分文字列それぞれについてハッシュ値を算出する。これにより、複数のハッシュ値が算出される。ハッシュ値列生成部2040は、この算出された複数のハッシュ値からなる列を、上記第1ハッシュ値列とする。
判定部2060は、第1ハッシュ値列と第2ハッシュ値列とが類似するか否かを判定する。第2ハッシュ値列は、上記ユーザの識別子に対応づけられている第2文字列から生成されたものである。その生成方法は、第1文字列から第1ハッシュ値列を生成する方法と同様の方法である。具体的には、(1)第2文字列を上記所定の規則で複数の部分文字列に分割し、(2)上記所定のハッシュ関数を用いて各部分文字列のハッシュ値を算出する。これによって算出された複数のハッシュ値からなる列が、第2ハッシュ値列である。なお第2文字列は、第1文字列とは異なるタイミングで生成されたものである。
ここで第2ハッシュ値列は、第1ハッシュ値列の生成を行う情報処理装置2000によって生成されたものに限定されない。例えば情報処理装置2000を実現する計算機が複数ある場合、第1ハッシュ値列の生成と第2ハッシュ値列の生成は、それぞれ異なる計算機によって行われてもよい。また例えば、第2ハッシュ値列の生成は、情報処理装置2000を実現する計算機以外の計算機によって行われてもよい。
<作用・効果>
第1文字列と、第1文字列とは異なるタイミングで生成された第2文字列とが類似しているか否かを判定したい場合、第1文字列と第2文字列とを直接比較するためには、第2文字列を記憶装置などに記憶しておく必要がある。そのため、第2文字列そのものを記憶しておくことが不都合な環境では、第1文字列と第2文字列とを直接比較する方法が利用できない。例えばパスワードの管理においては、パスワードそのもの(第2文字列)を記憶しておくことは好ましくなく、パスワードのハッシュ値を記憶しておくことが好ましい。
ここで、第2文字列全体のハッシュ値を記憶しておき、第1文字列全体のハッシュ値と第2文字列全体のハッシュ値とを比較する方法も考えられる。しかし、文字列全体のハッシュ値同士の比較では、文字列同士の類否を判断することが難しい。文字列全体のハッシュ値同士の比較では、文字列全体が同一であるか否かの判定はできても、文字列全体がどの程度類似しているかの判定ができないためである。これは一般に、文字列同士の類似度合いと、文字列から生成されたハッシュ値同士の類似度合いとの間に相関が無いためである。
図2は、文字列全体のハッシュ値同士を比較する方法を例示する図である。図2(a)では、ハッシュ値同士が一致していることから、文字列同士も一致していることが分かる。一方、図2(b)と図2(b)ではいずれも、ハッシュ値同士が一致していないことから、文字列同士が一致していないことが分かる。
ここで、図2(b)の場合、文字列Aと文字列Bの差異は末尾の1文字である。よって、これらの文字列は類似していると言える。一方、図2(c)の場合、文字列Aと文字列Bは全ての文字が一致してない。よって、これらの文字列は類似していないと言える。しかし、ハッシュ値同士の比較では類似の度合いが判定できないため、「前者では文字列同士が類似しており、後者では文字列同士が類似していない」ということが分からない。
そこで本実施形態の情報処理装置2000は、第1文字列全体のハッシュ値を算出するのではなく、第1文字列を複数の部分文字列に分割し、部分文字列ごとにハッシュ値を算出することで、第1文字列に対応する第1ハッシュ値列を生成する。同様に、第2文字列についても、第2ハッシュ値列が生成されている。そして情報処理装置2000は、これらハッシュ値列同士を比較する。
図3は、文字列から生成されるハッシュ値列を比較する方法を例示する図である。なお、図3では、文字列を先頭から2文字ずつに区切ることで、文字列を部分文字列に分割している。
図3(a)では、2つのハッシュ値列が一致している。そのため、非常に高い確率で文字列同士も一致していることが分かる。なお、きわめて稀に異なる文字列のハッシュ値が同じになる「衝突」が発生する場合もあるが、本発明では「衝突」が発生した場合、文字列同士は同じであると見なす。
一方、図3(b)と図3(c)では、2つのハッシュ値列は一致していない。ここで、図3(b)において2つのハッシュ値列を比較すると、1番目と2番目のハッシュ値は一致しており、3番目のハッシュ値が一致していない。これに対し、図3(c)において2つのハッシュ値列を比較すると、いずれのハッシュ値も一致していない。このことから、図3(b)における2つのハッシュ値列の類似度合いは、図3(c)における2つのハッシュ値列の類似度合いよりも高いということが分かる。ひいては、図3(b)における2つの文字列の類似度合いは、図3(c)における2つの文字列の類似度合いよりも高いということが分かる。
このように本実施形態の情報処理装置2000によれば、文字列全体のハッシュ値ではなく、文字列から生成されるハッシュ値列を比較することにより、元の文字列同士の類否を精度よく判定することができる。よって、文字列をそのまま記憶装置に記憶しておくことが不都合な環境であっても、元の文字列同士の類否を精度よく判定することができるようになる。
例えば本実施形態の情報処理装置2000において、第1文字列と第2文字列としてパスワードを扱うことが考えられる。こうすることにより、パスワードそのものを記憶することを避けつつ、パスワード同士の類否を精度よく判定することができるようになる。よって、例えば新たにユーザが入力しようとしているパスワードが、現在又は過去のパスワードと類似しているか否かを判定することができる。そのため、現在又は過去のパスワードと類似しているパスワードが新たに登録されることを避けるといったことが可能となり、パスワードの安全性が向上する。
以下、本実施形態についてさらに詳細に説明する。
<情報処理装置2000のハードウエア構成例>
情報処理装置2000の各機能構成部は、各機能構成部を実現するハードウエア(例:ハードワイヤードされた電子回路など)で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ(例:電子回路とそれを制御するプログラムの組み合わせなど)で実現されてもよい。以下、情報処理装置2000の各機能構成部がハードウエアとソフトウエアとの組み合わせで実現される場合について、さらに説明する。
図4は、情報処理装置2000を実現するための計算機1000を例示する図である。計算機1000は任意の計算機である。例えば計算機1000は、Personal Computer(PC)、サーバマシン、タブレット端末、又はスマートフォンなどである。計算機1000は、情報処理装置2000を実現するために設計された専用の計算機であってもよいし、汎用の計算機であってもよい。
計算機1000は、バス1020、プロセッサ1040、メモリ1060、ストレージ1080、入出力インタフェース1100、及びネットワークインタフェース1120を有する。バス1020は、プロセッサ1040、メモリ1060、ストレージ1080、入出力インタフェース1100、及びネットワークインタフェース1120が、相互にデータを送受信するためのデータ伝送路である。ただし、プロセッサ1040などを互いに接続する方法は、バス接続に限定されない。プロセッサ1040は、CPU (Central Processing Unit) や GPU (Graphics Processing Unit) などの演算処理装置である。メモリ1060は、RAM (Random Access Memory) や ROM (Read Only Memory) などのメモリである。ストレージ1080は、ハードディスク、SSD (Solid State Drive)、又はメモリカードなどの記憶装置である。また、ストレージ1080は、RAM や ROM などのメモリであってもよい。
入出力インタフェース1100は、計算機1000と入出力デバイスとを接続するためのインタフェースである。例えば入出力インタフェース1100には、キーボードやマウスなどが接続される。
ネットワークインタフェース1120は、計算機1000を外部の装置と通信可能に接続するためのインタフェースである。ネットワークインタフェース1120は、有線回線と接続するためのネットワークインタフェースでもよいし、無線回線と接続するためのネットワークインタフェースでもよい。
ストレージ1080は、情報処理装置2000の各機能構成部を実現するプログラムモジュールを記憶している。プロセッサ1040は、これら各プログラムモジュールをメモリ1060に読み出して実行することで、そのプログラムモジュールに対応する各機能を実現する。
計算機1000のハードウエア構成は図4に示した構成に限定されない。例えば、各プログラムモジュールはメモリ1060に格納されてもよい。この場合、計算機1000は、ストレージ1080を備えていなくてもよい。
<情報処理装置2000の実現例>
図5は、情報処理装置2000の実現例を示す図である。図5(a)において、情報処理装置2000を実現する計算機1000は、第1文字列に対応づけられたユーザが操作する計算機である。例えばユーザが操作する計算機は、ユーザが所有する携帯端末や PC である。第1文字列や第2文字列としてユーザのパスワードを扱う場合、情報処理装置2000は、例えば計算機1000上で動作するオペレーティングシステムやアプリケーションにおけるユーザのパスワードについて類否を判定する。より具体的には、情報処理装置2000は、例えばユーザの新たなパスワードと現在又は過去のパスワードとの類否を判定する。
一方、図5(b)において、情報処理装置2000を実現する計算機1000は、第1文字列に対応づけられたユーザが操作する計算機(計算機3000)とは別の計算機である。例えば計算機1000は、ネットワーク上でサービスを提供するサーバである。第1文字列や第2文字列としてユーザのパスワードを扱うとすれば、情報処理装置2000は、提供するサービスにおけるユーザのパスワードについて類否を判定する。より具体的には、情報処理装置2000は、例えばユーザの新たなパスワードと現在又は過去のパスワードとの類否を判定する。なお、図5(b)のケースにおいて、計算機3000は、通信回線(インターネットや Local Area Network)を介して、計算機1000から第1文字列を取得する。
<処理の流れ>
図6は、実施形態1の情報処理装置2000によって実行される処理の流れを例示するフローチャートである。分割部2020は、第1文字列を取得する(S102)。分割部2020は、第1文字列を複数の部分文字列に分割する(S104)。ハッシュ値列生成部2040は第1ハッシュ値列を生成する(S106)。判定部2060は、第2ハッシュ値列を取得する(S108)。判定部2060は、第1ハッシュ値列と第2ハッシュ値列とが類似するか否かを判定する(S110)。
<第1文字列の取得方法:S102>
分割部2020は第1文字列を取得する(S102)。分割部2020が第1文字列を取得する方法は様々である。ユーザが操作する計算機によって情報処理装置2000が実現される場合(図5(a)参照)、分割部2020は、情報処理装置2000を実現する計算機に対してユーザが入力した第1文字列を取得する。第1文字列の入力は、例えば上記計算機に接続されている入力デバイスを用いて行われる。入力デバイスは、例えばキーボードやタッチパネルである。なお、入力デバイスによって入力された文字列を取得する方法には、既存の技術を利用できる。
ただし、第1文字列はユーザによって入力される文字列に限定されない。例えば第1文字列は、情報処理装置2000を実現する計算機によって自動生成された文字列であってもよい。例えば分割部2020は、文字列を自動生成するツール(例えばパスワードを自動生成するツール)によって生成された文字列を第1文字列として取得してもよい。
ユーザが操作する計算機以外の計算機によって情報処理装置2000が実現される場合、分割部2020は、例えば通信回線を介して、ユーザが操作する計算機から第1文字列を取得する(図5(b)参照)。通信回線を介して他の計算機からデータを取得する方法には、既存の技術を利用できる。なおこの場合も、第1文字列は、ユーザが操作する計算機に対してユーザが入力したものや、ユーザが操作する計算機上で動作するツールによって自動生成されたものなどである。
<第1文字列の分割:S104>
分割部2020は、所定の規則で、第1文字列を複数の部分文字列に分割する(S104)。この所定の規則は、文字列の分割に利用できる任意の規則である。以下、その規則を例示する。
<所定文字ずつ分割する>
分割部2020は、第1文字列を所定文字ずつ(例えば1文字)の文字列に分割する。この分割は、例えば先頭の文字また末尾の文字から順に行われる。
図7は、第1文字列を2文字ずつ分割する方法を例示する図である。図7では、第1文字列が、先頭から順に2文字ずつに分割されている。ただし、第1文字列の長さは5文字であるため、最後の部分文字列の長さは1文字となっている。
<所定個に分割する>
分割部2020は、第1文字列を所定個の部分文字列に分割する。この分割も、例えば先頭の文字また末尾の文字から順に行われる。
図8は、第1文字列を3個の部分文字列に分割する方法を例示する図である。図8では、第1文字列が先頭から順に分割されている。各部分文字列の長さは、第1文字列の長さを上記所定個で割った値である。ただし、商の値は整数にする。図8の例では、第1文字列の長さが7であるため、部分文字列の長さは2となる。ただし、商余が1であるため、最後の部分文字列の長さを3としている。
<所定文字ごとに文字を抽出して連結する>
上述した2つの規則では、第1文字列において連続している文字からなる文字列を部分文字列としている。しかし、部分文字列は、第1文字列において連続していない文字列を連結した文字列であってもよい。例えば分割部2020は、第1文字列から所定文字ごとに文字を抽出し、その文字を連結することで部分文字列を生成する。
図9は、第1文字列において連続していない文字から部分文字列を生成する方法を例示する図である。図9では、第1文字列から、4文字ごとに1文字抽出し、抽出した文字を連結することで、部分文字列を生成している。例えば1つ目の部分文字列は、先頭の a、a から4文字後ろにある e、及び e から4文字後ろにある i を抽出して得られる「aei」となっている。
なお上述した各規則はあくまで例示である。情報処理装置2000では、第1文字列と第2文字列とが同じ規則で部分文字列に分割されていればよい。そのため、分割に利用する所定規則には、文字列を分割する任意の規則を利用できる。
第1文字列を部分文字列に分割する所定規則は、予め分割部2020に設定されていてもよいし、分割部2020からアクセス可能な記憶装置に記憶されていてもよい。
<第1ハッシュ値例の生成:S106>
ハッシュ値列生成部2040は、所定のハッシュ関数を用いて、分割部2020によって生成される第1部分文字列群から第1ハッシュ値列を生成する(S106)。第1部分文字列群から第1ハッシュ値列を生成する方法は、例えば以下の数式(1)によって表される。
Figure 2017182377
v_i は、第1ハッシュ値列の先頭から i 番目のハッシュ値である。st_i は、第1部分文字列群の先頭から i 番目の部分文字列である。h は所定のハッシュ関数である。
上述の方法により、ハッシュ値列生成部2040は各部分文字列 st_i をハッシュ値 v_i に変換する。そして、生成されたハッシュ値の列 {v_i: 0<=i<m} を第1ハッシュ値列とする。ここで、m は第1文字列から生成された部分文字列の個数である。
図10は、第1部分文字列群から第1ハッシュ値列を生成する方法を例示する図である。図10において、第1部分文字列群は「a, b, c, d」である。ハッシュ値列生成部2040は、所定のハッシュ関数 h を用いて、第1部分文字列群に含まれる各部分文字列のハッシュ値を算出する。その結果、第1ハッシュ値列は「h(a), h(b), h(c), h(d)」となる。
所定のハッシュ関数は、任意のハッシュ関数である。ただし、セキュリティを向上させる観点から、ハッシュ関数は暗号学的ハッシュ関数であることが好適である。
所定のハッシュ関数は、予めハッシュ値列生成部2040に設定されていてもよいし、ハッシュ値列生成部2040からアクセス可能な記憶装置に記憶されていてもよい。
<第2ハッシュ値列の取得:S108>
判定部2060は、第2ハッシュ値列を取得する(S108)。前述したように、第2ハッシュ値列は第2文字列から生成されたものである。また、第2文字列から第2ハッシュ値列を生成する方法は、第1文字列から第1ハッシュ値列を生成する方法と同様の方法である。例えば第2文字列は、情報処理装置2000のユーザによって過去に入力された文字列や、ユーザが操作する計算機によって過去に自動生成された文字列である。
第2ハッシュ値列は、ユーザの識別子(以下、ユーザID)と対応づけて記憶装置に記憶されている。判定部2060は、第1文字列と対応づけられているユーザIDを取得し、そのユーザIDに対応づけられている第2ハッシュ値列を上記記憶装置から取得する。例えばユーザIDは、第1文字列と共に、ユーザが操作する計算機から取得される。
<第1ハッシュ値列と第2ハッシュ値列の類否判定:S110>
判定部2060は、第1ハッシュ値列と第2ハッシュ値列の類否を判定する(S110)。第1ハッシュ値列と第2ハッシュ値列とが類似しているか否かの判定基準は様々である。以下、この判定基準を例示する。
<<一致するハッシュ値の個数>>
例えば判定基準は、第1ハッシュ値列と第2ハッシュ値列との間で一致するハッシュ値の個数である。これらの間で一致するハッシュ値の個数が所定個以上である場合に、判定部2060は、これらが類似すると判定する。一方で、これらの間で一致するハッシュ値の個数が所定個未満である場合、判定部2060は、これらが類似しないと判定する。
図11は、一致するハッシュ値の個数を基準としてハッシュ値列の類否を判定するケースを例示する図である。第1ハッシュ値列は、第1文字列「abcde」から生成された「h(a), h(b), h(c), h(d), h(e)」である。一方、第2ハッシュ値列は、第2文字列「aecdg」から生成された「h(a), h(e), h(c), h(d), h(g)」である。
第1ハッシュ値列と第2ハッシュ値列を比較すると、2番目と5番目のハッシュ値が異なっている。つまり、異なるハッシュ値の個数は2個である。
よって、上記所定個が2個であれば、判定部2060は「第1ハッシュ値列と第2ハッシュ値列は類似する」と判定する。一方、上記所定個が3個であれば、判定部2060は「第1ハッシュ値列と第2ハッシュ値列は類似しない」と判定する。
上記所定個は、判定部2060に予め設定されていてもよいし、判定部2060からアクセス可能な記憶装置に記憶されていてもよい。この所定個は、例えば情報処理装置2000の管理者によって決定される。情報処理装置2000の管理者は、例えば第1文字列の要件に基づいて、上記所定個を決定する。具体的には、第1文字列の要件が「第1文字列は、第2文字列と3文字以上一致してはいけない」であるとする。この場合、情報処理装置2000の管理者は、上記所定個を3に決定する。なおこの場合、分割部2020は、第1文字列を1文字ずつの部分文字列に分割するとする。
<<類似度>>
また例えば、第1ハッシュ値列と第2ハッシュ値列の類否の判定基準は、第1ハッシュ値列と第2ハッシュ値列との間の類似度である。具体的には、判定部2060は、第1ハッシュ値列と第2ハッシュ値列の類似度を算出し、算出した類似度に基づいてこれらの類否を判定する。
第1ハッシュ値列と第2ハッシュ値列との類似度の算出方法は任意である。例えば判定部2060は、第1ハッシュ値列と第2ハッシュ値列について、レーベンシュタイン距離などの編集距離を算出し、この編集距離を類似度として扱う。この場合、判定部2060は、編集距離が所定値以上であれば「第1ハッシュ値列と第2ハッシュ値列とは類似しない」と判定し、編集距離が所定値未満であれば「第1ハッシュ値列と第2ハッシュ値列とは類似する」と判定する。
上記所定値は、判定部2060に予め設定されていてもよいし、判定部2060からアクセス可能な記憶装置に記憶されていてもよい。この所定値も、例えば情報処理装置2000の管理者によって、第1文字列の要件に基づいて決定される。
図12は、編集距離を利用してハッシュ値列の類否を判定するケースを例示する図である。第1ハッシュ値列は「h(ab), h(cd), h(ef)」である。このハッシュ値列は、第1文字列「abcdef」から第1部分文字列群「ab, cd, ef」を生成し、さらにハッシュ関数 h を用いて各部分文字列のハッシュ値を算出することで得られたものである。第2ハッシュ値列は「h(ab), h(eg), h(ef), h(i)」である。このハッシュ値列は、第1文字列「abegefi」から第1部分文字列群「ab, eg, ef, i」を生成し、さらにハッシュ関数 h を用いて各部分文字列のハッシュ値を算出することで得られたものである。
ここで、第1ハッシュ値列から第2ハッシュ値列を得るためには、(1)2番目のハッシュ値 h(cd) を h(eg) に変更し、(2)末尾に h(i) を追加するという2つの処理を要する。そのため、第1ハッシュ値と第2ハッシュ値との間の編集距離は2である。
よって、例えば編集距離について定める上記所定値が2であれば、判定部2060は、「第1ハッシュ値列と第2ハッシュ値列は類似しない」と判定する。一方、例えば編集距離について定める上記所定値が3であれば、判定部2060は、「第1ハッシュ値列と第2ハッシュ値列は類似する」と判定する。
なお判定部2060は、編集距離以外にも、データ列同士の類似度を算出する任意のアルゴリズムを利用できる。ここで、アルゴリズムが文字列を対象とするものである場合、判定部2060は、ハッシュ値列に含まれる各ハッシュ値を文字として扱うことで、そのアルゴリズムを利用することができる。
<情報処理装置2000を利用したパスワードの類否判定>
情報処理装置2000は、例えばパスワードの登録を受け付ける装置として利用できる。この場合、第1文字列は新たに設定されるパスワードである。また、第2文字列は、現在又は過去のパスワード(新たなパスワードとは異なるタイミングで生成されたパスワード)である。
現在のパスワードや過去のパスワードは、ユーザIDに対応づけられたハッシュ値列(前述した第2ハッシュ値列)として記憶されている。第2ハッシュ値列を記憶する記憶装置は、情報処理装置2000の内部に設けられていてもよいし、外部に設けられていてもよい。図13は、ユーザの現在のパスワードから生成されたハッシュ値列がユーザIDと対応づけられて記憶されている様子を例示する図である。図13において、記憶装置は情報処理装置2000の外部に設けられている。
ユーザは、キーボードなどを操作して、新たなパスワードを入力する。分割部2020は、このパスワードを複数の部分文字列に分割する。ハッシュ値列生成部2040は、この複数の部分文字列から、第1ハッシュ値列を生成する。
判定部2060は、新たなパスワードに対応するハッシュ値列(第1ハッシュ値列)と、現在又は過去のパスワードに対応するハッシュ値列(第2ハッシュ値列)との類否を判定する。これらが類似していると、新たなパスワードが現在又は過去のパスワードと類似していることとなる。新たなパスワードが現在又は過去のパスワードと類似することは好ましくないため、情報処理装置2000は、このパスワードの登録を拒否する。一方、第1ハッシュ値列と第2ハッシュ値列とが類似してない場合、新たなパスワードは現在又は過去のパスワードと類似していない。そのため、情報処理装置2000は、そのパスワードの登録を許可する。
このように、本実施形態の情報処理装置2000によれば、現在又は過去のパスワードそのものが記憶されておらず、これらのパスワードのハッシュ値列が記憶されている場合であっても、新たなパスワードと現在又は過去のパスワードとの類否を判定することができる。よって、パスワードそのものを記憶せずにパスワードのハッシュ値列を記憶しておくことでパスワードの安全な管理を実現しつつ、新たなパスワードと現在又は過去のパスワードとが類似しないようにすることで、パスワード漏洩の危険性及びパスワードが漏洩した際の被害を減らすことができる。
[実施形態2]
実施形態2の情報処理装置2000は、実施形態1の情報処理装置2000と同様に、例えば図1で表される。下記で説明する点を除き、実施形態2の情報処理装置2000は、実施形態1の情報処理装置2000と同様の機能を有する。
実施形態1のハッシュ値列生成部2040は、各部分文字列からハッシュ値を算出する前に、各部分文字列を所定規則で変換する。ハッシュ値列生成部2040は、この変換後の部分文字列からそれぞれハッシュ値を算出する。
部分文字列を所定規則で変換してから第1ハッシュ値列を生成する方法は、例えば以下の数式(2)によって表される。
Figure 2017182377
c は、上記所定規則を表す関数である。v_i、st_i、及び h の意味は、数式(1)と同じである。
上述の方法により、ハッシュ値列生成部2040は各部分文字列 st_i をハッシュ値 v_i に変換する。そして、生成されたハッシュ値の列 {v_i: 0<=i<m} を第1ハッシュ値列とする。ここで、m は第1文字列から生成された部分文字列の個数である。
上記所定規則は、或るデータを別のデータに変換する任意の規則である。例えば上記所定規則は、部分文字列に対して所定のデータを付加する規則である。この所定のデータは、一般にソルトと呼ばれる。ソルトは、レインボーテーブルなどを用いた攻撃への対策として利用される。
部分文字列に対してソルトを付加する規則 c は、例えば以下の数式(3)によって表される。
Figure 2017182377
uid はユーザIDであり、salt(uid) は uid というユーザIDに対応づけられているソルトである。st_i の意味は、数式(1)と同じである。
図14は、部分文字列に対してソルトを付加するケースを例示する図である。図14において、第1部分文字列群は「ab, cd, e」である。また、ソルトは「123」である。
ハッシュ値列生成部2040は、各部分文字列に対してソルト「123」を付加する。その結果、第1部分文字列群は「ab123, cd123, e123」に変換される。その後ハッシュ値列生成部2040は、変換後の第1部分文字列群についてハッシュ値を算出することで、第1ハッシュ値列「h(ab123), h(cd123), h(e123)」を生成する。
ソルトは、ユーザIDに対応づけて記憶装置に記憶されている。ここで、ソルトを記憶する記憶装置は、情報処理装置2000の内部に設けられていてもよいし、情報処理装置2000の外部に設けられていてもよい。後者の場合、例えばソルトは、情報処理装置2000の外部に設けられる装置(例えばデータベースサーバ)で管理される。図15は、情報処理装置2000の外部に設けられているデータベースにおいて、ユーザIDと対応付けられたソルトが管理されている様子を例示する図である。
ここで、ソルトを管理する装置(以下、ソルト管理装置)と情報処理装置2000の間では、一定程度のアイソレーションが実現されていることが好ましい。これにより、ソルトを管理する装置と情報処理装置2000のいずれか一方がクラッキングなどの被害にあった場合でも、他方の装置によって管理されているデータに被害が及ぶことを防ぐことができる。
情報処理装置2000とソルト管理装置との間でアイソレーションを実現する方法は様々である。例えば情報処理装置2000とソルト管理装置とを、それぞれ異なる物理計算機で実現する。また例えば、情報処理装置2000とソルト管理装置とを、それぞれ異なる仮想計算機で実現する。また例えば、情報処理装置2000とソルト管理装置とを、それぞれ異なるコンテナで実現する。
<処理の流れ>
図16は、実施形態2の情報処理装置2000によって実行される処理の流れを例示するフローチャートである。ここで、図6のフローチャートと同じステップについての説明は省略する。
S202において、ハッシュ値列生成部2040は、部分文字列を所定規則で変換する。S204において、ハッシュ値列生成部2040は、変換後の部分文字列から第1ハッシュ値列を生成する。
<ハードウエア構成例>
実施形態2の情報処理装置2000は、実施形態1と同様に計算機1000を用いて実現される(図4参照)。本実施形態において、前述したストレージ1080に記憶される各プログラムモジュールには、本実施形態で説明した各機能を実現するプログラムがさらに含まれる。
<作用・効果>
本実施形態の情報処理装置2000によれば、第1文字列から生成された部分文字列を所定規則で変換した後、その変換後の部分文字列にハッシュ関数を適用することで、第1ハッシュ値列が生成される。ここで前述したように、第2ハッシュ値列は第1ハッシュ値列と同様の方法で生成される。そのため記憶装置に記憶される第2ハッシュ値列は、「第2文字列から生成された部分文字列を所定規則で変換し、その変換後の部分文字列に対してハッシュ関数を適用する」という方法で生成されたものとなる。よって、本実施形態の情報処理装置2000によれば、記憶装置に記憶されている第2ハッシュ値列に基づいて元の第2文字列が漏洩する危険性を減らすことができる。例えば前述したソルトを利用する方法によれば、レインボーテーブルなどを利用した攻撃への耐性が向上する。
[実施形態3]
実施形態3の情報処理装置2000は、実施形態1の情報処理装置2000と同様に、例えば図1で表される。下記で説明する点を除き、実施形態3の情報処理装置2000は、実施形態1の情報処理装置2000又は実施形態2の情報処理装置2000と同様の機能を有する。
実施形態3のハッシュ値列生成部2040は、部分文字列に対してハッシュ関数を複数回適用する。つまり、部分文字列からハッシュ値列を構成するハッシュ値への変換は、以下の数式(4)によって行われる。
Figure 2017182377
n は、部分文字列 st_i に対してハッシュ関数 h を適用する回数である。v_[i,n] は、第1ハッシュ値列の先頭から i 番目のハッシュ値である。v_[i,n] は、部分文字列 st_i に対して n 回ハッシュ関数を適用することで算出される。
上述の方法により、ハッシュ値列生成部2040は各部分文字列 st_i をハッシュ値 v_[i,n] に変換する。そして、生成されたハッシュ値の列 {v_[i,n]: 0<=i<m} を第1ハッシュ値列とする。ここで、m は第1文字列から生成された部分文字列の個数である。
上記所定回数 n は、全てのユーザについて共通して定義されている値であってもよいし、ユーザごとに定義されている値であってもよい。後者の場合、所定回数 n は、ユーザIDに対応づけて予め記憶されている。所定回数 n をユーザIDに対応づけて記憶する方法は、実施形態2で説明した、ソルトをユーザIDに対応づけて記憶する方法と同様である。図17は、情報処理装置2000の外部に設けられているデータベースにおいて、ユーザIDと対応付けられたハッシュの適用回数が管理されている様子を例示する図である。
<ハードウエア構成例>
実施形態3の情報処理装置2000は、実施形態1と同様に計算機1000を用いて実現される(図4参照)。本実施形態において、前述したストレージ1080に記憶される各プログラムモジュールには、本実施形態で説明した各機能を実現するプログラムがさらに含まれる。
<作用・効果>
本実施形態の情報処理装置2000によれば、第1文字列から生成された部分文字列に対してハッシュ関数を複数回適用することで、第1ハッシュ値列が生成される。ここで前述したように、第2ハッシュ値列は第1ハッシュ値列と同様の方法で生成される。そのため記憶装置に記憶される第2ハッシュ値列は、「第2文字列から生成された部分文字列に対してハッシュ関数を複数回適用する」という方法で生成されたものとなる。よって、本実施形態の情報処理装置2000によれば、記憶装置に記憶されている第2ハッシュ値列に基づいて元の第2文字列が漏洩する危険性を減らすことができる。
なお、本実施形態のハッシュ値列生成部2040は、実施形態2で説明した所定規則による変換を部分文字列に施し、その変換後の部分文字列に対してハッシュ関数を所定回数適用してもよい。この場合に算出されるハッシュ値 v_[i,n] は、例えば以下の数式(5)によって表される。
Figure 2017182377
c は、部分文字列 st_i を上記所定規則で変換する関数である。
例えば上記所定規則は、実施形態2で説明した、ユーザごとに定められているソルトを部分文字列に付加する規則である。この場合、例えばハッシュ関数を適用する所定回数 n は、ソルトと共にユーザIDと対応づけられて、情報処理装置2000の外部に設けられた記憶装置に記憶される。図18は、データベースにおいて、ハッシュの適用回数とソルトがユーザIDと対応づけられて管理される様子を例示する図である。
このように、所定規則による部分文字列の変換、及び複数回のハッシュ関数の適用の双方を行うことにより、記憶装置に記憶されている第2ハッシュ値列に基づいて元の第2文字列が漏洩する危険性をさらに減らすことができる。
[実施形態4]
図19は、実施形態4の情報処理装置2000を例示するブロック図である。下記で説明する点を除き、実施形態4の情報処理装置2000は、実施形態1から実施形態3の情報処理装置2000と同様の機能を有する。
実施形態4の情報処理装置2000は警告情報出力部2080を有する。警告情報出力部2080は、判定部2060により、第1ハッシュ値列と第2ハッシュ値列とが類似すると判定された場合に、警告情報を出力する。
警告情報出力部2080が出力する警告情報は任意である。例えば警告情報は、「第1文字列と第2文字列が類似する」という旨のメッセージを示す情報である。なお、前述した通り、第1ハッシュ値列と第2ハッシュ値列とが類似する場合、第1文字列と第2文字列とが類似する蓋然性が高い。また例えば、警告情報は、異なる第1文字列の入力を要求するメッセージを示す情報である。また例えば、警告情報は、何らかの問題があることをユーザに気づかせるための情報(例えば警告音)であってもよい。
警告情報を出力する方法は任意である。例えば警告情報出力部2080は警告情報を表すテキストデータや画像データをディスプレイ装置に表示させたり、警告情報を表す音声をスピーカから出力させたりする。ここで、上記ディスプレイ装置やスピーカは、ユーザが操作する計算機に接続されている。なお、ユーザが操作する計算機とは別の計算機を用いて情報処理装置2000が実現されている場合、情報処理装置2000を実現する計算機(図5(b)の計算機1000)からユーザが操作する計算機(図5(b)の計算機3000)へ警告情報を送信する。ユーザが操作する計算機は、その計算機に接続されているディスプレイ装置やスピーカに警告情報を出力させる。なお、受信した情報をディスプレイ装置やスピーカに出力させる技術には、既知の技術を利用できる。
<処理の流れ>
図20は、実施形態4の情報処理装置2000によって実行される処理の流れを例示するフローチャートである。ここで、図6のフローチャートにも示されているステップについての説明は省略する。
判定部2060によって第1ハッシュ値列と第2ハッシュ値列とが類似していると判定された場合(S402:YES)、図20の処理はS404に進む。一方、 判定部2060によって第1ハッシュ値列と第2ハッシュ値列とが類似していないと判定された場合(S402:NO)、図20の処理は終了する。S404において、警告情報出力部2080は警告情報を出力する。
<ハードウエア構成例>
実施形態4の情報処理装置2000は、実施形態1と同様に計算機1000を用いて実現される(図4参照)。本実施形態において、前述したストレージ1080に記憶される各プログラムモジュールには、本実施形態で説明した各機能を実現するプログラムがさらに含まれる。
<作用・効果>
本実施形態の情報処理装置2000によれば、第1ハッシュ値列と第2ハッシュ値列とが類似している場合に警告情報が出力される。ここで、第1ハッシュ値列と第2ハッシュ値列とが類似している場合、第1文字列と第2文字列とが類似している蓋然性が高い。そのため、本実施形態の情報処理装置2000によれば、第1文字列が第2文字列と類似していることを、ユーザに気づかせることができる。よって、第1文字列の入力をユーザにやり直させるといったことが可能となる。
例えば第1文字列が新たなパスワードであり、第2文字列が現在又は過去のパスワードであるとする。この場合、警告情報出力部2080により、新たなパスワードが現在又は過去のパスワードに類似していることを、ユーザに気づかせることができる。よって、別のパスワードをユーザに入力させるといったことが可能となる。
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記各実施形態の組み合わせ、又は上記以外の様々な構成を採用することもできる。
以下、参考形態の例を付記する。
1. ユーザの識別子に対応づけられた第1の文字列を、所定の規則で複数の部分文字列に分割する分割手段と、
所定のハッシュ関数を用いて、前記複数の部分文字列それぞれについてハッシュ値を算出し、前記算出された複数のハッシュ値の列である第1のハッシュ値列を生成するハッシュ値列生成手段と、
前記第1のハッシュ値列と第2のハッシュ値列とが類似するか否かを判定する判定手段と、
を有し、
前記第2のハッシュ値列は、前記所定の規則及び前記所定のハッシュ関数を用いて、前記ユーザの識別子に対応づけられた第2の文字列から生成されたハッシュ値列である、情報処理装置。
2. 前記第1の文字列と前記第2の文字列は、互いに異なるタイミングで生成される、1.に記載の情報処理装置。
3. 前記ハッシュ値列生成手段は、
前記複数の部分文字列それぞれを所定の規則で変換し、
前記所定のハッシュ関数を用いて、前記変換された複数の部分文字列それぞれのハッシュ値を算出し、
前記算出された複数のハッシュ値の列を前記第1のハッシュ値列とする、1.又は2.に記載の情報処理装置。
4. 前記所定の規則は、前記複数の部分文字列それぞれに対し、前記ユーザの識別子に対応づけられている所定のデータを付加する規則である、3.に記載の情報処理装置。
5. 前記ユーザの識別子に対し、前記ハッシュ関数の適用回数が対応づけられており、
前記ハッシュ値列生成手段は、前記複数の部分文字列それぞれについて、前記ハッシュ関数の適用を前記適用回数行う、1.乃至4.いずれか一つに記載の情報処理装置。
6. 前記判定手段によって前記第1のハッシュ値列と前記第2のハッシュ値列とが類似すると判定された場合に警告情報を出力する警告情報出力手段を有する、1.乃至5.いずれか一つに記載の情報処理装置。
7. コンピュータによって実行される制御方法であって、
ユーザの識別子に対応づけられた第1の文字列を、所定の規則で複数の部分文字列に分割する分割ステップと、
所定のハッシュ関数を用いて、前記複数の部分文字列それぞれについてハッシュ値を算出し、前記算出された複数のハッシュ値の列である第1のハッシュ値列を生成するハッシュ値列生成ステップと、
前記第1のハッシュ値列と第2のハッシュ値列とが類似するか否かを判定する判定ステップと、
を有し、
前記第2のハッシュ値列は、前記所定の規則及び前記所定のハッシュ関数を用いて、前記ユーザの識別子に対応づけられた第2の文字列から生成されたハッシュ値列である、制御方法。
8. 前記第1の文字列と前記第2の文字列は、互いに異なるタイミングで生成される、7.に記載の制御方法。
9. 前記ハッシュ値列生成ステップは、
前記複数の部分文字列それぞれを所定の規則で変換し、
前記所定のハッシュ関数を用いて、前記変換された複数の部分文字列それぞれのハッシュ値を算出し、
前記算出された複数のハッシュ値の列を前記第1のハッシュ値列とする、7.又は8.に記載の制御方法。
10. 前記所定の規則は、前記複数の部分文字列それぞれに対し、前記ユーザの識別子に対応づけられている所定のデータを付加する規則である、9.に記載の制御方法。
11. 前記ユーザの識別子に対し、前記ハッシュ関数の適用回数が対応づけられており、
前記ハッシュ値列生成ステップは、前記複数の部分文字列それぞれについて、前記ハッシュ関数の適用を前記適用回数行う、7.乃至10.いずれか一つに記載の制御方法。
12. 前記判定ステップによって前記第1のハッシュ値列と前記第2のハッシュ値列とが類似すると判定された場合に警告情報を出力する警告情報出力ステップを有する、7.乃至11.いずれか一つに記載の制御方法。
13. 7.乃至12.いずれか一つに記載の制御方法が有する各ステップをコンピュータに実行させるプログラム。
1000 計算機
1020 バス
1040 プロセッサ
1060 メモリ
1080 ストレージ
1100 入出力インタフェース
1120 ネットワークインタフェース
2000 情報処理装置
2020 分割部
2040 ハッシュ値列生成部
2060 判定部
2080 警告情報出力部
3000 計算機

Claims (8)

  1. ユーザの識別子に対応づけられた第1の文字列を、所定の規則で複数の部分文字列に分割する分割手段と、
    所定のハッシュ関数を用いて、前記複数の部分文字列それぞれについてハッシュ値を算出し、前記算出された複数のハッシュ値の列である第1のハッシュ値列を生成するハッシュ値列生成手段と、
    前記第1のハッシュ値列と第2のハッシュ値列とが類似するか否かを判定する判定手段と、
    を有し、
    前記第2のハッシュ値列は、前記所定の規則及び前記所定のハッシュ関数を用いて、前記ユーザの識別子に対応づけられた第2の文字列から生成されたハッシュ値列である、情報処理装置。
  2. 前記第1の文字列と前記第2の文字列は、互いに異なるタイミングで生成される、請求項1に記載の情報処理装置。
  3. 前記ハッシュ値列生成手段は、
    前記複数の部分文字列それぞれを所定の規則で変換し、
    前記所定のハッシュ関数を用いて、前記変換された複数の部分文字列それぞれのハッシュ値を算出し、
    前記算出された複数のハッシュ値の列を前記第1のハッシュ値列とする、請求項1又は2に記載の情報処理装置。
  4. 前記所定の規則は、前記複数の部分文字列それぞれに対し、前記ユーザの識別子に対応づけられている所定のデータを付加する規則である、請求項3に記載の情報処理装置。
  5. 前記ユーザの識別子に対し、前記ハッシュ関数の適用回数が対応づけられており、
    前記ハッシュ値列生成手段は、前記複数の部分文字列それぞれについて、前記ハッシュ関数の適用を前記適用回数行う、請求項1乃至4いずれか一項に記載の情報処理装置。
  6. 前記判定手段によって前記第1のハッシュ値列と前記第2のハッシュ値列とが類似すると判定された場合に警告情報を出力する警告情報出力手段を有する、請求項1乃至5いずれか一項に記載の情報処理装置。
  7. コンピュータによって実行される制御方法であって、
    ユーザの識別子に対応づけられた第1の文字列を、所定の規則で複数の部分文字列に分割する分割ステップと、
    所定のハッシュ関数を用いて、前記複数の部分文字列それぞれについてハッシュ値を算出し、前記算出された複数のハッシュ値の列である第1のハッシュ値列を生成するハッシュ値列生成ステップと、
    前記第1のハッシュ値列と第2のハッシュ値列とが類似するか否かを判定する判定ステップと、
    を有し、
    前記第2のハッシュ値列は、前記所定の規則及び前記所定のハッシュ関数を用いて、前記ユーザの識別子に対応づけられた第2の文字列から生成されたハッシュ値列である、制御方法。
  8. 請求項7に記載の制御方法が有する各ステップをコンピュータに実行させるプログラム。
JP2016067289A 2016-03-30 2016-03-30 情報処理装置、制御方法、及びプログラム Pending JP2017182377A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016067289A JP2017182377A (ja) 2016-03-30 2016-03-30 情報処理装置、制御方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016067289A JP2017182377A (ja) 2016-03-30 2016-03-30 情報処理装置、制御方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2017182377A true JP2017182377A (ja) 2017-10-05

Family

ID=60007466

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016067289A Pending JP2017182377A (ja) 2016-03-30 2016-03-30 情報処理装置、制御方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP2017182377A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116055067A (zh) * 2023-04-01 2023-05-02 北京江民新科技术有限公司 一种弱口令检测的方法、装置、电子设备及介质
CN116467754A (zh) * 2023-06-20 2023-07-21 深圳奥联信息安全技术有限公司 一种密码安全存储系统、方法、计算机设备及存储介质
WO2024185059A1 (ja) * 2023-03-08 2024-09-12 日本電気株式会社 認証サーバ、認証システム、認証方法およびプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024185059A1 (ja) * 2023-03-08 2024-09-12 日本電気株式会社 認証サーバ、認証システム、認証方法およびプログラム
CN116055067A (zh) * 2023-04-01 2023-05-02 北京江民新科技术有限公司 一种弱口令检测的方法、装置、电子设备及介质
CN116055067B (zh) * 2023-04-01 2023-06-30 北京江民新科技术有限公司 一种弱口令检测的方法、装置、电子设备及介质
CN116467754A (zh) * 2023-06-20 2023-07-21 深圳奥联信息安全技术有限公司 一种密码安全存储系统、方法、计算机设备及存储介质
CN116467754B (zh) * 2023-06-20 2023-10-10 深圳奥联信息安全技术有限公司 一种密码安全存储系统、方法、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
JP5442161B2 (ja) 検索システム、検索システムの検索方法、情報処理装置、検索プログラム、対応キーワード管理装置および対応キーワード管理プログラム
CN109241484B (zh) 一种基于加密技术的网页数据的发送方法及设备
EP3168771A1 (en) Poly-logarythmic range queries on encrypted data
CN108090351B (zh) 用于处理请求消息的方法和装置
CN104866985B (zh) 快递单号识别方法、装置及系统
AU2021204543B2 (en) Digital signature method, signature information verification method, related apparatus and electronic device
JP5755823B1 (ja) 類似度算出システム、類似度算出方法およびプログラム
CN111400755B (zh) 一种基于指数机制的个性化差分隐私保护方法及系统
TWI670620B (zh) 校驗方法及裝置
US20220263663A1 (en) Digital Signature Method, Signature Information Authentication Method, And Relevant Electronic Devices
CN113098691A (zh) 数字签名方法、签名信息的验证方法、相关装置及电子设备
JP2017182377A (ja) 情報処理装置、制御方法、及びプログラム
US12120215B2 (en) System for restrictive discovery of private data feature intersection
CN111859435A (zh) 一种数据安全处理方法及装置
CN109905366B (zh) 终端设备安全验证方法、装置、可读存储介质及终端设备
CN116055067B (zh) 一种弱口令检测的方法、装置、电子设备及介质
CN105488105A (zh) 信息提取模板的建立方法、知识数据的处理方法和装置
US10013539B1 (en) Rapid device identification among multiple users
CN112328733B (zh) 基于MinHash函数的中文多关键字模糊排序可搜索加密方法
JP2008005371A (ja) 日本語パスワード変換装置及びその方法
KR102123435B1 (ko) 멀티 클라이언트 환경에서 동치 질의를 지원하는 암호화 방법 및 이를 이용한 장치
Zhao et al. Towards efficient Secure Boolean Range Query over encrypted spatial data
US10496377B1 (en) Method and system generating string based random permutation
KR102123440B1 (ko) 멀티 클라이언트 환경에서 범위 질의를 지원하는 암호화 방법 및 이를 이용한 장치
CN117390687B (zh) 敏感数据查询方法、装置、存储介质和电子设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200128

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200311

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200804