ホワイトボックス暗号 diaCrypto

WhiteBox暗号 diaCryptoとは

diaCryptoとは、IoT機器やPC、スマートフォンアプリケーションにおける通信を保護する、暗号ライブラリです。

PCやスマートフォンはもちろん、近年IoT化に伴い、組込み機器においても汎用OSの採用が広がっています。
AESをはじめとする共通鍵方式の暗号は、外部からのアクセスが制限されたブラックボックス環境での使用を前提に設計されています。そのため、汎用OSを利用した、外部からのアクセスが容易な実行環境下では、暗号/復号の実行内容を解析することができます。

また、サーバークライアントシステム等においてよく利用される、公開鍵方式を用いたRSAなどは、クラッキング耐性には優れますが、暗号/復号処理に時間がかかるため、リアルタイム性のあるシステムでは使いにくいという弱点があります。

AESとRSAの利点を兼ね備え、WhiteBox暗号を大幅に進化させたdiaCrypto
diaCryptoはWhiteBox 暗号として設計・実装することで、暗号強度を確保しつつ、クラッキング耐性・パフォーマンス性を高めた高性能暗号ライブラリです。

さらに、従来のWhiteBox暗号(WhiteBox AES)では防ぐことが出来なかった攻撃(入出力対応攻撃、BGE攻撃)からも、通信を強固に保護します。

diaCryptoの特長

 

クラッキング耐性は? ⇒ WhiteBox暗号方式での実装による耐タンパ性の確保

攻撃者がセキュリティの低い動作環境でデバッガなどによる静的・動的解析を行っても、鍵やアルゴリズムに関する情報を割り出す事が困難。ライブラリは暗号(公開用)ライブラリと復号(秘密用)ライブラリの構成となっている。暗号ライブラリを公開しても、対応する復号ライブラリは安全であり、RSAなど公開鍵(非対称鍵)方式を適用するシステムにも使用可能。

暗号強度は? ⇒ AES 相当(256bit)

ランダム性、線形攻撃耐性、差分攻撃耐性などの、重要な評価指標に関して、AESと同等の暗号強度。

従来WhiteBox暗号とどう違う? ⇒ クラッキング耐性を一層強化

WhiteBox AESは入出力対応攻撃に弱いが、 独自の内部処理設計によりこれを強力に防止(WhiteBox AESより強い)。WhiteBox AESに対する攻撃(BGE攻撃)に対し、独自対策を強力実施済。

パフォーマンスは? ⇒ クラッキング耐性を確保しながら高速処理を実現

高速なAES(非WhiteBox)と遜色ない処理速度を実現。WhiteBox AESよりも各段に高速。

プログラムサイズは? ⇒ コンパクトなコードサイズ

従来のWhiteBox AESの実装に比べ大幅なコンパクト化を実現。

対応プラットフォームは? ⇒ C言語での開発プラットフォームに対応

以下のOSに対応しています。

  • Windows 32bit, 64bit
  • Android
  • iOS
  • Linux(開発中)

diaCryptoの特性を活かした使用方法

暗号/復号ソフトウェア(アルゴリズム)の解析が不可能(耐タンパ性が高い)
  • WhiteBox暗号としての実装による特性
  • ツール等による静的解析、動的解析を行っても暗号化のアルゴリズム、鍵などの秘密情報を割り出すことが不可能
使用方法

PC、スマートフォンなどセキュリティの低い環境での既存暗号(AESなど)からの置き換え(セキュリティ向上)

クラッキングの動機付けとなる要因が多い環境下でのセキュリティを向上させる。
セキュリティの低い環境とは以下のような環境。
・プラットフォームが標準化されている
・開発ツールが揃っていて容易・安価に入手できる
・ユーザの利用するアプリが豊富にあるプラットフォーム(不正使用の潜在需要が大きい)


暗号ライブラリと復号ライブラリで独立したセキュリティを確保
  • ベースはAES(共通鍵(対称鍵)暗号方式)だが、WhiteBox暗号としての実装により、暗号側と復号側各々の秘密情報が独立したものになる。
  • 暗号側、復号側のどちらか一方の動作を細かく解析できたとしても、その情報から、他方の処理に関する秘密情報を類推したり、処理を復元したりすることが不可能。
使用方法

サーバー・クライアントシステム

改ざんのリスクの大きいシステムへの適用
共通鍵(対称鍵)暗号方式では、クライアント側での復号処理を解析されると、サーバ側で暗号処理の秘密情報が割り出され、重要なデータの改ざんやなりすましが発生する。独立したセキュリティの確保により、このような被害を防止することができる。


RSAなど公開/秘密鍵(非対称鍵)方式と同様の用途が可能(認証用途)
  • 暗号/復号ライブラリの一方を公開することが可能
使用方法1

通信データの機密性向上(公開用ライブラリで暗号化→秘密用ライブラリで復号)

サーバー・クライアントシステムなどにおいて利用
クライアント側は公開用ライブラリを使ってサーバへ送信するデータを暗号化。サーバは受信したデータを対応する秘密用ライブラリで復号。
暗号化した送信データを悪意ある第三者が入手したとしても、復号することは不可能なため、通信データの機密性を向上できる。

使用方法2

電子署名用途(秘密用ライブラリで暗号化→公開用ライブラリで復号)

送信データに対して秘密用ライブラリで暗号化することで”自分”にしか作成出来ない送信データ(署名)を作成。受信者は、対応する公開用ライブラリで復号する。これにより、送信データの正当性が立証される。

他暗号との比較表

AES RSA WhiteBoxAES diaCrypto
暗号強度
クラッキング耐性 ×
入出力対応攻撃、BGE攻撃への耐性有り
パフォーマンス
(処理速度)
×
プログラムサイズ ×
暗号処理、復号処理
の独立性
×
認証用途での利用 ×
遅い

非常に速い

ライブラリ使用環境

Windows Android iOS
開発言語 C / C++ C / C++ C / Objective-C
ターゲットソフトウェア Windows 32bitアプリケーション(Dll含む) Androidアプリケーション用 ネイティブライブラリ(.so) iOSアプリケーション
アーキテクチャ IA-32 armeabi / armeabi-v7a
/ x86
armv7 / armv7s / arm64
/ i386 / x86_64
コンパイラ/開発環境 Visual C++
(Ver6.0以降)
Android NDK
(Android NDKと連携する統合開発環境を含む)
XCODE 6.1以降(XCODEと連携する統合開発環境を含む)

ライセンス形態・製品価格

diaCryptoのライセンス形態および製品価格についてはこちらからお問い合わせ下さい。
お問い合わせフォーム

Learn more about diaCrypto

ダイアクリプトについてさらに詳しく知る

対となる公開用ライブラリ(ENC) / 秘密用ライブラリ(DEC) API

暗号ライブラリのAPIはENC(暗号化処理), DEC(復号処理) の対で構成されます。ENCで暗号化したデータは、DECで元に戻すことが(復号)できます。 DECでの変換を暗号化とみなし、これをENCで元に戻す処理を復号とみなす事も可能です。
より高セキュリティ/高パフォーマンスを持つ公開用ライブラリ(ENC)

秘密用ライブラリ(DEC)に対して公開用ライブラリ(ENC)がより強いクラッキング耐性、高パフォーマンスを持つ設計のため、セキュリティの低い環境での動作や、速い応答が求められる側に公開用ライブラリ(ENC)の配置をお薦めします。
ENC / DEC で独立したライブラリ

ENC と DEC のAPIは別々のライブラリファイルに分けてご提供。暗号化するアプリケーション、復号するアプリケーションのそれぞれに必要なライブラリだけを組み込みます。
ENC / DEC のクラッキング耐性

ENC 及び DECは、WhiteBox暗号として実装されている為、どちらか一方(例えばENC)を解析しても、他方(DEC)の情報を引き出し復元する事は現実的に不可能です。
データ改ざん・捏造への強い耐性

仮に暗号データが解読できたとしても、これを改変し再暗号する事は現実的に不可能です。
認証用途への応用

ENC(公開用ライブラリ)により暗号化されたデータは、対になる(同一のパラメータを持つ)DEC(秘密用ライブラリ)以外では復号することができません。また、逆の場合(DECにより暗号化→ENCにより復号)も同様です。「暗号データの復号成功 = データの正当性立証」 という特性を生かし、認証用途でも利用することが可能です。
お客様に応じたパラメータ割り当て・運用

あるユーザが利用しているライブラリが漏えいしたとしても、他のお客様にはセキュリティ上何の影響もありません。

Supports

ホワイトボックス暗号 diaCryptoに関するサポート情報

Under construction.

Contact Us

本製品について今すぐお問い合わせ

製品に関するお問い合わせ