- 935 名前:デフォルトの名無しさん [2007/05/10(木) 23:31:02 ]
- 【 課題 】インターネット時代の暗号技術―噂の公開鍵を作ってみよう―
【 形態 】 Javaアプリケーション(main()で開始) 【 GUI 】制限なし 【 期限 】5月末まで 【 用語 】平分:元データ、人間が(第三者も)読むことが出来る 暗号文:第三者に解読不可能な形式に変換されたデータ 暗号化:平分を暗号化する処理 複合化:暗号文を平分に変換する処理 鍵:暗号化、複合化に必要なパラメタ 【 補足 】 公開鍵のしくみ 1番簡単な例だとインターネットを用いて商業活動などを行うとき、たとえばクレジットカードの 番号が知れ渡って悪用される危険を犯したい人はいません。 しかし本や航空券の購入などには便利です。普通、家や金庫の鍵は、所有者や所有者が開けることを許した人が鍵を持ちます。 その場合、不屈性された鍵を普通は直接手渡します。ところがインターネットではそのようなことは出来ません。 そこで考えられたのが閉める鍵と開ける鍵を別々にするという方法です。 そのように分けると閉めるための鍵はネット上で誰でも使えるようにしておいて開けるための鍵は自分だけが知っていればいいわけです。 暗号のための鍵をインターネットでやり取りするという矛盾を抱えるひつようがなくなります。 例 A氏の秘密鍵は1234,公開鍵はABCD, B社の秘密鍵は6789,公開鍵はVXYZ A氏がB社から物を買う。→他の人には知られないよう自分のクレジットカードの番号を送りたい。 (1) A氏はB社の公開鍵VXYZを使って自分のクレジットカードの番号を暗号にしてB社にメールで送る。 (2) 受け取ったB社は自社の秘密鍵(非公開)6789で複合化します。 (3) 誤ってコレが悪意のあるCさんに誤送されたりクラッキングされてもB社の公開鍵では 複合化できないのでB社の秘密鍵が漏れない限り安全 *今回の課題* 上記のアルゴリズムに従って公開鍵と秘密鍵を生成するプログラムを作って生成してください(きちんと関数わけすること) これらの鍵を使って暗号化、複合化を行うプログラムも作って結果を確認してください。 暗号化と複合化は同じ関数で引数が異なるだけというのはアルゴリズムを見ればわかると思います。(なるべくコメントをつけておくこと)
|

|