技術紹介

「文字位置」を暗号文に
埋め込むという発想が、
秘匿検索をさらに進化させた。

「文字位置」を暗号文に埋め込むという発想が、秘匿検索をさらに進化させた。

2013年に発表した「秘匿検索基盤ソフトウェア」は完全一致検索に対応していました。電話帳のような、氏名、住所、電話番号などが決まったフォーマットでデータベースに格納される場合、各項目のデータと検索キーワードを暗号化することで、秘匿検索に容易に対応できました。しかし一般的な文書データ、例えば病院のカルテのような自由書式で書かれたデータでは、検索キーワードを事前に定め、文書から抽出し暗号化しなければならず、適切なキーワードの選定に手間がかかることや事前に決めたキーワードでしか検索できないことなどの課題がありました。

当社では登録データ、検索キーワードを暗号化する際、特殊な「文字位置」を暗号文に埋め込むことで、登録データと検索キーワードをひと文字ずつずらしながら照合する独自の手法を開発。事前のキーワード抽出が必要ない部分一致検索を実現しました。秘匿部分一致検索としては、従来、登録データや検索キーワードを文字単位で暗号化し、文字単位で照合する方式が一般的でしたが、情報が漏れやすいという課題があります。当社の方式は文字単位の照合を不可にしつつ、文字位置の情報を活用して、文字列単位の照合を実現しており、高い安全性を確保しています。

単純な部分一致検索は…

今回の部分一致検索は…

研究を積み重ねてきた「関数型暗号」をベースに開発。

関数型暗号イメージ

今回開発した技術は当社が研究を続けてきた「関数型暗号」という公開鍵暗号技術がベースとなっています。データ登録に公開鍵(暗号化)、データ閲覧に秘密鍵(復号)を用いる「関数型暗号」は、同じ文書でも暗号化するたびに毎回異なった暗号文になるため解読が困難であるなど、安全性の高さが特徴です。さらに例えば秘密鍵に、所属(人事部、経理部)や役職(部長、課長)といった個人の所属や役職などの属性情報を含めることができます。また、暗号文の生成時に条件式を使って復号できる人を指定できます。例えば「部長 OR (人事部 AND 課長)」のように、論理式を使って属性情報を組み合わせることで、様々なグループ宛の暗号文を作ることができます。このように、関数型暗号は暗号化とアクセス権限を同時に実現できます。

ひとつしかない秘密鍵でデータ登録・データ閲覧の両方を行う方式に比べ、公開鍵で誰でもが容易にデータを登録でき、閲覧は秘密鍵で厳格に制限できるなど、「関数型暗号」は実用面でも優れています。当社の秘匿検索技術はこの「関数型暗号」の特徴を引き継ぎ、検索できるデータを組織・人物レベルでアクセス制限可能です。これにより権限がない人には、たとえ検索キーワードが登録データに含まれていたとしても、検索結果を閲覧することができないようにし、安全性を高めました。