Home / 記事 / 情報セキュリティ / アプリケーションセキュリティ / 第 8 章 : 暗号化(書籍のプレビュー) / RSACryptoServiceProvider

e知識「e-chishiki.com」では、インドでの著名なIT著者、IT教育者、eセキュリティーの大家により作成された様々な種類のプログラミング言語に関する技術的なコンテンツを知識情報データーベースとして提供します。

オンライン書籍; Microsoft .NET Web アプリケーションセキュリティ

第 8 章 : 暗号化(書籍のプレビュー)

Microsoft .NET Web アプリケーションセキュリティ
Microsoft .NET Web アプリケーションセキュリティ


インドの情報セキュリティの大家が書き下ろした最新のセキュリティ書籍の一部をオンライン書籍としてご紹介します。書籍の情報は、こちらをご覧ください

RSACryptoServiceProvider

c.cs
using System;
using System.Security.Cryptography;
using System.Text;
class zzz
{
static void Main()
{
byte[] d,e,de;
UnicodeEncoding b = new UnicodeEncoding();
d = b.GetBytes("Vijay Mukhi");
RSACryptoServiceProvider r = new RSACryptoServiceProvider();
e = r.Encrypt(d, false);
for ( int i = 0; i < e.Length ; i++)
Console.Write("{0:x}",e[i]);
Console.WriteLine();
de = r.Decrypt(e, false);
Console.WriteLine(b.GetString(de));
}
}

コマンド プロンプト ウィンドウ
C:\encrypt>c
8558992b3b3d6625389dcafee0984cbc55b44de29ab7d466f3b9680261c83d95ef9d34d4624b5379
b6f86c48cecfde8b3b3d1cc1857b6c42b82308374056c434eaf982b3d121f1d5f7fbd49a6ddd858b
81b0e3fbb521bb632a311fe75834e5d8aae4443e7a9e9c3863824c46c5455229126ab999e99ceb6c
4dd1cf2c97
Vijay Mukhi

このプログラムでは、非対称暗号化の概念について説明します。対称暗号化とは異なり、暗号化に使用するキーと復号化に使用するキーが違います。このアルゴリズムでは、公開キーと秘密キーの概念を使用します。

データが秘密キーで暗号化されている場合は公開キーでのみデータを復号化でき、データが公開キーで暗号化されている場合は秘密キーでのみデータを復号化できます。2 つのキーがセットで生成され、どちらを公開キーとして使用し、もう一方を秘密キーとして保持するかは、ユーザーが決定します。共有するキーは公開キーであり、共有しないキーは秘密キーです。

バイト配列を文字列に変換するには、UTF8 メソッドの代わりに UnicodeEncoding クラスを使用します。出力では 「Vijay Mukhi」 と示されますが、Unicode 形式になっています。

c.cs
..
Console.WriteLine(Encoding.UTF8.GetString(de));

コマンド プロンプト ウィンドウ
..
V i j a y M u k h i

これを UTF8 に変更すると、「Vijay Mukhi」 と表示されます。

暗号化するテキストを最初にバイト配列に変換し、サービス プロバイダ クラス RSACryptoServiceProvider をインスタンス化します。これはシールド クラスであり、384 ビットから 16384 ビットまで、8 ビット刻みで増えるサイズをサポートします。バイト配列のデータを暗号化するには Encrypt メソッドを使用し、復号化には Decrypt メソッドを使用します。暗号化クラスは、使用するのはとても簡単ですが、内部で行われていることを理解しようと思ったら一生あっても足りないでしょう。

この場合、キーはアルゴリズムによって生成されるので、任意のキーを使用することはできません。同じようにプログラムを作成することも、RSA サイトから入手できるプログラムを使用することもできます。

コメント

コメントするにはログイン、もしくはユーザ登録を行ってください。

発売中

LET US C(上)
インド人ITエンジニアのCプログラミングのバイブル。通算100万冊以上売れています。
― 2,520円 ―

Y. Kanetkar

発売中

Introduction to Object Oriented Programming & C++
C++を例に、多彩なサンプルコードと簡潔な説明でOOPプログラミングの実際が理解できる。
2,940

Y. Kanetkar

発売中

Microsoft .NET Web Application Security
APプログラムの作り方で不正侵入の防御率を向上させる手法を解説。今までにないセキュリティーの手法を紹介します。
3,990円

Vijay Mukhi

2008年の11月発売予定

Quest C++ ビジュアルラーニングコース
これがあれば、見て聞くだけで楽しみながらプログラミングテクニックが身につきます。
― 9,975円 ―

Y. Kanetkar Asang Dani

2008年の11月発売予定

Programmer's Guide to Web Application Security
Web System への侵入方法と原理を解説する事により、防止方法を理解することが出来る。
3,990

Vijay Mukhi

フォーラムの最新ポスト