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 | 各要素を構成する | 
 
  