CryptoAPI 解説 総合目次
1. | 簡単な暗号化 |
---|---|
1.1 | 概要 |
1.2 | キーコンテナーを準備する |
1.3 | ハッシュ計算のインスタンスを生成する |
1.4 | ハッシュ値を計算する |
1.5 | 鍵の生成 |
1.6 | 暗号化 |
1.7 | 復号 |
1.8 | リソースの開放 |
1.9 | サンプルコード |
1.10 | ご質問・ご要望 |
1.11 | 簡単簡単な暗号化アプリを作りたい方のために |
1.12 | CSP(Cryptographic Service Provider)について |
1.12.1 | 概要 |
1.12.2 | CSPを列挙する |
1.12.3 | CSPの種類 |
1.12.4 | CSPのタイプ |
1.12.5 | CSPのタイプを列挙する |
1.12.6 | 規定のCSP |
1.13 | 鍵の生成について |
1.13.1 | 概要 |
1.13.2 | 鍵の生成 |
1.13.3 | 基本データからの鍵生成 |
1.13.4 | 基本データ |
1.13.5 | 暗号化データが必ず復号されるために |
1.14 | ブロック暗号化アルゴリズムによる簡単な暗号化 |
1.14.1 | 概要 |
1.14.2 | キーコンテナーを準備する |
1.14.3 | ハッシュ計算のインスタンスを生成する |
1.14.4 | ハッシュ値を計算する |
1.14.5 | 鍵の生成 |
1.14.6 | パディングモードの指定 |
1.14.7 | 初期化ベクタ |
1.14.8 | 暗号モードの指定 |
1.14.9 | 復号用に鍵を複製する |
1.14.10 | 暗号化 |
1.14.11 | 復号 |
1.14.12 | リソースの開放 |
1.14.13 | サンプルコード |
1.14.14 | ご質問・ご要望 |
2. | 電子証明書による暗号化 |
---|---|
2.1 | 電子証明書の入手(作成方法) |
2.2 | WindowsOSでの電子証明書の取り扱い |
2.2.1 | インストールされた電子証明書の確認方法 |
2.2.2 | 証明書ダイアログをコマンドで表示させる方法 |
2.2.3 | 証明書ダイアログ |
2.2.4 | 電子証明書の詳細 |
2.3 | CryptoAPI での電子証明書の取り扱い |
2.3.1 | CSPのハンドルを取得する |
2.3.2 | 証明書ストアをオープンする |
2.3.3 | 電子証明書を取り出す |
2.3.4 | 後始末 |
2.3.5 | 全ての電子証明書を取り出す |
2.3.6 | サンプルコード |
2.4 | 電子証明書を使った暗号化 |
2.4.1 | 公開鍵について |
2.4.2 | 暗号化における公開鍵と私有鍵 |
2.4.3 | 電子署名における公開鍵と私有鍵 |
2.4.4 | 電子証明書の準備 |
2.4.5 | 暗号化の準備 |
2.4.6 | 暗号化 |
2.4.7 | 復号の準備 |
2.4.8 | 復号 |
2.4.9 | 後始末 |
2.4.10 | サンプルコード |
2.5 | 電子証明書の詳細を表示させる |
2.5.1 | CSPの準備と電子証明書の選択 |
2.5.2 | 電子証明書の詳細を表示させる |
2.5.3 | 電子証明書を選択する |
2.5.4 | 後始末 |
2.5.5 | サンプル |
3. | 電子署名の実装 |
---|---|
3.1 | 電子証明書の入手 |
3.2 | 電子証明書 |
3.3 | CryptoAPI と電子証明書 |
3.4 | 電子署名 |
3.4.1 | 電子署名と検証 |
3.4.2 | 電子署名の準備 |
3.4.3 | 電子署名 |
3.4.4 | 署名検証の準備 |
3.4.5 | 署名検証 |
3.4.6 | 後始末 |
3.4.7 | サンプルコード |
3.5 | 電子証明書の鍵用途の確認 |
3.5.1 | KeyUsage(鍵用途)の意味 |
3.5.2 | KeyUsage(鍵用途)情報の取り出し |
3.5.3 | 電子証明書のコンテキスト |
3.5.4 | 鍵用途の重要性を確認する |
3.5.5 | サンプル |
3.6 | 電子証明書の有効性の確認 |
3.6.1 | 電子証明書の準備 |
3.6.2 | 有効期間の検証 |
3.6.3 | CA電子証明書を含めた有効期限の確認 |
3.6.4 | 後始末 |
3.6.5 | サンプル |
4. | 電子証明書、署名データ、暗号データの形式 |
---|---|
4.1 | 電子証明書のデータ形式 |
4.1.1 | 電子証明書の概要 |
4.1.2 | フォーマットの表記(ASN.1) |
4.1.3 | 電子証明書 |
4.1.4 | CryptoAPI との関係 |
4.1.5 | 電子証明書の情報 |
4.1.6 | Name型 |
4.1.7 | UTCTime型 |
4.1.8 | GenaralizedTime型 |
4.2 | 電子証明書拡張情報のデータ形式 |
4.2.1 | 拡張情報 |
4.2.2 | 標準拡張情報 |
4.2.3 | 認証局鍵識別子 (Authority Key Identifier) |
4.2.4 | サブジェクト鍵識別子 (Subject Key Identifier) |
4.2.5 | 鍵用途 (Key Usage) |
4.2.6 | 証明書ポリシー (Certificate Polices) |
4.2.7 | サブジェクト代替名 (Subject Altanative Name) |
4.2.8 | 基本制約 (Basic Constraints) |
4.2.9 | 拡張鍵用途 (Extended Key Usage) |
4.3 | 電子署名のデータ形式 |
4.3.1 | CMSの概要 |
4.3.2 | ContentInfo 情報 |
4.3.3 | Signed-data 型 |
4.3.4 | EnCapsulatedContentInfo 型 |
4.3.5 | SignerInfo 型 |
4.4 | 暗号化データの形式 |
4.4.1 | CMSの概要 |
4.4.2 | ContentInfo 情報 |
4.4.3 | 暗号化の(内部的な)手順 |
4.4.4 | Enveloped-data 型 |
4.4.5 | 受取人情報 (RecipientInfo 型) |
4.4.6 | 公開鍵を使った場合の受取人情報 (KeyTransRecipientInfo型) |
5. | 電子証明書、署名データ、暗号データとCryptoAPI |
---|---|
5.1 | 電子証明書とCryptoAPI |
5.1.1 | 電子証明書の準備 |
5.1.2 | 電子証明書のポインター |
5.1.3 | 証明書情報 |
5.1.4 | バージョンの表示 |
5.1.5 | シリアル番号の表示 |
5.1.6 | 署名アルゴリズムの表示 |
5.1.7 | 発行者名 |
5.1.8 | 有効期間 |
5.1.9 | サブジェクト |
5.1.10 | 公開鍵情報 |
5.1.11 | 拡張情報 |
5.1.12 | サンプル |
5.2 | 電子証明書の拡張情報とCryptoAPI |
5.2.1 | サンプルについて |
5.2.2 | 拡張情報のポインター |
5.2.3 | 認証局鍵識別子 (Authority Key Identifier) |
5.2.4 | サブジェクト鍵識別子 (Subject Key Identifier) |
5.2.5 | 鍵用途 (Key Usage) |
5.2.6 | 証明書ポリシー (Certificate Polices) |
5.2.7 | サブジェクト代替名 (Subject Altanative Name) |
5.2.8 | 拡張鍵用途 (Entended Key Usage) |
5.2.9 | サンプル |
5.4 | 暗号データとCryptoAPI |
5.4.1 | 暗号データの生成と概要 |
5.4.2 | データ解析の準備 |
5.4.3 | 暗号化データのセット |
5.4.4 | 受取人数 |
5.4.5 | 受取人情報 |
5.4.6 | 受取人数(CryptoAPI) |
5.4.7 | 受取人情報(CryptAPI) |
6. | CSP(Cryptographic Service Provider)のカスタマイズ |
---|---|
6.1 | サンプルのインストール |
6.1.1 | SDKの入手 |
6.1.2 | CSPの開発環境 |
6.1.3 | CSPのインストール |
Java暗号化拡張機能(JCE) 解説
1. | Java暗号化拡張機能による暗号化 |
---|---|
1.1 | 概要 |
1.2 | 共通鍵方式(秘密鍵)での暗号化 |
1.2.1 | 暗号化と復号 (自動生成鍵による) |
1.2.2 | 暗号鍵を指定して暗号化する |
1.2.3 | パスワードから暗号化鍵を生成する |
1.2.4 | パスワードベース暗号化(PBE)方式 |
1.3 | Java暗号とWindows暗号の連携 |
1.3.1 | 概要 |
1.3.2 | Javaで暗号化する |
1.3.3 | Windows APIで復号する |
1.3.4 | Windows APIで暗号化する |
1.3.5 | Javaで復号する |
2. | Javaによる電子署名 |
2.1 | 概要 |
2.2 | 電子証明書の選択 |
2.3 | 電子署名 |
3. | Javaによる電子署名の検証 |
3.1 | 概要 |
3.2 | 電子署名されたデータ |
3.3 | 署名されたデータから電子証明書を取り出す |
3.4 | Windows証明書ストアから、ルート証明書を取り出す |
3.5 | DLLおよびサンプルコード |
XML文書への暗号化と署名 解説
.NET Framework(C#)による電子署名と検証 | |
---|---|
1. | XML文書への電子署名 |
1.1 | 概要 |
1.2 | 署名されるXML文書をロードする |
1.3 | SignedXMLクラスを準備する |
1.4 | <Reference>を用意し署名方法を指定 |
1.5 | 電子証明書を準備する |
1.6 | 署名用の鍵を指定 |
1.7 | 証明書情報を準備 |
1.8 | 電子署名を実施 |
1.9 | 署名したXML文書を取得 |
1.10 | 署名結果およびサンプル |
2. | 電子証明書の選択 |
2.1 | 概要 |
Javaによる暗号化、電子署名 | |
3. | 署名と検証 |
4. | XML文書に署名する |
4.1 | XML署名とは |
4.2 | 署名されるXML文書 |
4.3 | 署名されたXML文書 |
4.4 | 電子署名のJavaアプリケーション |
4.5 | 各要素を構成する |