暗号ライブラリ

オープンソースとして利用可能な各種の言語に対応した暗号ライブラリを紹介します.

[Java 暗号ライブラリ]

Java JDK

Java プラットフォームには,暗号化,公開鍵基盤(PKI),認証,安全な通信,アクセス制御など,主要なセキュリティ分野に渡る一連の API が定義されています.

SUN (ORACLE) の提供するJavaプラットフォームには,暗号機能を提供する以下に示す暗号プロバイダが含まれています.

BouncyCastle

BouncyCastleは,Java Cryptography Architecture (JCA/JCE)に基づいたJava暗号ライブラリです.

BouncyCastleのCrypto APIは次のものから構成されています.

提供されている主なアルゴリズムは以下です.

HP: http://www.bouncycastle.org/

FlexiProvider

FlexiProviderは,Java Cryptography Architecture (JCA/JCE)に基づいたJava暗号ライブラリです. FlexiProviderプロジェクトの目標は,高速で安全な暗号アルゴリズムの実装を提供することとされています.

次のモジュールがあります.

FlexiProviderはオープンソースであり,CoreProvider は LGPLライセンス,ECprovider および NFProvider は GPLライセンスです.

提供されている主なアルゴリズムは以下です.

HP: http://www.flexiprovider.de/

GNU Crypto

GNUプロジェクトが提供しているJava版の暗号ライブラリです.

2.0.1版では,以下の提供アルゴリズムが提供されています.

HP: http://www.gnu.org/software/gnu-crypto/

[C/C++ 暗号ライブラリ]

OpenSSL

OpenSSLは,Secure Sockets Layer(SSL v2/v3)と,世界標準の暗号プロトコルであるTransport Layer Security(TLS)を実装した強固で商用に耐えうる高機能なオープンソースのツールキットです. OpenSSLは,Eric A. YoungとTim J. Hudsonによって開発されたSSLeayというライブラリを基にしています.

OpenSSL ツールキットは,Apache 形式のライセンスが供与されています.いくつかの簡単なライセンスの制約下でなら入手と商用・非商用の利用は自由です.

OpenSSLには.コマンドラインツール(opelsslコマンド)があり,鍵や証明書の生成など幅広い暗号機能を実行できます.(→ OpenSSL コマンド操作)

使える機能には,以下のものがあります.

OpenSSL の高レベルの暗号化インタフェースである主な EVP 関数の仕様を OpenSSL EVP 関数,および OpenSSL EVP_PKEY 関数 にまとめてあります.

HP: https://www.openssl.org/

Crypto++

Crypto++ Library は,フリーの各種暗号機能を実装したC++クラスライブラリです. 高度に抽象化されたAPIを提供しており,暗号アルゴリズムの詳細はクラス内部に隠蔽されています. 最新版は、2017.2現在Crypto++ Library 5.6.5です. 動作環境は,Windows,UNIX,Macですが,すべての環境と版数の組合せでテストされているわけではありません. 開発は主としてWindowsで行われているようです. 実装されている暗号アルゴリズムは,現時点で広く知られているアルゴリズムをほぼ網羅しています.

提供されている主なアルゴリズムを以下に示します.

HP: http://www.cryptopp.com/

Network Security Services (NSS)

Mozilla.org のプロジェクトで,セキュリティ機能が必要なサーバアプリケーションの開発に利用できるライブラリ群です.

NSSでサポートしているセキュリティ標準には次のものがあります.

Network Security Services for Java (JSS)として,NSSに対するJavaインタフェースがあります.ASN.1 と BER/DERエンコーディングに対するJavaインタフェースもサポートします.

HP: https://nss-crypto.org/

[JavaScript 暗号ライブラリ]

Crypto (Node.js)

Node.js は JavaScript の実行環境 (プラットフォーム) を提供しています.Node.js により JavaScript を Webブラウザ上ではなく,サーバサイド(ローカル)で動作させることができます.

HP:http://nodejs.org/

Node.js のモジュールに暗号機能を持つ Crypto があります. Crypto は,OpenSSL のハッシュ関数,HMAC,暗号化・復号,署名生成・検証へのラッパーを提供しており,JavaScript から OpenSSLの暗号機能を利用できるようになります.

CryptoJS

CryptoJS は,JavaScript で実装された暗号機能を実現するモジュールです.

ハッシュy関数(MD5, SHA1, SHA2, etc.),HMAC,暗号(AES, DES,TripleDES, RC4 etc.) 機能が実装されています.

HP:https://code.google.com/archive/p/crypto-js/

CryptoJS を Node.js 下で使うには,Node.js に含まれるモジュール管理ツール npm を使って crypto-js をインストールします.

 npm install crypto-js 

CryptoJS をブラウザ環境で使うには,npm を使って最初にフロントエンド用のパッケージ管理ツールである bower をインストールします.

 npm install bower -g 

さらに, bower を初期化した後 crypto-js をインストールします.

 bower init
 bower install crypto-js
inserted by FC2 system