JP7046424B2 - ホワイトボックス暗号を利用したデータの暗号化/復号化方法及び装置 - Google Patents

ホワイトボックス暗号を利用したデータの暗号化/復号化方法及び装置 Download PDF

Info

Publication number
JP7046424B2
JP7046424B2 JP2021098240A JP2021098240A JP7046424B2 JP 7046424 B2 JP7046424 B2 JP 7046424B2 JP 2021098240 A JP2021098240 A JP 2021098240A JP 2021098240 A JP2021098240 A JP 2021098240A JP 7046424 B2 JP7046424 B2 JP 7046424B2
Authority
JP
Japan
Prior art keywords
encryption
data
white
library
box
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.)
Active
Application number
JP2021098240A
Other languages
English (en)
Other versions
JP2021196611A5 (ja
JP2021196611A (ja
Inventor
ヨン リー,ジュン
Original Assignee
スティーリアン インコーポレイテッド
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 スティーリアン インコーポレイテッド filed Critical スティーリアン インコーポレイテッド
Publication of JP2021196611A publication Critical patent/JP2021196611A/ja
Publication of JP2021196611A5 publication Critical patent/JP2021196611A5/ja
Application granted granted Critical
Publication of JP7046424B2 publication Critical patent/JP7046424B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)

Description

本発明は、ホワイトボックス暗号を利用したデータの暗号化/復号化方法及び装置に関する発明である。
暗号化技術は、平文(Plain text)を暗号文(Cipher text)に変える技術である。これらの暗号化技術は、ソフトウェアコードで実装されることもあり、ハードウェア装置で実装されることもある。暗号化技術は大きくブラックボックス暗号方法とホワイトボックス暗号方法に分けられる。
ブラックボックスに基づく暗号技術の場合、入力された平文を暗号化する過程で暗号化キー(Key)が必要である。この暗号化キーは、ブラックボックスと仮定した暗号化装置の内部に存在する。ブラックボックスは、その中が見えないことを意味する。
すなわち、ブラックボックスに基づく暗号化装置の設計は、クラッカーがこの暗号化装置の内部を見ることができないという仮定から出発する。したがって、クラッカーはブラックボックスベースの暗号化装置に入力される平文と出力される暗号化文だけ見ることができる。したがって、クラッカーは2つの入力値と出力値を継続して観察し、あるパターンを突き止めようとする。
ブラックボックスの場合は、単純に暗号化装置の設計者がこの暗号化装置自体は完璧に安全であると仮定するものなので、もしこの暗号化装置自体がクラッカーに破られてしまうと、暗号化キーが漏洩してしまうことがある。暗号化キーが漏洩すると、すべての暗号化過程は、クラッカーに完全に公開されるという問題点が発生する。
これらのブラックボックス暗号方法よりもセキュリティ性が強化された暗号方法がホワイトボックス暗号方法であって、図1及び図2は、ホワイトボックス暗号を説明するための図面である。図1は、ホワイトボックス暗号の全体的な構成を、図2は、ホワイトボックスの作動原理を説明するための式である。
ホワイトボックス(10)は、中を覗き込むことができる透明なボックスを意味する。したがって、ホワイトボックス暗号方法は、クラッカー(40)がホワイトボックス(10)の内部を覗き見ることができるので、暗号化及び復号化に関連するソフトウェアの実行過程をすべて見ることができるという仮定から出発する。クラッカーが暗号化装置の内部を見ることができれば、暗号化キー(Key)を獲得することができるので、クラッカー(40)が暗号文(20)を容易に平文(30)に変換することができる。そのため、設計者はより多くの事項を考慮して暗号化装置を設計しなければならない。
暗号化装置をホワイトボックスと仮定すると、暗号化キー(Key)を簡単に装置内に保存することができない。したがって、一般的なホワイトボックスでは、暗号化キーがそのまま存在せず、複雑な暗号化演算アルゴリズムと入り混じって存在するので、暗号化キーを別途に得ることができない。また、このアルゴリズムは、元に戻す(invert)ことが難しいアルゴリズムなので、結果値を利用して元の値や暗号化キーを推測するのは難しい。
すなわち、ホワイトボックス暗号はアルゴリズムを大きなルックアップテーブル(look-up table)に作成し、その中に暗号キーをソフトウェアで実装された暗号アルゴリズムと入り混じった状態で隠しておくことで、内部の動作を解析しても暗号キーを簡単に類推できないようにする手法である。
暗号アルゴリズムを一つの大きなルックアップテーブルに作成すると、暗号キーを隠すことは容易であるが、テーブルの大きさが大きくなる可能性があるので、テーブルを暗号学的な手法で適切に分離するが、暗号化演算の中間値が露出しないようにデコードとエンコード過程を行うようにすればよい。
図2に示すように、基本的なホワイトボックス暗号の基本原理は、エンコード過程(Mi)とデコード過程(Mi-1)が、別途のテーブルで計算される。したがって、中間値が露出することなく、順次エンコードとデコードでそれぞれのエンコードとデコードは相殺され、元の暗号化動作(Xi)のみを行う結果と同じ結果が得られる。
このように、現在のホワイトボックス暗号は、暗号キーを使用していないので、暗号キーが漏洩しない長所を持ち、標準暗号技術と互換する長所がある。しかし、暗号キーが隠されたホワイトボックス暗号アルゴリズム自体が漏洩すると、それによって暗号文を復号化することができるという問題点が存在する。
したがって、一実施例によるホワイトボックス暗号を利用した暗号化/復号化方法及び装置は、従来技術が持っている問題点を解決するために考案された発明であって、アルゴリズムの一部が漏洩しても復号化をすることができないようにし、よりセキュリティ性が向上した暗号化/復号化方法及び装置を提供するためである。
具体的には、ホワイトボックス暗号ライブラリの中に含まれているsoライブラリだけが独立的に流出した場合、復号化するデータとキーテーブルさえ獲得すれば、元のキーを知らなくても、復号化されたデータが漏洩することができるという問題点を解決するために考案された発明である。
一実施例によるホワイトボックス暗号を利用したデータの暗号化装置は、暗号キーをもとにホワイトボックス暗号(White-Box Cryptography、WBC)ベースの暗号化キーテーブルを生成するキーテーブル生成部と、前記暗号化キーテーブルを利用して前記データを前記ホワイトボックス暗号ベースの方式で暗号化するホワイトボックス暗号ライブラリを含み、前記ホワイトボックス暗号ライブラリは、前記データに対して暗号化及び復号化を実行した後、前記ホワイトボックス暗号方式を利用して暗号化することができる。
前記ホワイトボックス暗号ライブラリは、Androidベースのjarライブラリとsoライブラリを含み、前記jarライブラリは、前記データに対して暗号化をして、前記soライブラリは、前記jarライブラリによって暗号化されたデータを復号化して復号化データを生成することができる。
前記soライブラリは、ホワイトボックス暗号ベースのアルゴリズムを利用して前記復号化データを再び暗号化することができる。
一実施例によるホワイトボックス暗号を利用したデータの復号化装置は、暗号キーをもとにホワイトボックス暗号(White-Box Cryptography、WBC)ベースの復号化キーテーブルを生成するキーテーブル生成部と、前記復号化キーテーブルを利用して前記暗号化されたデータをホワイトボックス暗号ベースの方式で復号化をするホワイトボックス暗号ライブラリを含み、前記ホワイトボックス暗号ライブラリは、前記暗号化されたデータに対して暗号化及び復号化を実行した後、前記ホワイトボックス暗号方式を利用して復号化することができる。
前記ホワイトボックス暗号ライブラリは、Androidベースのjarライブラリとsoライブラリを含み、前記jarライブラリは、前記暗号化されたデータに対して暗号化を行い、前記soライブラリは、前記jarライブラリによって暗号化されたデータを復号化した後、復号化されたデータをホワイトボックス暗号ベースのアルゴリズムを利用して、再び復号化することができる。
一実施例によるホワイトボックス暗号を利用したデータの暗号化方法は、データ及び暗号キーを受信する段階、前記暗号キーをもとにホワイトボックス暗号(White-Box Cryptography、WBC)ベースの暗号化キーテーブルを生成する段階、及び前記暗号化キーテーブルを利用して前記データを前記ホワイトボックス暗号ベースの方式で暗号化する段階を含み、前記ホワイトボックス暗号ベースの方式で暗号化する段階は、Androidベースのjarライブラリとsoライブラリを利用して前記データに対して暗号化及び復号化過程を経た後、前記ホワイトボックス暗号方式を利用して暗号化することができる。
一実施例によるホワイトボックス暗号を利用したデータの復号化方法は、暗号化されたデータ及び暗号キーを受信する段階、前記暗号キーをもとにホワイトボックス暗号(White-Box Cryptography、WBC)ベースの復号化キーテーブルを生成する段階、及び前記復号化キーテーブルを利用して前記データを前記ホワイトボックス暗号ベースの方式で復号化する段階を含み、前記ホワイトボックス暗号ベースの方式で復号化する段階は、Androidベースのjarライブラリとsoライブラリを利用して前記暗号化されたデータに対して暗号化及び復号化過程を経た後、前記ホワイトボックス暗号方式を利用して復号化することができる。
一実施例によるホワイトボックス暗号を利用した暗号化/復号化方法及び装置の場合、データを暗号化及び復号化することにおいて、データをjarライブラリ及びsoライブラリにより、データの暗号化及び復号化を経た後、ホワイトボックス方式の暗号化/復号化を実行するので、soライブラリのみ分離抽出されても従来技術と異なり、最終暗号データを得ることができず、よりセキュリティ性が向上した暗号化/復号化装置を提供することができる。
図1は、本発明に適用されるホワイトボックス暗号の全体的な概念を説明するための図面である。 図2は、本発明に適用されるホワイトボックスの作動原理を説明するための式である。 図3は、従来の技術によるホワイトボックス暗号の脆弱性を説明するための図面である。 図4は、一実施例によるデータの暗号化装置の構成要素を示すブロック図である。 図5は、一実施例によってキーテーブル生成部から出力する2種類のキーテーブルを示す図である。 図6は、一実施例によってデータを暗号化する方法を説明するための図面である。 図7は、他の実施例によるデータの復号化装置の構成要素を示すブロック図である。 図8は、他の実施例によるデータを復号化する方法を説明するための図面である。 図9は、一実施例によるデータの暗号化/復号化装置の構成を説明するための図面である。 図10は、他の実施例によるデータの暗号化/復号化装置の構成を説明するための図面である。 図11は、他の実施例によるデータの暗号化/復号化装置の構成を説明するための図面である。
本発明の一実施例によるホワイトボックス暗号を利用した暗号化/復号化方法は、コンピュータ装置によって実行することができる。前記コンピュータ装置は、メモリにロードされたプロセッサ、前記プロセッサによって行われるオペレーション(operation)がロード(load)されるメモリ、及び電源の供給とは無関係に前記オペレーションを保存するためのストレージを含む。ただし、前記コンピュータ装置の構成は一例に過ぎず、前記コンピュータ装置は、演算機能を有する多様な形態の装置を含む。
コンピュータ装置は、暗号化または復号化する情報を得た後、暗号化/復号化処理を実行することができる。前記の情報は、コンピュータ装置のストレージ装置に保存された情報、コンピュータ装置に備えられたネットワークインタフェースを介して受信された情報、または前記コンピュータ装置に備えられたタッチスクリーンなどのユーザーインターフェースを介して入力された情報であることができる。
コンピュータ装置は、入力された情報に対する暗号化/復号化を実行するホワイトボックス暗号モジュールをコンピュータ装置に備えられたメモリにロードする。一般的に、暗号化または復号化する情報を得た後にホワイトボックス暗号モジュールのメモリロードが実行されるが、それとは逆にホワイトボックス暗号モジュールのメモリロードが先に行われた後、暗号化または復号化する情報を得る動作が実行されることもある。
すなわち、ホワイトボックス暗号モジュールは、必要な時だけメモリに一時的にロードされる一時ロードモジュールであることもでき、メモリに常時ロードされている状態を維持する常時ロードモジュールであることもできる。ホワイトボックス暗号モジュールが常時ロードモジュールであっても、コンピュータ装置の起動過程では、メモリにロードされる過程を経るだろう。
ホワイトボックス暗号モジュールを常時ロードモジュールの形で運営する場合、一実施例によれば、メモリのカーネル(kernel)の領域に前記ホワイトボックス暗号モジュールをロードすることができる。カーネル領域は、オペレーティングシステムが使用するメモリ領域であり、オペレーティングシステム以外のユーザーアプリケーションは、前記カーネル領域に侵犯することはできない。
したがって、メモリのカーネル領域にロードされたホワイトボックス暗号モジュールは、そのコードが流出することを防止することができる。また、起動過程で前記ホワイトボックス暗号モジュールをロードすることにより、起動が完了した後に動作できるクラッキング目的のユーザーアプリケーションが、ホワイトボックス暗号モジュールのバイナリデータを得ることを防止することができる。
ホワイトボックス暗号モジュールが一時ロードモジュールの形で運営される場合、ホワイトボックス暗号モジュールのバイナリデータサイズほどメモリ容量を節約できる効果がある。ただし、ホワイトボックス暗号モジュールがメモリにロードされる過程で、前記ホワイトボックス暗号モジュールのバイナリがクラッキングアプリケーションによって複製される危険性が存在する。
クラッキングアプリケーションは、前記ホワイトボックス暗号モジュールが必要な状況を作った後(例えば、ホワイトボックス暗号モジュールが使用される決済APPの実行)、メモリロードのためのシステム関数をフッキング(hooking)してメモリアドレスを取得するなどの方式で、ホワイトボックス暗号モジュールのバイナリを得ることができ(メモリダンプ技術を使用)、このような場合、セキュリティ上の問題が発生することができる。
これらを詳しく見ると、図3に示すように、ホワイトボックス暗号ライブラリ(70)は、暗号化するデータ(10)を暗号化キーテーブル(20)を利用して暗号化して、暗号データ(30)を出力する。ホワイトボックス暗号ライブラリ(70)は、一般的にaarファイルで構成されており、aarファイルの中には、図3に示すように、Androidベースのjarライブラリ(71)ファイルとsoライブラリ(73)ファイルが含まれている。そして、soライブラリ(73)は入力されたデータをホワイトボックス暗号関数(75)を利用して暗号化する。
しかし、ホワイトボックス暗号ライブラリ(70)に含まれているsoライブラリ(73)は、jarライブラリ(71)と独立的にホワイトボックス暗号ライブラリ(70)から抽出することができ、復号化するデータとキーテーブルさえ獲得すれば、元のキーを知っていなくても復号化されたデータが漏洩することができるという問題点が存在した。
したがって、一実施例によるホワイトボックス暗号を利用したデータの暗号化/復号化装置(300)は、このような問題点を防止するために考案された発明であって、従来技術によりホワイトボックス暗号ライブラリ(70)からsoライブラリ(73)のみ独立的に抽出されたとしても、暗号データを得ることができないようにし、よりセキュリティ性が向上した暗号化/復号化方法を提供するためである。以下、図面を介して本発明の構成要素及び作動手順について調べてみる。
図4は、一実施例によるデータの暗号化装置(100)の構成要素を示したブロック図であり、図5は、一実施例によってキーテーブル生成部(120)から出力される2種類のキーテーブルを示す図面であり、図6は、一実施例によるデータの暗号化装置(100)がデータを暗号化する方法を説明するための図面である。
図5を参照すると、一実施例によるデータの暗号化装置(100)は、暗号化及び復号化に使用するキー(Key)を決定するキー決定部(110)、キー決定部(110)で決定された暗号化キー(50)をもとに暗号化に使用する暗号化キーテーブル(20)を生成するキーテーブル生成部(120)、及び暗号化キーテーブル(20)を利用してデータを暗号化するホワイトボックス暗号ライブラリ(130)を含むことができる。
キーテーブル生成部(120)は、図5に示すように、入力された暗号化キー(50)をキーテーブル生成関数を利用してデータ(20)を暗号化するのに必要な暗号化キーテーブル(20)と、暗号データ(30)を復号化するのに必要な復号化キーテーブル(40)をそれぞれ生成することができる。
従来のAES(Advanced Encryption Standard:高度暗号化標準)アルゴリズム方式の暗号化方法の場合、暗号化するのに必要なキーと復号化するのに使われるキーが同一であったが、ホワイトボックス暗号方式の場合は、キーテーブルを利用して暗号化を行い、暗号化する時に使われるキーテーブルと復号化する時に使われるキーテーブルが互いに同一である点から、従来のAESアルゴリズム方式の暗号化と相違点が存在する。
ホワイトボックス暗号ライブラリ(70)は、一般的にaarファイルで構成されており、aarファイルの中には、図6に示すように、jarライブラリ(140)ファイルとsoライブラリ(150)ファイルが含まれている。そして、jarライブラリ(140)には、入力された暗号データ(30)を中間暗号データ(15)に暗号化するデータ暗号化部(141)が含まれており、soライブラリ(150)には、データ暗号化部(141)で暗号化した中間暗号データ(15)を復号化するデータ復号化部(151)と、復号化されたデータをホワイトボックス暗号関数アルゴリズムを利用して再び暗号化を行うホワイトボックス暗号化部(153)が含まれている。
jarライブラリ(140)は、外部から暗号化するデータ(10)と暗号化キーテーブル(20)を受信した後、ユーザーの選択によって受信された暗号化データ(10)にパディング(padding)を挿入することができる。もし、暗号化するデータ(10)にパディングを挿入する場合、PKCS5Paddingの方式でパディングを挿入することができる。
具体的には、jarライブラリ(140)は、JAVAでSubstitution Tableを通じた置換暗号とXOR演算を実行することができ、Javaネイティブインタフェース(JNI、Java Native Interface)に接続されたCでXOR及びSubstitution Tableを通じた暗号化過程を実行することができる。jarライブラリ(140)で使用されるSubstitution Tableは、従来のAESアルゴリズムで使用されるSubstitution Boxとは異なる構造及び内容を含んでいる。
jarライブラリ(140)で入力されたデータ(10)が暗号化されて、中間暗号データ(15)に変換されると、soライブラリ(150)は、中間暗号データ(15)を受信した後、再び復号化及び暗号化過程を行う。
具体的に、soライブラリ(140)に含まれているデータ復号化部(151)は、復号化する中間暗号データ(15)を受信した後、中間暗号データ(15)に対して復号化を行う。その後、ホワイトボックス暗号化部(153)は、復号化されたデータ(10)を再びホワイトボックス暗号アルゴリズムを利用して暗号化を行い、最終暗号データ(30)を出力する。
すなわち、一実施例によるホワイトボックス暗号ライブラリ(130)によってデータを暗号化する場合、入力されるデータと出力されるデータは従来技術と同じであるが、暗号化をする過程で入力されるデータに対して暗号化及び復号化を実行した後に、再びホワイトボックスアルゴリズムに基づく暗号化を行うことに特徴がある。
したがって、soライブラリ(150)のみホワイトボックス暗号ライブラリ(130)から分離抽出されても、soライブラリ(150)に入力されるべきデータは中間暗号データでなければならないので、暗号化するデータ(10)と暗号化キーテーブル(20)を知っていても最終暗号データ(30)を得ることができない。したがって、従来技術とは異なり、soライブラリ(150)のみホワイトボックス暗号ライブラリ(130)から分離抽出されても、最終暗号データ(30)が漏洩する問題点を解決できるという長所が存在する。
図7は、他の実施例によるデータの復号化装置(200)の構成要素を示したブロック図であり、図8は、他の実施例によるデータの復号化装置(200)によってデータを復号化する方法を説明するための図面である。
図7を参照すると、一実施例によるデータの復号化装置(200)は、復号化に使用するキー(Key)を決定するキー決定部(210)、キー決定部(210)で決定された暗号化キー(50)をもとに復号化に使用する復号化キーテーブル(40)を生成するキーテーブル生成部(220)、及び復号化キーテーブル(40)を利用して暗号化されたデータを復号化するホワイトボックス暗号ライブラリ(230)を含むことができる。
データの復号化装置(200)のキー決定部(210)、キーテーブル生成部(220)、及びホワイトボックス暗号ライブラリ(230)は、図5で説明したキー決定部(110)、キーテーブル(120)、及びホワイトボックス暗号ライブラリ(130)と類似した役割をするので、これに対する説明は省略し、図8を介して復号化する過程について詳細に説明する。
図8を参考にすれば、jarライブラリ(240)は、外部から復号化する暗号データ(30)と復号化キーテーブル(40)を受信した後、JAVAでSubstitution Tableによる置換暗号とXOR演算を実行することができ、Javaネイティブインタフェース(JNI、Java Native Interface)に接続されたCでXOR及びSubstitution Tableによる暗号化過程を行うことができる。
jarライブラリ(240)で使用されるSubstitution Tableは、従来のAESアルゴリズムで使用されるSubstitution Boxとは異なる構造及び内容を含んでいる。
jarライブラリ(240)で暗号データ(30)が暗号化されて、中間暗号データ(25)に変換されると、soライブラリ(250)は、中間暗号データ(25)を受信した後、再び復号化及び暗号化過程を行う。
具体的に、soライブラリ(250)に含まれているデータ復号化部(251)が復号化する中間暗号データ(25)を受信した後、中間暗号データ(25)に対して復号化を行う。その後、ホワイトボックス復号化部(153)は、復号化された暗号データ(30)を再びホワイトボックス暗号アルゴリズムベースの復号化を行い、最終データ(10)を出力する。
すなわち、一実施例によるホワイトボックス暗号ライブラリ(230)によってデータを復号化する場合、入力されるデータと出力されるデータは、従来技術と同じであるが、復号化する過程で入力された暗号データに対して暗号化及び復号化を行った後に、再び復号化を行うことに特徴がある。
したがって、soライブラリ(150)のみホワイトボックス暗号ライブラリ(130)から分離抽出されても、soライブラリ(150)に入力されるべきデータは、中間暗号データでなければならないので、暗号化されたデータ(10)と復号化キーテーブル(40)を知っていても元データ(10)を得ることができない。したがって、従来技術とは異なり、soライブラリ(150)のみホワイトボックス暗号ライブラリ(130)から分離抽出されても、元データ(10)が漏洩する問題点を解決できるという長所が存在する。
図9乃至図11は、様々な実施例によってデータの暗号化/復号化装置の構成を説明するための図面である。
前の図面では、データの暗号化装置(100)とデータの復号化装置(200)を区分して説明したが、本発明の実施例は、これに限られるものではなく、図9に示すように、ホワイトボックス暗号ベースのデータの暗号化装置(100)とデータの復号化装置(200)を含んでいるデータの暗号化/復号化装置(300)で実装されることがある。
また、ホワイトボックスベースの暗号化アルゴリズムとAESベースの復号化アルゴリズムは、互いに互換できるので、一実施例によるデータの暗号化/復号化装置(300)は、図10に示すように、ホワイトボックス暗号ベースのデータの暗号化装置(100)とAESアルゴリズムベースの復号化装置(200)を含む形で実装されることがある。
図10のような形で実装される場合、データ(10)を暗号化する場合には、暗号化キーテーブル(20)が使用され、暗号データ(30)を復号化する場合には、復号化キー(60)が使用される。
また、図11に示すように、データの暗号化/復号化装置(300)は、図10とは異なり、AESアルゴリズムベースの暗号化装置(100)とホワイトボックス暗号ベースのデータの復号化装置(200)を含んでいる形で実装されることがある。
図11のような形で実装される場合、データ(10)を暗号化する場合には、暗号化キー(50)が使用され、暗号データを復号化する場合には、復号化キーテーブル(40)が使用される。
一実施例によるホワイトボックス暗号を利用した暗号化/復号化方法及び装置の場合、データを暗号化及び復号化することにおいて、データをjarライブラリ及びsoライブラリにより、データの暗号化及び復号化を経た後、ホワイトボックス方式の暗号化/復号化を実行するので、soライブラリのみ分離抽出されても従来技術と異なり、最終暗号データを得ることができず、よりセキュリティ性が向上した暗号化/復号化装置を提供することができる。

Claims (4)

  1. ホワイトボックス暗号を用いてデータを暗号化するための装置であって、
    暗号キーをもとにホワイトボックス暗号(White-Box Cryptography、WBC)ベースの暗号化キーテーブルを生成するキーテーブル生成部、及び
    前記暗号化キーテーブルを利用して前記データを前記ホワイトボックス暗号ベースの方式で暗号化するホワイトボックス暗号ライブラリを含み、
    前記ホワイトボックス暗号ライブラリは、Androidベースのjarライブラリとsoライブラリを含み、
    前記jarライブラリは、暗号化キーテーブルを利用して前記データを暗号化して中間暗号データを生成するデータ暗号化部を含み、
    前記soライブラリは、前記中間暗号データを復号してデータを生成するデータ復号化部と、生成されたデータを前記ホワイトボックス暗号方式を利用して暗号化して最終暗号データを生成するホワイトボックス暗号化部とを含む、
    ことを特徴とするホワイトボックス暗号を利用したデータの暗号化装置。
  2. ホワイトボックス暗号を用いて、暗号化されたデータを復号化するための装置であって、
    暗号キーをもとにホワイトボックス暗号(White-Box Cryptography、WBC)ベースの復号化キーテーブルを生成するキーテーブル生成部、及び
    前記復号化キーテーブルを利用して前記暗号化されたデータをホワイトボックス暗号ベースの方式で復号化するホワイトボックス暗号ライブラリを含み、
    前記ホワイトボックス暗号ライブラリは、Androidベースのjarライブラリとsoライブラリを含み、
    前記jarライブラリは、前記復号化キーテーブルを利用して前記暗号化されたデータを暗号化し、中間暗号データを生成するデータ暗号化部を含み、
    前記soライブラリは、前記中間暗号データを復号化して前記暗号化されたデータを生成するデータ復号化部と、生成された前記暗号化されたデータを前記ホワイトボックス暗号方式を利用して復号化してデータを生成するホワイトボックス復号化部とを含む、
    ことを特徴とするホワイトボックス暗号を利用したデータの復号化装置。
  3. ホワイトボックス暗号を利用したデータの暗号化方法であって、
    データ及び暗号キーを受信する段階、
    前記暗号キーをもとにホワイトボックス暗号(White-Box Cryptography、WBC)ベースの暗号化キーテーブルを生成する段階、及び
    前記暗号化キーテーブルを利用して前記データを前記ホワイトボックス暗号ベースの方式で暗号化する段階を含み、
    前記ホワイトボックス暗号ベースの方式で暗号化する段階は、
    Androidベースのjarライブラリを利用して前記暗号化キーテーブルをもとに前記データを暗号化して中間暗号データを生成し、Androidベースのsoライブラリを利用して前記データに対して暗号化及び復号化過程を経た後、前記ホワイトボックス暗号方式を利用して中間暗号データを復号しデータを生成して最終暗号データを生成し、前記生成されたデータをホワイトボックス暗号方式を利用して暗号化する、
    ことを特徴とするホワイトボックス暗号を利用したデータの暗号化方法。
  4. ホワイトボックス暗号を利用したデータの復号化方法であって、
    暗号化されたデータ及び暗号キーを受信する段階、
    前記暗号キーをもとにホワイトボックス暗号(White-Box Cryptography、WBC)ベースの復号化キーテーブルを生成する段階、及び
    前記復号化キーテーブルを利用して前記暗号化されたデータを前記ホワイトボックス暗号ベースの方式で復号化する段階を含み、
    前記ホワイトボックス暗号ベースの方式で復号化する段階は、
    Androidベースのjarライブラリを利用して前記暗号化キーテーブルをもとに前記暗号化されたデータを暗号化して中間暗号データを生成し、Androidベースのsoライブラリを利用して前記中間号データを復号して復号化データを生成するデータ復号化部と、前記ホワイトボックス暗号方式を利用して前記生成された暗号化データを復号化してデータを生成する、
    ことを特徴とするホワイトボックス暗号を利用したデータの復号化方法。
JP2021098240A 2020-06-15 2021-06-11 ホワイトボックス暗号を利用したデータの暗号化/復号化方法及び装置 Active JP7046424B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200072474A KR102301243B1 (ko) 2020-06-15 2020-06-15 화이트박스 암호를 이용한 데이터 암호화/복호화 방법 및 장치
KR10-2020-0072474 2020-06-15

Publications (3)

Publication Number Publication Date
JP2021196611A JP2021196611A (ja) 2021-12-27
JP2021196611A5 JP2021196611A5 (ja) 2022-01-31
JP7046424B2 true JP7046424B2 (ja) 2022-04-04

Family

ID=77796552

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021098240A Active JP7046424B2 (ja) 2020-06-15 2021-06-11 ホワイトボックス暗号を利用したデータの暗号化/復号化方法及び装置

Country Status (2)

Country Link
JP (1) JP7046424B2 (ja)
KR (1) KR102301243B1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102626974B1 (ko) * 2023-08-24 2024-01-19 쿤텍 주식회사 화이트박스 암호의 비밀키 보호를 위한 방법 및 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011514091A (ja) 2008-03-05 2011-04-28 イルデト・ビー・ヴイ 暗号システム
JP2011521366A (ja) 2008-05-23 2011-07-21 イルデト カナダ コーポレーション ソフトウェアアプリケーションのホワイトボックス実装を生成するためのシステムおよび方法
JP2012520599A (ja) 2009-03-13 2012-09-06 ニュー イメージング テクノロジーズ 低消費マトリックスセンサ
JP2013524322A (ja) 2010-03-31 2013-06-17 イルデト カナダ コーポレーション カプセル化し、ソフトウェアライブラリ中の多様化によって保護を可能にするための、システムと方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150040576A (ko) * 2013-10-07 2015-04-15 한국전자통신연구원 오픈 환경에서의 데이터 보호 방법 및 장치
KR20150090438A (ko) * 2014-01-29 2015-08-06 한국전자통신연구원 화이트박스 암호 장치 및 그 방법
KR20170097509A (ko) * 2016-02-18 2017-08-28 한국전자통신연구원 화이트 박스 암호화 기반의 연산 방법 및 그 방법을 수행하는 보안 단말

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011514091A (ja) 2008-03-05 2011-04-28 イルデト・ビー・ヴイ 暗号システム
JP2011521366A (ja) 2008-05-23 2011-07-21 イルデト カナダ コーポレーション ソフトウェアアプリケーションのホワイトボックス実装を生成するためのシステムおよび方法
JP2012520599A (ja) 2009-03-13 2012-09-06 ニュー イメージング テクノロジーズ 低消費マトリックスセンサ
JP2013524322A (ja) 2010-03-31 2013-06-17 イルデト カナダ コーポレーション カプセル化し、ソフトウェアライブラリ中の多様化によって保護を可能にするための、システムと方法

Also Published As

Publication number Publication date
JP2021196611A (ja) 2021-12-27
KR102301243B1 (ko) 2021-09-13

Similar Documents

Publication Publication Date Title
US8266448B2 (en) Apparatus, system, method, and computer program product for generating and securing a program capable of being executed utilizing a processor to decrypt content
US8868925B2 (en) Method and apparatus for the secure processing of confidential content within a virtual machine of a processor
KR101010040B1 (ko) 파일의 암호화·복호화 방법, 장치, 프로그램 및 이프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
EP2356771B1 (en) Low latency block cipher
Tsoutsos et al. The HEROIC framework: Encrypted computation without shared keys
US8135964B2 (en) Apparatus, system, method, and computer program product for executing a program utilizing a processor to generate keys for decrypting content
Garmany et al. PRIME: private RSA infrastructure for memory-less encryption
US8681975B2 (en) Encryption method and apparatus using composition of ciphers
WO2006100801A1 (ja) キーストリーム暗号化装置および方法ならびにプログラム
CN111010266B (zh) 消息的加解密、读写方法、装置、计算机设备和存储介质
KR20150090438A (ko) 화이트박스 암호 장치 및 그 방법
KR100834364B1 (ko) 3단계 암호화를 사용하여 메시지를 암호화 및 검증하는시스템 및 방법
CN111314050A (zh) 一种加解密方法及装置
JPWO2006033347A1 (ja) 機密情報処理方法、機密情報処理装置、およびコンテンツデータ再生装置
US11336425B1 (en) Cryptographic machines characterized by a Finite Lab-Transform (FLT)
JP7046424B2 (ja) ホワイトボックス暗号を利用したデータの暗号化/復号化方法及び装置
CN114124364A (zh) 密钥安全处理方法、装置、设备及计算机可读存储介质
CN114036541A (zh) 一种复合加密存储用户私密内容的应用方法
WO2021044465A1 (ja) 暗号化装置、復号装置、コンピュータプログラム、暗号化方法、復号方法及びデータ構造
CN111131158A (zh) 单字节对称加密解密方法、装置及可读介质
Shah et al. Language support for efficient computation over encrypted data
JP2015082077A (ja) 暗号化装置、制御方法、及びプログラム
JP7215245B2 (ja) 情報処理装置、情報処理方法及びプログラム
US20190012469A1 (en) Data processing method and data processing system
JPWO2019142260A1 (ja) 秘匿分析装置、秘匿分析システム、秘匿分析方法及び秘匿分析プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210615

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220121

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20220121

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220221

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220318

R150 Certificate of patent or registration of utility model

Ref document number: 7046424

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150