i have no idea

I have no idea

bibouroku

やる気の出ない情報セキュリティ2 「暗号技術ことはじめ」

会社で情報セキュリティをやることになったので、勉強がてらメモ
文献は「マスタリングTCP/IP 情報セキュリティ編」

リモートワークでやることないので、勉強しているけど、勉強したくない;;
トラックの運転手とかになりたい

暗号技術

暗号技術の基礎

暗号化とは、、なんとなくわかると思いますが、守りたいデータを意味のある情報として読めないように変換することを言います。
暗号化の手順のことを暗号化アルゴリズムといい、この暗号化アルゴリズムそのものは公開されていて、誰でも使えるようになっています。
実際に平文(暗号化されていないデータ)を暗号文に変換する時に使うものを暗号化鍵といい、これは公開してはいけません。

f:id:yabicon:20210421191821p:plain
暗号化

暗号化は、情報セキュリティの3つの性質、機密性を守るもので、通信するデータを守るために必要な技術です。

暗号化アルゴリズムにはどのようなものがあるのか、今は使われていないですが、古典的なアルゴリズムを見てみましょう

  • シーザー暗号
    シーザーさん(古代ローマ)が使ったシーザー暗号です。
    どのような暗号アルゴリズムかというと、
    平文(アルファベット)の文字列の各文字を決めた分だけ、ずらすというものです。(小学生とかで自分語みたいなのを作っていた記憶があるような)

    f:id:yabicon:20210421191902p:plain
    シーザー暗号

  • バーナム暗号
    バーナムさんが発明しました。暗号化する度に平文と同じ長さの乱数列を発生させ、それを暗号化鍵とする暗号アルゴリズムです。
    この手法は、究極の暗号とも言いますが、暗号化鍵の配送はどうするのかとか、乱数列の作り方がムズイとかの観点で運用することは困難となっています
    (疑似乱数と乱数って違うらしいですよ^^;;おそるべし)

    f:id:yabicon:20210421191935p:plain
    バーナム暗号

上記の2つも含まれますが、暗号文を送信する人と受信して復号する人との間で暗号化鍵を共有する必要がある暗号化方式を、共通鍵暗号化方式といいます。
共通鍵暗号化方式は、通信する2者間で一つ鍵が必要となるので、人数が増えるに連れて、鍵の数も膨大になっていきます(1000人の通信だと、n(n-1)/2 = 499,500個必要)
また、それらの鍵を安全に共有(鍵配布)を行うのも、結構難しく、鍵交換アルゴリズムなどを使う必要があります。

f:id:yabicon:20210421192026p:plain
共有鍵暗号方式

そこで新しく発明されたのが、公開鍵暗号化方式です。最初にRSAという暗号化アルゴリズムが発明されました。
これは、暗号化鍵と復号鍵を別々にします。暗号化鍵は公開して、ほかの人との通信を受ける時にその暗号化鍵で暗号化してもらう、
復号鍵(秘密鍵)は自分でこっそり持っておいて、公開された暗号化鍵で暗号化された通信を復号する、という感じです。

f:id:yabicon:20210421192101p:plain
公開鍵暗号方式