(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-04
(54)【発明の名称】人工知能量子耐性暗号化方法及び装置
(51)【国際特許分類】
G09C 1/00 20060101AFI20240927BHJP
G06N 10/60 20220101ALI20240927BHJP
【FI】
G09C1/00 610Z
G06N10/60
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024518388
(86)(22)【出願日】2021-12-17
(85)【翻訳文提出日】2024-04-30
(86)【国際出願番号】 KR2021019347
(87)【国際公開番号】W WO2023048344
(87)【国際公開日】2023-03-30
(31)【優先権主張番号】10-2021-0126203
(32)【優先日】2021-09-24
(33)【優先権主張国・地域又は機関】KR
(81)【指定国・地域】
(71)【出願人】
【識別番号】512117199
【氏名又は名称】アンラブ,インコーポレイテッド
(74)【代理人】
【識別番号】100121382
【氏名又は名称】山下 託嗣
(72)【発明者】
【氏名】キム,クンジン
(72)【発明者】
【氏名】キム,キョンミン
(72)【発明者】
【氏名】パク,ソンジュ
(57)【要約】
装置によって行われる暗号化キーに基づいて平文データを暗号化して第1暗号文データを生成する段階と、周期的に抽出されるノイズベクトルを ディープラーニング基盤の生成モデルに適用して第1シグネチャコード及び第2シグネチャコードをそれぞれ生成する段階と、第1暗号文データに第1シグネチャコード及び第2シグネチャコードを適用して第2暗号文データを生成する段階とを含み、第1シグネチャコードの生成段階は、既に設定された換算式によって第1シグネチャコードの生成に必要な文字の種類及び交換位置を決定し、第1暗号文データ中で交換位置に存在する既存の暗号化文字及び前記文字を既に設定された方式で演算した第1文字を前記第1シグネチャコードとして生成し、前記第2シグネチャコードの生成段階は、前記換算式によって前記第2シグネチャコードとして用いられる第2文字の種類及び挿入位置を決定し、前記第2暗号文データの生成段階は、前記第1暗号文データ中の前記交換位置に存在する既存の暗号化文字を前記第1文字に交換し、前記第1暗号文データ中の前記挿入位置に前記第2文字を挿入して生成できる。
【特許請求の範囲】
【請求項1】
装置によって行われるデータ暗号化方法において、
暗号化キーに基づいて平文データを暗号化して第1暗号文データを生成する段階と、
周期的に抽出されるノイズベクトルを人工知能基盤の生成モデルに適用して第1シグネチャコード及び第2シグネチャコードをそれぞれ生成する段階と、
第1暗号文データに第1シグネチャコード及び第2シグネチャコードを適用して第2暗号文データを生成する段階と、を含み、
第1シグネチャコードの生成段階は、既に設定された換算式によって第1シグネチャコードの生成に必要な文字の種類及び交換位置を決定し、第1暗号文データ中で交換位置に存在する既存の暗号化文字及び前記文字を既に設定された方式で演算した第1文字を前記第1シグネチャコードとして生成し、
前記第2シグネチャコードの生成段階は、前記換算式によって前記第2シグネチャコードとして用いられる第2文字の種類及び挿入位置を決定し、
前記第2暗号文データの生成段階は、前記第1暗号文データ中の前記交換位置に存在する既存の暗号化文字を前記第1文字に交換し、前記第1暗号文データ中の前記挿入位置に前記第2文字を挿入して生成することを特徴とする人工知能量子耐性暗号を用いたデータ暗号化方法。
【請求項2】
前記第1シグネチャコード及び第2シグネチャコード生成段階は、
m個の(但し、mは自然数)平文データを暗号化する度に前記ノイズベクトルを周期的に抽出する段階と、
前記人工知能基盤の生成モデルに基づいて前記周期的に抽出されたノイズベクトルをエンコードして複数の第1入力値及び第2入力値を生成する段階と、
前記換算式に基づいて前記第1入力値を前記第1シグネチャコードに変換する段階と、
前記換算式に基づいて前記第2入力値を前記第2シグネチャコードに変換する段階と、
を含むことを特徴とする請求項1に記載の人工知能量子耐性暗号を用いたデータ暗号化方法。
【請求項3】
前記換算式は、既に設定されたシグネチャコード変換テーブルを含み、
前記第1シグネチャコード変換段階は、
前記シグネチャコード変換テーブルに基づいて前記第1入力値に相応する文字の種類及び前記第1暗号文データ中における前記文字の交換位置を決定する段階と、
前記第1暗号文データ中の暗号化文字のうち決定された交換位置に存在する既存の暗号化文字を確認する段階と、
確認された既存の暗号化文字及び決定された文字を既に設定された方式で演算した第1文字を生成する段階と、を含み、
前記第2暗号文データ生成段階は、
生成された第1文字を前記第1暗号文データ中の前記交換位置に交換して前記第2暗号文データを生成することを特徴とする請求項2に記載の人工知能量子耐性暗号を用いたデータ暗号化方法。
【請求項4】
前記交換位置決定段階は、
前記ノイズベクトルを前記第1暗号文データの第1位置に添付する段階と、
前記第1入力値及び前記第1暗号文データの長さ情報に基づいて前記交換位置を決定する段階と、
を含むことを特徴とする請求項3に記載の人工知能量子耐性暗号を用いたデータ暗号化方法。
【請求項5】
前記既に設定された方式の演算は、
前記シグネチャコード変換テーブル内で決定された文字の順番及び前記第1暗号文データ中における前記交換位置に存在する前記既存の暗号化文字の順番に対して行われる四則演算のうちの何れか1つの演算を含み、
前記第1文字は、既存の暗号化文字の順番及び決定された文字の順番に対して何れか1つの演算が行われた結果による順番を有する文字であることを特徴とする請求項3に記載の人工知能量子耐性暗号を用いたデータ暗号化方法。
【請求項6】
前記換算式は、既に設定されたシグネチャコード変換テーブルを含み、
前記第2シグネチャコード変換段階は、
前記シグネチャコード変換テーブルに基づいて前記第2入力値に相応する第2文字及び前記第1暗号化データ中で前記第2文字の挿入位置を決定し、
前記第2暗号文データ生成段階は、
前記決定された第2文字を前記第1暗号文データ中の前記決定された挿入位置に挿入することを特徴とする請求項2に記載の人工知能量子耐性暗号を用いたデータ暗号化方法。
【請求項7】
前記換算式は、既に設定されたシグネチャコード変換テーブルを含み、
前記シグネチャコード変換テーブルに基づいて前記第2暗号文データを周期的に更新する段階を更に含み、
前記第2暗号文データを更新する段階は、
前記シグネチャコード変化テーブル内の文字配列を周期的に変更し、
前記文字配列が変更された前記シグネチャコード変換テーブルに基づいて前記第2暗号文データ中の第1シグネチャコード又は第2シグネチャコードを変更して前記第2暗号文データを更新することを特徴とする請求項1に記載の人工知能量子耐性暗号を用いたデータ暗号化方法。
【請求項8】
前記人工知能基盤の生成モデルは、
前記ノイズベクトルの分布情報が周期的に変更されて再学習され、
前記第2暗号文データは、
再学習された人工知能基盤の生成モデルに基づいて周期的に更新されることを特徴とする請求項1に記載の人工知能量子耐性暗号を用いたデータ暗号化方法。
【請求項9】
メモリと、
平文データを取得する取得部と、
暗号化キーに基づいて平文データを暗号化して第1暗号文データを生成し、周期的に抽出されるノイズベクトルを人工知能基盤の生成モデルに適用して第1シグネチャコード及び第2シグネチャコードをそれぞれ生成し、第1暗号文データに第1シグネチャコード及び第2シグネチャコードを適用して第2暗号文データを生成するプロセッサと、を含み、
前記プロセッサは、
前記第1シグネチャコードを生成する際に、既に設定された換算式によって第1シグネチャコードの生成に必要な文字の種類及び交換位置を決定し、第1暗号文データ中で交換位置に存在する既存の暗号化文字及び前記文字を既に設定された方式で演算した第1文字を前記第1シグネチャコードとして生成し、
前記第2シグネチャコードを生成する際に、前記換算式によって前記第2シグネチャコードとして用いられる第2文字の種類及び挿入位置を決定し、
前記第2暗号文データを生成する際に、前記第1暗号文データ中の前記交換位置に存在する既存の暗号化文字を前記第1文字に交換し、前記第1暗号文データ中の前記挿入位置に前記第2文字を挿入して生成することを特徴とする人工知能量子耐性暗号を用いたデータ暗号化装置。
【請求項10】
請求項1~請求項8の何れか1項に記載の人工知能量子耐性暗号を用いたデータ暗号化方法をコンピュータに実行させるコンピュータ読み取り可能な記録媒体に格納されたコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、人工知能量子耐性暗号を用いたデータ暗号化方法及び装置に関する。
【背景技術】
【0002】
近年、情報通信技術の急速な発展と爆発的な成長に伴い、データの量が増加し、複雑になるにつれ、与えられた時間内にデータを効率的に分析するための解決策として提示されたのが「ビッグデータ」である。しかし、大容量のデータを処理するビッグデータ環境では、個人情報が流出し、個人のプライバシーと人権が侵害されるリスクが存在する。それだけでなく、数多くの情報を交換して管理する企業システム又は企業間の取引では、顧客の個人情報だけでなく、企業内の営業秘密が流出するリスクも存在する。これを防止するために、多くの企業が個人情報又は企業内の営業秘密に関連する内容を含むデータを暗号化し、暗号文データを生成して使用している。
【0003】
このような暗号化方法に関連して、通常用いる方式としては、暗号化に関する内容を暗号文データ中の接頭部分又は接尾部分に含めて用いるPrefix方式とPostfix方式がある。
【0004】
しかし、上述した暗号化方式の場合、暗号化過程で通常行われる方式のため、暗号文データ中で第三者によっても位置に基づく推論が可能であり、特に反復的な暗号化過程で現れる規則性によって暗号化に関する情報が流出し、窮極として個人と企業が保護しようとした個人情報と企業の営業秘密が流出したりもする。
【0005】
そのため、既存のPrefix方式とPostfix方式から抜け出し、暗号化に関する情報を暗号文データ中に含ませ、同時に暗号化過程で現れる規則性を除去して、第3者の推論を不可能にする方策が必要である。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明は上記事情に鑑みてなされたものであって、その目的は、人工知能量子耐性暗号を用いたデータ暗号化方法及び装置を提供することにある。
【0007】
但し、本発明が解決しようとする課題は、上述した課題に限定されず、更に他の課題が存在し得る。
【課題を解決するための手段】
【0008】
上述した課題を解決するための本発明に係る装置によって行われるデータ暗号化方法において、暗号化キーに基づいて平文データを暗号化して第1暗号文データを生成する段階と、周期的に抽出されるノイズベクトルを人工知能基盤の生成モデルに適用して第1シグネチャコード及び第2シグネチャコードをそれぞれ生成する段階と、第1暗号文データに第1シグネチャコード及び第2シグネチャコードを適用して第2暗号文データを生成する段階とを含み、第1シグネチャコードの生成段階は、既に設定された換算式によって第1シグネチャコードの生成に必要な文字の種類及び交換位置を決定し、第1暗号文データ中で交換位置に存在する既存の暗号化文字及び前記文字を既に設定された方式で演算した第1文字を前記第1シグネチャコードとして生成し、前記第2シグネチャコードの生成段階は、前記換算式によって前記第2シグネチャコードとして用いられる第2文字の種類及び挿入位置を決定し、前記第2暗号文データの生成段階は、前記第1暗号文データ中の前記交換位置に存在する前記既存の暗号化文字を前記第1文字に交換し、前記第1暗号文データ中の前記挿入位置に前記第2文字を挿入して生成することを特徴とすることができる。
【0009】
また、前記第1シグネチャコード及び第2シグネチャコード生成段階は、m(但し、mは自然数)個の平文データを暗号化する度に前記ノイズベクトルを周期的に抽出する段階と、前記人工知能基盤の生成モデルに基づいて前記周期的に抽出されたノイズベクトルをエンコードして複数の第1入力値及び第2入力値を生成する段階と、前記換算式に基づいて前記第1入力値を前記第1シグネチャコードに変換する段階と、前記換算式に基づいて前記第2入力値を第2シグネチャコードに変換する段階とを含むことができる。
【0010】
更に、前記換算式は、既に設定されたシグネチャコード変換テーブルを含み、前記第1シグネチャコード変換段階は、前記シグネチャコード変換テーブルに基づいて前記第1入力値に相応する文字の種類及び前記第1暗号文データ中における前記文字の交換位置を決定する段階と、前記第1暗号文データ中の暗号化文字のうち決定された交換位置に存在する既存の暗号化文字を確認する段階と、確認された既存の暗号化文字及び決定された文字を既に設定された方式で演算した第1文字を生成する段階とを含み、前記第2暗号文データ生成段階は、生成された第1文字を前記第1暗号文データ中の前記交換位置に交換して前記第2暗号文データを生成できる。
【0011】
また、前記交換位置決定段階は、前記ノイズベクトルを前記第1暗号文データの第1位置に添付する段階と、前記第1入力値及び前記第1暗号文データの長さ情報に基づいて前記交換位置を決定する段階とを含むことができる。
【0012】
更に、既に設定された方式の演算は、前記シグネチャコード変換テーブル内で決定された文字の順番及び前記第1暗号文データ中における前記交換位置に存在する前記既存の暗号化文字の順番に対して行われる四則演算のうちの何れか1つの演算を含み、前記第1文字は、前記既存の暗号化文字の順番及び決定された文字の順番に対して前記何れか1つの演算が行われた結果による順番を有する文字であることを特徴とすることができる。
【0013】
また、前記換算式は、既に設定されたシグネチャコード変換テーブルを含み、前記第2シグネチャコード変換段階は、前記シグネチャコード変換テーブルに基づいて前記第2入力値に相応する第2文字及び前記第1暗号化データ中で前記第2文字の挿入位置を決定し、前記第2暗号文データ生成段階は、決定された第2文字を前記第1暗号文データ中の決定された挿入位置に挿入できる。
【0014】
更に、前記換算式は、既に設定されたシグネチャコード変換テーブルを含み、前記シグネチャコード変換テーブルに基づいて前記第2暗号文データを周期的に更新する段階を更に含み、前記第2暗号文データを更新する段階は、前記シグネチャコード変化テーブル内の文字配列を周期的に変更し、前記文字配列が変更された前記シグネチャコード変換テーブルに基づいて前記第2暗号文データ中の第1シグネチャコード又は第2シグネチャコードを変更して第2暗号文データを更新できる。
【0015】
また、前記人工知能基盤の生成モデルは、前記ノイズベクトルの分布情報が周期的に変更されて再学習され、前記第2暗号文データは、再学習された人工知能基盤の生成モデルに基づいて周期的に更新できる。
【0016】
更に、上述した課題を解決するための本発明に係る装置は、メモリと、平文データを取得する取得部と、暗号化キーに基づいて平文データを暗号化して第1暗号文データを生成し、周期的に抽出されるノイズベクトルを人工知能基盤の生成モデルに適用して第1シグネチャコード及び第2シグネチャコードをそれぞれ生成し、第1暗号文データに第1シグネチャコード及び第2シグネチャコードを適用して第2暗号文データを生成するプロセッサとを含み、前記プロセッサは、第1シグネチャコードを生成する際に、既に設定された換算式によって第1シグネチャコードの生成に必要な文字の種類及び交換位置を決定し、第1暗号文データ中で交換位置に存在する既存の暗号化文字及び前記文字を既に設定された方式で演算した第1文字を前記第1シグネチャコードとして生成し、前記第2シグネチャコードを生成する際に、前記換算式によって前記第2シグネチャコードとして用いられる第2文字の種類及び挿入位置を決定し、前記第2暗号文データを生成する際に、前記1暗号文データ中の前記交換位置に存在する前記既存の暗号化文字を前記第1文字に交換し、前記1暗号文データ中の前記挿入位置に前記第2文字を挿入して生成することを特徴とすることができる。
【0017】
上述した課題を解決するための本発明の他の側面に係るコンピュータプログラムは、人工知能基盤の量子耐性暗号を用いたデータ暗号化方法をハードウェアであるコンピュータに実行させ、コンピュータ読み取り可能な記録媒体に格納できる。
【0018】
本発明のその他の具体的な事項は、詳細な説明及び図面に含まれている。
【発明の効果】
【0019】
上述した本発明によると、暗号文データ中に含まれている暗号化情報に関するデータを第3者が推論又は認知できないようにする。
【0020】
また、人工知能基盤の暗号化過程を通じて暗号化過程で現れる規則性を除去し、暗号文データを周期的に更新することによって、暗号文データのセキュリティを強化できる。
【0021】
本発明の効果は、以上で言及した効果に限定されず、言及していない更に他の効果は、以下の記載から通常の技術者が明確に理解できる。
【図面の簡単な説明】
【0022】
【
図1a】本発明に係る人工知能基盤の量子耐性暗号を用いたデータ暗号化装置の概略的な構成図である。
【
図1b】本発明に係る人工知能基盤の暗号化コード生成モデルを説明する例示図である。
【
図2】本発明に係る人工知能基盤の量子耐性暗号を用いたデータ暗号化方法を概略的に示す手順図である。
【
図3】本発明に係る個人情報を含む平文データを、暗号化キーを用いて第1暗号文に暗号化することを示す例示図である。
【
図4】本発明に係る第1シグネチャコード及び第2シグネチャコード生成方法に対する概略的な手順図である。
【
図5】本発明に係る周期的にノイズベクトルを抽出することを示す例示図である。
【
図6a】本発明に係る人工知能基盤の生成モデルを説明する例示図である。
【
図6b】本発明に係る人工知能基盤の生成モデルを用いてノイズベクトルをエンコードすることを示す例示図である。
【
図6c】本発明に係る人工知能基盤の生成モデルを用いてノイズベクトルをエンコードすることを示す例示図である。
【
図7a】本発明に係るノイズベクトルをエンコードして第1入力値及び第2入力値を生成することを示す例示図である。
【
図7b】本発明に係るノイズベクトルをエンコードして第1入力値及び第2入力値を生成することを示す例示図である。
【
図8a】本発明に係る第1シグネチャコード及び第2シグネチャコードを構成するそれぞれの文字を生成する方法を示す例示図である。
【
図8b】本発明に係る第1シグネチャコード及び第2シグネチャコードを構成するそれぞれの文字を生成する方法を示す例示図である。
【
図9】本発明に係る第2暗号文データを生成する方法を概略的に示す手順図である。
【
図10a】本発明に係る第1シグネチャコードを構成するそれぞれの文字に対する第1暗号文データ中の交換位置をそれぞれ決定することを示す例示図である。
【
図10b】本発明に係る文字種類コード表を示す図である。
【
図10c】本発明に係る第2シグネチャコードを構成するそれぞれの文字に対する第1暗号文データ中の挿入位置をそれぞれ決定することを示す例示図である。
【
図11】本発明に係るノイズ値と第1シグネチャコード及び第2シグネチャコードに基づいて第2暗号文データを生成することを示す例示図である。
【
図12】本発明に係る第1暗号文データの長さ情報と、シグネチャコード識別キーを更に用いて第2暗号文データを生成する例示図である。
【
図13】本発明に係る第2暗号化データを復号化する方法を概略的に示す手順図である。
【
図14】本発明に係るシグネチャコード変換テーブルの調整を通じた第2暗号文データの更新方法を示す例示図である。
【発明を実施するための形態】
【0023】
本発明の利点及び特徴、そしてそれらを達成する方法は、添付の図面と共に詳細に後述されている実施例を参照すると明確になる。しかし、本発明は、以下で開示される実施例に制限されるものではなく、互いに異なる多様な形態で実現できる。但し、本実施例は本発明の開示を完全なものにし、本発明の属する技術分野における通常の技術者に本発明の範囲を完全に理解させるために提供されるものであり、本発明は請求項の範疇により定義されるに過ぎない。
【0024】
本明細書で用いられた用語は、実施例を説明するためのものであり、本発明を制限しようとするものではない。本明細書において、単数型は特に言及しない限り複数型も含む。明細書で用いられる「含む(comprises)」及び/又は「含んでいる(comprising)」は、言及された構成要素以外に1つ以上の他の構成要素の存在又は追加を排除しない。明細書全体に亘って同一の図面符号は同一の構成要素を示し、「及び/又は」は言及された構成要素のそれぞれ及び1つ以上の全ての組み合わせを含む。たとえ、「第1」、「第2」などが多様な構成要素を叙述するために用いられていても、これらの構成要素は、これらの用語により制限されないのは当然である。これらの用語は、単に1つの構成要素を他の構成要素と区別するために用いる。従って、以下で言及される第1構成要素は、本発明の技術的思想内で第2構成要素でもあり得るのは言うまでもない。
【0025】
他の定義がなければ、本明細書で用いられる全ての用語(技術及び科学的用語を含む)は、本発明の属する技術分野における通常の技術者が共通して理解できる意味として用いられる。また、一般に用いられる辞典に定義されている用語は、明白に特に定義されていない限り、理想的に又は過度に解釈されない。
【0026】
従来、多くの企業やセキュリティ会社では暗号化方式として、個人情報を含む平文データを暗号化して暗号文データを生成した後、暗号文データの接頭又は接尾部分に暗号化Contextに関する情報(暗号化キー、暗号化アルゴリズムなど)を含ませるPrefix又はPostfix方式を活用した。
【0027】
しかし、このような暗号化方式は、近年は暗号化のために通常用いられるため、暗号化過程で参加又は介入していないにも拘らず、第3者が暗号文又は暗号データの接頭又は接尾部分に暗号化に関する情報が含まれていると簡単に推論できる。即ち、暗号化方式に関連するPrefix方式、そしてPostfix方式は、現在としてはセキュリティ上の欠陥を有している。
【0028】
本発明は、このような問題を解決すべく、暗号化Context情報を暗号文データの接頭又は接尾ではなく内部に挿入する。これと共に、暗号化Context情報を含む文字又はコードを生成する上で、第3者が規則性を推論できないように人工知能基盤の生成モデルを活用する。以下では、添付の図面を参照して、これに関する本発明の実施例について詳細に説明する。
【0029】
図1aは、本発明に係る人工知能基盤の量子耐性暗号を用いたデータ暗号化装置10の概略的な構成図であり、
図1bは、本発明に係る人工知能基盤の暗号化コード生成モデルを説明する例示図である。
【0030】
図1aを参照すると、装置10は、メモリ13、取得部12、プロセッサ11を含む。但し、幾つかの実施例において、装置10は、
図1aに示す構成要素よりも少数の構成要素や多数の構成要素を含むこともできる。ここで、装置10はコンピューティング装置であって、サーバ装置に該当し得る。
【0031】
まず、取得部12は、ユーザから個人情報を含む平文データの入力を受け取ることができる。または、取得部12は、第1入力値及び第2入力値を生成するための任意のノイズベクトル(Noise Vector)をユーザから受け取るか、事前に設定されたノイズベクトルネットワーク内で任意のノイズベクトルを取得できる。
【0032】
一方、プロセッサ11は、平文データを暗号化キーに基づいて暗号化して第1暗号文データを生成し、人工知能基盤の生成モデルに基づいて任意のノイズベクトルをエンコードして第1入力値及び第2入力値を生成できる。
【0033】
その後、プロセッサ11は、既に設定されたシグネチャコード変換テーブルに基づいて前記第1入力値を第1シグネチャコードに変換し、第2入力値を第2シグネチャコードに変換できる。
【0034】
そして、プロセッサ11は、前記第1シグネチャコード及び前記第2シグネチャコードを前記第1暗号文データに交換又は挿入して第2暗号文データを生成できる。
【0035】
メモリ13は、人工知能基盤の生成モデルに関するアルゴリズム、暗号化過程で用いられる暗号化キー、暗号化アルゴリズムなどを格納できる。
【0036】
ここで、第1シグネチャコード及び第2シグネチャコードを含むシグネチャコードは、本発明の人工知能基盤の生成モデルを通じて生成される独自方式の暗号コードであり得る。
【0037】
以下、データ暗号化を行う主体は、上述したユーザによって運営される人工知能基盤の生成モデルを用いた装置10であると理解できるが、これに制限されるものではない。一方、装置10は、データ暗号化を行うユーザが運営するサーバコンピュータと理解できる。しかし、これに制限されるものではない。
【0038】
以下、プロセッサ11の動作は、装置10の動作と同一であると見られる。
【0039】
図2は、本発明に係る人工知能基盤の暗号化コード生成モデルを用いたデータ暗号化方法を概略的に示す手順図である。
【0040】
まず、
図2を参照すると、プロセッサ11は、入力された平文データを暗号化キーに基づいて暗号化し、第1暗号文データを生成できる(S110)。
【0041】
具体的に、プロセッサ11は、ユーザから個人情報を含む平文データを受け取ると、事前設定によって暗号化キーを用いて、又は一方向又は双方向暗号アルゴリズムを適用して暗号化を行える。
【0042】
例えば、暗号アルゴリズムとして、SHA512、AES256、SEED128、ARIA256などが利用され得るが、これに制限されるものではなく、本発明の属する技術分野で周知になっている任意の暗号アルゴリズムを利用できる。このとき、第1暗号文には、平文以外に暗号化された平文に関するスペック情報、例えば暗号化アルゴリズム方式、key indexなどを含めることができる。
【0043】
図3は、本発明に係る個人情報を含む平文データを、暗号化キーを用いて第1暗号文に暗号化することを示す例示図である。
【0044】
図3を参照すると、特定人の氏名に関する個人情報を含む平文データの「ホン・ギルドン」がユーザから入力されると、プロセッサ11は、所定の暗号アルゴリズムに従って平文データを暗号化し、第1暗号文データである「B2wDfsDfADSFBf4A4SF6DG77SsAdf8kjdGWdg」を生成する。
【0045】
一方、更に
図2を参照すると、プロセッサ11は、第1暗号文データを生成した後、周期的に抽出されるノイズベクトルを人工知能基盤の生成モデルに適用して第1シグネチャコード及び第2シグネチャコードをそれぞれ生成できる(S120)。
【0046】
ここで、プロセッサ11は、前記第1シグネチャコード及び第2シグネチャコードを生成するとき、同一周期に属する平文データの場合、同一のノイズベクトルによってそれぞれの第1シグネチャコード及び第2シグネチャコードを生成できる。
【0047】
具体的に、プロセッサ11は、既に設定された換算式によって第1シグネチャコードの生成に必要な文字の種類及び交換位置を決定し、第1暗号文データ中で交換位置に存在する既存の暗号化文字及び前記文字を既に設定された方式で演算した第1文字を前記第1シグネチャコードとして生成できる。
【0048】
また、プロセッサ11は、前記換算式によって前記第2シグネチャコードとして用いられる第2文字の種類及び挿入位置を決定できる。
【0049】
より詳しくは、プロセッサ11は、前記装置10が設けられているシステム上でノイズベクトルを抽出できる。しかし、これに制限されるものではなく、ユーザから取得部12を通じて任意のノイズベクトルに関する情報を受け取ることもできる。
【0050】
一方、本発明の一実施例として、ノイズベクトルはコンピュータ、即ちハードウェアのシステム情報に基づいて生成される乱数を基に抽出できる。例えば、ハードウェアの温度、時刻などに基づいて生成される乱数を上述したノイズベクトルとして活用することもできる。このために、メモリ13には、任意の乱数を生成するプログラムを格納できる。
【0051】
抽出されたノイズベクトルは、シグネチャコードを生成するのに利用され得る。具体的には、プロセッサ11は、人工知能基盤の生成モデルに前記ノイズベクトルを入力して、第1入力値及び第2入力値を生成し、前記第1入力値及び前記第2入力値をそれぞれ第1シグネチャコード及び第2シグネチャコードに変換できる。
【0052】
以下では、
図4乃至
図8bを参照して、S120段階の第1シグネチャコード及び第2シグネチャコードの生成方法について詳細に説明する。
【0053】
図4は、本発明に係る第1シグネチャコード及び第2シグネチャコードの生成方法に対する概略的な手順図であり、
図5は、本発明に係る周期的にノイズベクトルを抽出することを示す例示図であり、
図6a及び
図6bは、本発明に係る人工知能基盤の生成モデルを用いてノイズベクトルをエンコードすることを示す例示図であり、
図7a及び
図7bは、本発明に係るノイズベクトルをエンコードして第1入力値及び第2入力値を生成することを示す例示図であり、
図8a及び
図8bは、本発明に係る第1シグネチャコード及び第2シグネチャコードを構成するそれぞれの文字を生成する方法を示す例示図である。
【0054】
まず、
図4を参照すると、m個の(但し、mは自然数)平文データを暗号化する度に前記ノイズベクトルを周期的に抽出できる(S121)。
【0055】
図5を参照すると、プロセッサ11は、mが2であると仮定したとき、最初に入力された平文データ1と2番目に入力された平文データ2には、同一のノイズベクトルが抽出されてシグネチャコードを生成できる。具体的に、プロセッサ11は、平文データ1が入力されたとき、ノイズベクトル1を抽出してシグネチャコードを生成した後、ノイズベクトル1に関する情報をメモリ13に格納できる。そして、プロセッサ11は、平文データ2が入力された際には、新たなノイズベクトルを抽出せず、平文データ1の第1シグネチャコード又は第2シグネチャコードの生成時に用いられたノイズベクトル1に関する情報を抽出し、これに基づいて第1シグネチャコード又は第2シグネチャコードを生成できる。
【0056】
これと同様、3番目に入力された平文データ3と4番目に入力された平文データ4は、同一のノイズベクトル2が、5番目に入力された平文データ5と6番目に入力された平文データ6には、同一のノイズベクトル3が第1シグネチャコード又は第2シグネチャコードを生成するために利用され得る。即ち、同一周期に属する平文データには、同一のノイズベクトルが利用され得る。
【0057】
更に
図4を参照すると、プロセッサ11は、人工知能基盤の生成モデルに基づいて前記周期的に抽出されたノイズベクトルをエンコードして複数の第1入力値及び第2入力値を生成できる(S122)。
【0058】
具体的に、ノイズベクトルは、人工知能基盤の生成モデルを用いてエンコードされることができる。例えば、ノイズベクトルをワンホットエンコーディング(One-Hot Encoding)を通じて二進ベクトルに変換できるが、これに制限されるものではない。一方、上述したノイズベクトルのエンコード過程は、人工知能基盤の生成モデル(Black Box)を用いるので、ノイズベクトルをエンコードする過程で内在している規則性を第3者が推論又は認知できないようにする効果を発揮する。
【0059】
図6aを参照すると、本発明に係る量子耐性暗号化源泉技術(Dynamic Signature)は、位置選定方式を文字の種類と独立して活用できる神経網アウトプットを用いて最大限に複雑(Complex)な平面を形成できる。
【0060】
図6bを参照すると、プロセッサ11は、第1人工知能基盤の生成モデル(Black Box)に基づいてワンホットエンコーディングを通じて取得した任意のノイズベクトルを4つの二進ベクトルである[0100000000]、[0010000000]、[0000000010]、[0000010000]と生成できる。図面に明確に示されてはいないが、4つの二進ベクトルを生成するために、プロセッサ11は、4つの任意のベクトルを抽出できる。
【0061】
また、
図6cを参照すると、プロセッサ11は、第2人工知能基盤の生成モデル(Black Box)に基づいてワンホットエンコーディングを通じて取得した任意のノイズベクトルを4つの二進ベクトルである[0000010000]、[0100000000]、[0000000010]、[0000000100]と生成できる。図面に明確に示されてはいないが、4つの二進ベクトルを生成するために、プロセッサ11は、4つの任意のベクトルを抽出できる。
【0062】
一方、プロセッサ11は、ノイズベクトルをエンコードした後は、第1入力値及び第2入力値を生成できる。
【0063】
例えば、
図7aを参照すると、プロセッサ11は、人工知能基盤の生成モデルに基づいてノイズベクトルを4つのワンホットベクトルにエンコードした後、前記ワンホットベクトルに基づいて第1入力値を生成できる。
図4を参照すると、プロセッサ11は、それぞれのワンホットベクトルをそれぞれの数字に変換し、変換された数字で構成された第1入力値を生成できる。
図4を参照すると、4つの二進ベクトルである[0100000000]、[0010000000]、[0000000010]、[0000010000]に基づいて、「1285」の第1入力値を生成できる。
【0064】
このとき、プロセッサ11は、ノイズベクトルの入力順序又はノイズベクトルがエンコードされて生成されるワンホットベクトルの生成順序に基づいて、それぞれのワンホットベクトルから変換されたそれぞれの数字で第1入力値を生成できる。例えば、[0100000000]、[0010000000]、[0000000010]、[0000010000]の4つのベクトルのうち最初に生成されたベクトルである[0100000000]の変換により生成された「1」は、第1入力値の最初の桁値に該当する。
【0065】
図7bを参照すると、プロセッサ11は、人工知能基盤の生成モデルに基づいてノイズベクトルを4つのワンホットベクトルにエンコードした後、前記ワンホットベクトルに基づいて第2入力値を生成できる。
図4を参照すると、プロセッサ11は、それぞれのワンホットベクトルをそれぞれの数字に変換し、変換された数字で構成された第2入力値を生成できる。
図4を参照すると、4つの二進ベクトルである[0000010000]、[0100000000]、[0000000010]、[0000000100]に基づいて、「5187」の第2入力値を生成できる。
【0066】
このとき、プロセッサ11は、ノイズベクトルの入力順序又はノイズベクトルがエンコードされて生成されるワンホットベクトルの生成順序に基づいて、それぞれのワンホットベクトルから変換されたそれぞれの数字で第1入力値を生成できる。例えば、[0000010000]、[0100000000]、[0000000010]、[0000000100]の4つのベクトルのうち最初に生成されたベクトルである[0000010000]の変換により生成された「5」は、第2入力値の最初の桁値に該当する。
【0067】
更に
図4を参照すると、プロセッサ11は、前記換算式に基づいて前記第1入力値を前記第1シグネチャコードに変換できる(S123)。ここで、前記換算式は、既に設定されたシグネチャコード変換テーブルを含むことができる。
【0068】
より詳しくは、プロセッサ11は、前記シグネチャコード変換テーブルに基づいて前記第1入力値に相応する文字の種類及び前記第1暗号文データ中における前記文字の交換位置を決定できる。
【0069】
そして、プロセッサ11は、前記第1暗号文データ中の暗号化文字のうち決定された交換位置に存在する既存の暗号化文字を確認し、確認された既存の暗号化文字及び決定された文字を既に設定された方式で演算した第1文字を生成できる。
【0070】
図8aを参照すると、プロセッサ11は、第1入力値と前記シグネチャコード変換テーブルに基づいて前記第1入力値に相応する文字の種類を決定できる。
【0071】
ここで、シグネチャコード変換テーブルを構成する文字全体の個数が30であると仮定すると、第1入力値1285の最初の数字である1に相応する文字は、次のように決定されることができる。まず、次式1によってシグネチャコード変換テーブル内での変換される文字が位置する順序を決定する。
【0072】
[数1]
変換する第1入力値の数/(第1入力値を構成する数の和)×シグネチャコード変換テーブルを構成する文字全体の数+変換する第1入力値の数の以前の桁値の結果値
【0073】
即ち、第1入力値1285の最初の数字である1の場合、シグネチャコード変換テーブル内の2番目(1/(1+2+8+5)×30=2)の文字である「0」に変換できる。
【0074】
このように同一の方法によれば、第1入力値1285の2番目の数字である2は、シグネチャコード変換テーブル内の6番目の文字である「4」に、第1入力値1285の3番目の数字である8は、シグネチャコード変換テーブル内の21番目の文字である「J」に、第1入力値の最後の文字である5は、シグネチャコード変換テーブル内の30番目の文字である「S」に変換できる。このように、第1入力値を構成するそれぞれの数字は、それぞれの文字、数字又は記号などに変換できる。
【0075】
ここで、シグネチャコード変換テーブルとは、事前に定義された重複しない順序情報に基づいて、シグネチャコードを構成する文字、数字、記号などが配置されて構成された変換テーブルを意味し得る。
【0076】
そして、プロセッサ11は、前記第1暗号文データ中で前記交換位置に存在する前記既存の暗号化文字2、D、7、d及び前記文字0、4、J、Sを既に設定された方式で演算して前記第1シグネチャコードを構成するそれぞれの第1文字を生成できる。
【0077】
ここで、
図10a及び
図10bを参照すると、交換位置は、第1暗号文データ中で2番目、7番目、24番目、36番目と決定できる。その後、
図10a及び
図10bについて詳細に後述する。
【0078】
ここで、既に設定された方式の演算は、前記シグネチャコード変換テーブル内で決定された文字の順番及び前記第1暗号文データ中における前記交換位置に存在する既存の暗号化文字の順番に対して行われる四則演算のうちの何れか1つの演算を含むことができる。
【0079】
このような前記第1文字は、前記既存の暗号化文字の順番及び前記決定された文字の順番に対して何れか1つの演算が行われた結果による順番を有する文字であり得る。
【0080】
一例として、プロセッサ11は、既に設定された方式の演算を通じて前記シグネチャコード変換テーブル内で決定された文字の順番(2番目、7番目、24番目、36番目)及び前記第1暗号文データ中における前記交換位置に存在する既存の暗号化文字の順番(2番目、13番目、7番目、39番目)に対して足し算を行い、前記実行結果に該当する順番(4番目、20番目、31番目、75番目)を決定できる。
【0081】
そして、プロセッサ11は、該当する順番に対して
図10bの文字種類コード表を参照して前記第1シグネチャコードを構成するそれぞれの第1文字4、R、V、Dを確認できる。このとき、該当する順番が前記文字種類コード表の個数を超えると、表の最初に再び戻り、順次計算して前記第1文字を確認できる。
【0082】
更に
図4を参照すると、プロセッサ11は、前記換算式に基づいて前記第2入力値を前記第2シグネチャコードに変換できる(S124)。
【0083】
具体的に、
図8bを参照すると、プロセッサ11は、第2入力値とシグネチャコード変換テーブルに基づいて第2入力値に相応する前記第2シグネチャコードを構成するそれぞれの文字を決定できる。プロセッサ11は、シグネチャコード変換テーブルを構成する文字全体の個数が30であると仮定すると、第2入力値5187の最初の数字である5に相応する第2シグネチャコード文字は、次のように決定できる。プロセッサ11は、前記数1を通じてシグネチャコード変換テーブル内での変換される文字が位置する順序を決定できる。
【0084】
即ち、第2入力値5187の最初の数字である5の場合、シグネチャコード変換テーブル内の7番目(5/(5+1+8+7)×30=7)の文字である「5」に変換される。
【0085】
このように同一の方法によれば、第2入力値5187の2番目の数字である1は、シグネチャコード変換テーブル内の8番目の文字である「6」に、第1入力値5187の3番目の数字である8は、シグネチャコード変換テーブル内の12番目の文字である「A」に、第1入力値の最後の文字である7は、シグネチャコード変換テーブル内の22番目の文字である「K」に変換される。即ち、第2シグネチャコードは、「56AK」と生成される。このように、第2入力値を構成するそれぞれの数字は、第2シグネチャコードを構成するそれぞれの文字、数字又は記号などに変換される。
【0086】
一方、本発明の一例として、人工知能基盤の生成モデルは、多峰分布(multimodal-distribution)のネットワーク内のノイズベクトルに基づいて事前に学習されたものであり得る。即ち、一般的な正規分布を有するネットワーク内のノイズベクトルではなく、多峰分布のネットワーク内のノイズベクトルに基づいて事前に学習することによって、人工知能基盤の生成モデルの結果値のフィーチャスペース(Feature Space)の複雑性を高めることができる。
【0087】
この他にも、事前学習過程で、人工知能基盤の生成モデルの一部隠れ層(Hidden State)のDrop-Outや、Distillation学習手法を用いて第3者の人工知能モデルのパラメータの予測可能性を低くし、パラメータの模倣を防止することもできる。
【0088】
また、ユーザによって既に設定された人工知能基盤の生成モデルの加重値に応じて事前学習を行うこともできる。
【0089】
更に
図2を参照すると、プロセッサ11は、第1シグネチャコード及び第2シグネチャコードを生成すると、前記第1シグネチャコード、前記第2シグネチャコード及びノイズベクトルを第1暗号文データに交換又は挿入して第2暗号文データを生成できる(S130)。
【0090】
以下では、
図9乃至
図11を参照して、第2暗号文データを生成する具体的な方法について説明する。
【0091】
図9は、本発明に係る第2暗号文データを生成する方法を概略的に示す手順図であり、
図10a及び
図10cは、本発明に係る第1シグネチャコード及び第2シグネチャコードを構成するそれぞれの文字に対する第1暗号文データ中の交換位置及び挿入位置をそれぞれ決定することを示す例示図であり、
図11は、ノイズ値と第1シグネチャコード及び第2シグネチャコードに基づいて第2暗号文データを生成することを示す例示図である。
【0092】
まず、
図9を参照すると、本発明の一例として、ノイズベクトルを第1暗号文データの第1位置に添付する(S131)。ここで、第1位置は、第1暗号文データの語頭又は語尾に該当し得る。好ましくは、第1暗号文データの終結部に前記ノイズベクトルを添付するPostfix方式による。
【0093】
より具体的に、抽出されたノイズベクトルをバイト(byte)に変換して、第1暗号文データの終結部に添付できる。4つのノイズベクトルが抽出されたと仮定すると、前記4つのノイズベクトルをそれぞれバイト形式に変換し、それぞれのノイズベクトルが抽出された順序に従って、第1暗号文データにPostfix方式によって添付されることができる。
【0094】
更に
図9を参照すると、プロセッサ11は、第1入力値及び第2入力値と第1暗号文データの長さ情報に基づいて第1暗号文データ中におけるそれぞれの文字の交換位置又は挿入位置を決定できる(S132)。
【0095】
具体的に、プロセッサ11は、第1シグネチャコード及び第2シグネチャコードを構成するそれぞれの文字、数字又は記号が第1暗号文内で交換又は挿入される交換位置及び挿入位置を生成できる。
【0096】
本発明の一例として、シグネチャコードの交換位置又は挿入位置は、上述した比率方式によって決定されることができる。
【0097】
例えば、
図10aを参照すると、まず第1シグネチャコードの最初の文字である4の交換位置は、次式2によって決定される。
【0098】
[数2]
交換位置を決定する第1入力値の数/(第1入力値を構成する数の和)×第1暗号文データの長さ+交換位置を決定する第1入力値の数の以前の桁値の結果値
【0099】
即ち、4は第1暗号文データ中で2番目(1/(1+2+8+5)×37 =2)の位置に交換される。このようにシグネチャコードを構成する残りの文字R、V、Dのそれぞれの交換位置を計算すると、Rは第1暗号文データ中の7番目、Vは第1暗号文データ中の24番目、そしてDは第1暗号文データ中の36番目に交換位置が決定される。
【0100】
図10cを参照すると、まず第2シグネチャコードの最初の文字である5 の挿入位置は、前記式2によって決定される。
【0101】
即ち、5は第1暗号文データ中で9番目(5/(5+1+8+7)×37=9) の位置に挿入される。このようにシグネチャコードを構成する残りの文字6、A、Kのそれぞれの挿入位置を計算すると、6は第1暗号文データ中の11番目、Aは第1暗号文データ中の25番目、そしてKは第1暗号文データ中の37番目に挿入位置が決定される。
【0102】
このとき、前記式1及び式2を用いた計算過程で、プロセッサ11は、式1及び式2によって算出された値未満の最大値でシグネチャコード変換テーブル内での変換される文字位置の順序と挿入位置を決定できる。
【0103】
更に
図9を参照すると、第1シグネチャコードと第2シグネチャコードを構成するそれぞれの文字の交換位置及び挿入位置が決定されると、決定されたそれぞれの交換位置と挿入位置に前記それぞれの文字を交換又は挿入できる(S133)。
【0104】
図11を参照すると、まず、上述したように、S131段階で、プロセッサ11は、ノイズベクトルに関する値である「0011001」を第1暗号文データにPostfix方式によって添付できる。具体的に、プロセッサ11は、既存の第1暗号文データの終結部にノイズベクトルに関する値を添付できる。
【0105】
そして、S132段階で、プロセッサ11は、前記第1シグネチャコードを構成する「4」、「R」、「V」、「D」と前記第2シグネチャコードを構成する「5」、「6」、「A」、「K」をそれぞれ決定された交換位置及び挿入位置によって第1暗号文データに交換又は挿入できる。これにより、プロセッサ11は、第1暗号文データである「B2wDfsDfADSFBf4A4SF6DG77SsAdf8kjdGWdg」にノイズベクトルとシグネチャコードが交換又は挿入された第2暗号文データである「B4wDfsRfA5DS6FBf4A4SF6DG7VSAsAdf8kjdGWDgK011001」を生成する。
【0106】
一方、上述したように、同一周期内の平文データは、同一のノイズベクトルを用いて同一のシグネチャコードを生成する。しかし、第2暗号文データを生成する過程で、決定される第1シグネチャコード又は第2シグネチャコードを構成するそれぞれの文字、数字、記号の交換位置又は挿入位置は、第1暗号文データの長さに基づく。そのため、同一の第1シグネチャコード又は第2シグネチャコードを用いる同一周期の平文データであっても、それぞれの平文データによって生成された第1暗号文データに従って、それぞれの第1暗号文データに交換又は挿入される長さ情報は異なるしかない。
【0107】
図12は、第1暗号文データ長情報を更に用いて第2暗号文データを生成する例示図である。
【0108】
本発明の一例として、上述したS130段階は、第1暗号文データの長さに関する情報を前記第1暗号文データの第2位置に添付して第2暗号文データを生成することもできる。具体的に、第2暗号文データは、第1暗号文データの長さ情報に基づいて生成することもできる。このとき、第1暗号文データの長さ情報が添付される第2位置は、上述したノイズベクトルが添付される第1位置とは重複しないように決定される。即ち、Postfix方式によってノイズベクトルに関する値が第1暗号文データに添付されたら、第1暗号文データの長さに関する情報は、Prefix方式によって第1暗号文データに添付できる。
【0109】
即ち、上述したように、同一周期内の平文データは、同一のノイズベクトルによって生成された同一のシグネチャコードに基づいてそれぞれ第2暗号文データとして生成される。従って、同一周期内の平文データに相応するそれぞれの第2暗号文データの場合には、同一のシグネチャコード識別キーが添付される。
【0110】
図12を参照すると、ノイズベクトルが添付された後、第1シグネチャコード及び第2シグネチャコードのそれぞれの文字が交換又は挿入されたデータに第1暗号文データの長さ情報が更に添付されることが分かる。また、上述したように、第1暗号文データの長さ情報は、ノイズベクトルに関する値とは重複しない位置に挿入された。具体的に、第1暗号文データの長さ情報は第1暗号文データの開始部に、ノイズベクトルに関する値は第1暗号文データの終結部に添付されたことが分かる。
【0111】
一方、本発明の一例として、図面に明確に示されてはいないが、平文データ暗号化方法は、シグネチャコードの長さ情報を事前に設定する段階を更に含むことができる。このとき、第1入力値と第2入力値を生成する段階(S120)は、任意のノイズベクトルを前記長さ情報に相応する個数だけノイズベクトルを抽出して第1入力値と第2入力値を生成できる。
【0112】
具体的に、上述したように、1つのノイズベクトルは、人工知能基盤の生成モデルによって1つのワンホットベクトルにエンコードされることが分かる。そして、
図5を参照すると、4つのワンホットベクトルに基づいて生成された第1入力値及び第2入力値は、4桁の数字で構成される。また、第1シグネチャコードは、第1入力値の桁数に相応する文字数で構成され、第2シグネチャコードは、第2入力値の桁数に相応する文字数で構成される。従って、第1シグネチャコードと第2シグネチャコードを構成する文字数、即ち第1シグネチャコードの長さは結局のところ、第1入力値の桁数に対応し、第2シグネチャコードの長さは、第2入力値の桁数に対応する。従って、ユーザは、第1暗号文データに交換又は挿入しようとする第1シグネチャコード及び第2シグネチャコードそれぞれの長さ情報を事前に設定すると、プロセッサ11は、設定された長さ情報に相応する個数だけノイズベクトルを抽出して第1入力値と第2入力値をそれぞれ生成する。
【0113】
例えば、シグネチャコードの長さ情報が10に設定されると、プロセッサ11は、10個のノイズベクトルを抽出した後、それぞれのノイズベクトルをエンコードして、10個のワンホットベクトルを生成した後、10桁の数字で構成された第1入力値と第2入力値をそれぞれ生成する。
【0114】
以下、
図13を参照して、第2暗号化データを復号化して平文データを復元する方法について説明する。
【0115】
図13は、本発明に係る第2暗号化データを復号化する方法を概略的に示す手順図である。
【0116】
まず、
図13を参照すると、プロセッサ11は、第2暗号文データからノイズベクトルを抽出する(S150)。そして、人工知能基盤の生成モデルにノイズベクトルを適用して第1シグネチャコード及び第2シグネチャコードを生成できる(S160)。
【0117】
プロセッサ11は、第1シグネチャコード及び第2シグネチャコードを生成した後は、前記第1シグネチャコード及び前記第2シグネチャコードに基づいて第2暗号文データに交換又は挿入されているそれぞれの文字を除去して第1暗号文データに復元した(S170)後、第1暗号文データを前記暗号化キーに基づいて復号化して前記平文データを生成できる(S180)。
【0118】
このとき、第1シグネチャコード及び第2シグネチャコードを生成する段階(S160)で、プロセッサ11は、人工知能基盤の生成モデルに基づいて第2暗号文データから抽出されたノイズベクトルをエンコードして第1入力値及び第2入力値を生成できる。
【0119】
そして、プロセッサ11は、既に設定されたシグネチャコード変換テーブルと既に設定された文字種類コード表に基づいて第1入力値及び第2入力値を第1シグネチャコード及び第2シグネチャコードにそれぞれ変換できる。
【0120】
上述したように、第2暗号文データ中には、第1シグネチャコード及び第2シグネチャコードを生成するのに用いられたノイズベクトルに関する情報を含めることができる。
【0121】
従って、プロセッサ11は前記ノイズベクトルを抽出し、人工知能基盤の生成モデルに入力して第2暗号文データを生成するとき、交換又は挿入された第1シグネチャコード及び第2シグネチャコードと同一の第1シグネチャコード及び第2シグネチャコードを生成できる。
【0122】
このために、本発明の一例としては、暗号化段階で用いられた第1シグネチャコード及び第2シグネチャコードと同一の前記第1シグネチャコード及び前記第2シグネチャコードを生成できるように、人工知能基盤の生成モデルのフィルタ情報をメモリ13に格納する。
【0123】
一方、生成された第1シグネチャコード及び第2シグネチャコードに基づいて前記第2暗号文データに交換又は挿入されている前記それぞれの文字を除去して第1暗号文データに復元する。
【0124】
図11を参照すると、プロセッサ11は、第2暗号文データである「B4wDfsRfA5DS6FBf4A4SF6DG7VSAsAdf8kjdGWDgK011001」に交換又は挿入されている第1シグネチャコード「4RVD」と第2シグネチャコード「56AK」のそれぞれの文字を除去し、第1暗号文データである「B2wDfsDfADSFBf4A4SF6DG77SsAdf8kjdGWdg」に復元できる。そして、プロセッサ11は、第1暗号文データに復元した後、メモリ13から前記暗号化キー参照値に相応する前記暗号化キーを抽出できる。なお、プロセッサ11は、抽出された暗号化キーを用いて前記第1暗号文データを復号化して前記平文データを生成し、復号化が完了できる。
【0125】
また、本発明の一例としては、プロセッサ11は、上述した第1暗号文データの長さ情報が添付されている第2暗号文データの場合には、前記第1暗号文データの長さ情報とノイズベクトルに基づいて、第2暗号文データに交換又は挿入されている第1シグネチャコード及び第2シグネチャコードを除去できる。
【0126】
具体的に、プロセッサ11は、第2暗号文データの第1位置、例えば終結部に添付されているノイズベクトルを抽出し、人工知能基盤の生成モデルに適用して第1入力値及び第2入力値を算出できる。
【0127】
プロセッサ11は、前記第1入力値及び前記第2入力値と既に格納されたシグネチャコード変換テーブルに基づいて、第1シグネチャコード及び第2シグネチャコードを構成するそれぞれの文字を生成できる。また、プロセッサ11は、第2暗号文データの第2位置、例えば開始部に添付されている第1暗号文データの長さ情報を抽出して、前記第1値と前記第1暗号文データの長さ情報に基づいて、第2暗号文データ中に交換又は挿入されている第1シグネチャコード及び第2シグネチャコードを構成するそれぞれの文字の交換位置又は挿入位置を決定できる。
【0128】
そして、プロセッサ11は、決定された交換位置又は挿入位置からそれぞれの文字を交換又は除去することによって、第2暗号文データを第1暗号文データに復元できる。
【0129】
一方、本発明の他の例としては、プロセッサ11は、Caching方式に基づいて復号化を行うこともできる。具体的に、プロセッサ11は、事前に設定されたn個(但し、nは自然数)のノイズベクトルとシグネチャコードをマッピングして格納した後、第2暗号文データからノイズベクトルを抽出して、前記抽出されたノイズベクトルに相応する第1シグネチャコード及び第2シグネチャコードをメモリから抽出できる。
【0130】
そして、プロセッサ11は、前記第1シグネチャコード及び第2シグネチャコードを用いて第2暗号文データに含まれている第1シグネチャコード及び第2シグネチャコードを構成するそれぞれの文字を除去できる。これにより、プロセッサ11は、より迅速に復号化過程を行えるようにする。
【0131】
一方、事前に設定されたn個のノイズベクトルは、暗号化及び復号化サービスを提供するユーザなどにより、ノイズベクトルの頻度などによって周期的に変更できる。しかし、これに制限されるものではない。
【0132】
一方、第2暗号文データは、周期的に更新することによって、第2暗号文データの解読可能性を無くし、平文データが流出するのを防止できる。
【0133】
以下、第2暗号文データを周期的に更新する方法について説明する。
【0134】
図14は、本発明に係るシグネチャコード変換テーブルの変更を通じた第2暗号文データの更新方法を示す例示図である。
【0135】
まず、プロセッサ11は、第2暗号文データ中の交換又は挿入されている第1シグネチャコード及び第2シグネチャコードを周期的に変更することによって、究極として第2暗号文データを更新できる。
【0136】
図面に明確に示されてはいないが、本発明の一例として、上述した人工知能基盤の生成モデルを用いた暗号化方法及び復号化方法は、シグネチャコード変換テーブルに基づいて前記第2暗号文データを周期的に更新する段階を更に含むことができる。このとき、前記第2暗号文データを更新する段階は、前記シグネチャコード変化テーブル内の文字配列を周期的に調整し、調整されたシグネチャコード変換テーブルに基づいて前記第2暗号文データ中の第1シグネチャコード及び第2シグネチャコードを変更して前記第2暗号文データを更新できる。
【0137】
図14を参照すると、同一の第1入力値である1285及び第2入力値である5187に対する第1シグネチャコード及び第2シグネチャコードがシグネチャコード変換テーブル内の文字配列の調整によって異なるように生成されることが分かる。
【0138】
一例として、第1シグネチャコード変換テーブルに基づいて生成された第2シグネチャコードは「56AK」であるのに対し、第2シグネチャコード変換テーブルに基づいて生成された第2シグネチャコードは「orP9」である。
【0139】
そして、それぞれの第1シグネチャコード及び第2シグネチャコードが交換又は挿入されて生成された第2暗号文データも異なることが分かる。このように、第1シグネチャコード及び第2シグネチャコードを変更することによって、第2暗号文データを更新できる。
【0140】
それぞれの第1シグネチャコード及び第2シグネチャコードは、それぞれの第1入力値及び第2入力値に相応する。そのため、シグネチャコード変換テーブルの変更を通じた第2暗号文データを更新するためには、同一の第1入力値と第2入力値のそれぞれによらなければならない。従って、本発明の一例として、プロセッサ11は、それぞれの第2暗号文データに添付されたノイズベクトルを抽出して人工知能基盤の生成モデルを通じて第1入力値及び第2入力値を生成できる。
【0141】
一方、本発明の一例として、上述した第2暗号文データの更新段階は、同一周期に属する第2暗号文データに対して一括して更新できる。
【0142】
一方、本発明の他の例として、第2暗号化データは、人工知能基盤の生成モデルの再学習に基づいて更新することもできる。
【0143】
具体的に、人工知能基盤の生成モデルの事前学習に関連して、ノイズベクトルの分布情報を周期的に変更した後、人工知能基盤の生成モデルを再学習させ、生成モデルの隠れ層(Hidden State)の加重値を調整する。そして、調整された加重値に基づいて、新たな第1入力値(以下、「第1-1入力値」)及び新たな第2入力値(以下、「第2-1入力値」)を生成する。そして、第1-1入力値と第2-1入力値を新たな第1シグネチャコード(以下、「第1-1シグネチャコード」)及び新たな第2シグネチャコード(以下、「第2-1シグネチャコード」)に変換した後、前記第1-1シグネチャコード及び前記2-1シグネチャコードを第1暗号文データに交換又は挿入して第2暗号文データを周期的に更新する。
【0144】
即ち、上述したシグネチャコード変換テーブルの調整を通じた第2暗号文データの更新方法は、同一の第1入力値及び第2入力値に基づいて行われたとすれば、人工知能基盤の生成モデルの再学習を通じた更新方法は、暗号文を生成する当時に用いられた第1入力値とは異なる第1入力値、そして第2入力値とは異なる第2入力値に基づいて実行できる。一方、再学習による人工知能基盤の生成モデルのフィルタ情報と隠れ層の加重値に関する情報は、装置10のメモリ13に格納される。
【0145】
一方、本発明の一例として、上述した第2暗号文データの更新段階は、第2暗号文データの復号化段階の後に実行できる。
【0146】
一方、上述した説明において段階S110乃至S180は、本発明の実施例によって、追加の段階に更に分割されるか、又はより少ない段階により組み合せられることができる。また、一部の段階は、必要に応じて省略することもでき、段階間の順序を変更することもできる。また、その他に省略された内容であっても、後述する
図1の内容は、
図2乃至
図11の人工知能基盤の暗号化及び復号化方法にも適用できる。
【0147】
以上で述べた本発明に係る人工知能基盤の暗号化及び復号化方法は、ハードウェアであるコンピュータで実行されるためにプログラム(又はアプリケーション)として実現してコンピュータ読み取り可能な記録媒体に格納できる。
【0148】
前述したプログラムは、前記コンピュータがプログラムを読み込んでプログラムにより実現した前記方法を実行させるために、前記コンピュータのプロセッサ(CPU)が前記コンピュータの装置インターフェースを介して読み取られるC、C++、JAVA(登録商標)、Ruby、機械語などのコンピュータ言語でコード化されたコード(Code)を含むことができる。このようなコードは、前記方法を実行するのに必要な機能を定義した関数などに関連する機能的なコード(Functional Code)を含むことができ、前記機能を前記コンピュータのプロセッサが所定の手順通りに実行させるのに必要な実行手順関連の制御コードを含むことができる。また、このようなコードは、前記機能を前記コンピュータのプロセッサが実行させるのに必要な追加の情報やメディアが前記コンピュータの内部又は外部メモリのどの位置(アドレス)で参照されるべきかに対するメモリ参照関連のコードを更に含むことができる。更に、前記コンピュータのプロセッサが前記機能を実行させるために、遠隔(Remote)にある任意の他のコンピュータやサーバなどと通信が必要な場合、コードは前記コンピュータの通信モジュールを用いて遠隔にある任意の他のコンピュータやサーバなどとどのように通信すべきか、通信時に如何なる情報やメディアを送受信すべきかなどに対する通信関連のコードを更に含むことができる。
【0149】
格納される媒体は、レジスタ、キャッシュ、メモリなどといった短時間でデータを格納する媒体ではなく、半永久的にデータを格納し、機器により読み取り(reading)可能な媒体を意味する。具体的には、格納される媒体の例としては、ROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、光データ格納装置などがあるが、これに制限されない。即ち、前記プログラムは、前記コンピュータが接続可能な多様なサーバ上の多様な記録媒体又はユーザの前記コンピュータ上の多様な記録媒体に格納できる。また、前記媒体は、ネットワークで接続されたコンピュータシステムに分散され、分散方式でコンピュータが読み取れるコードを格納できる。
【0150】
前述した本発明の説明は例示のためのものであり、本発明の属する技術分野における通常の知識を有する者は、本発明の技術的思想や必須の特徴を変更することなく、他の具体的な形態に簡単に変形できるということが理解できる。そのため、以上で述べた実施例は、あらゆる面で例示的なものであり、限定的ではないものとして理解すべきである。例えば、単一型に説明されている各構成要素は分散して実施することもでき、同様に、分散されたものと説明されている構成要素も結合された形態に実施できる。
【0151】
本発明の範囲は、前記詳細な説明よりは後述する特許請求の範囲によって表され、特許請求の範囲の意味及び範囲、そしてその均等な概念から導き出される全ての変更又は変形された形態が本発明の範囲に含まれるものと解釈されるべきである。
【国際調査報告】