1
3

More than 3 years have passed since last update.

セキュリティマネジメントの勉強-暗号化技術と認証

Posted at

暗号化技術

暗号化

平文を暗号文にする
暗号化 <---> 復号

暗号化鍵、復号鍵が存在する

共通鍵暗号=秘密鍵暗号方式

暗号化鍵=復号鍵
鍵が1種なので、秘密にしておく必要あり。

利点は単純で高速。
ただし、経路の数だけ鍵が必要になる。
zipのパスワード的なやつかな。

DES

Data Encryption Standard
56bit、米国の旧国家暗号規格
今では安全性低い

RC4

ストリームで徐々に暗号化していく
WEPでつかわれている
高速だが安全性はお察し

Triple DES

DESを3回やる
でも推奨されない

AES

Advanced Encryption Standard
DES後継
XORを繰り返し行う。128bit,192bit,256bit色々あり。
XORを行う回数を段数という

Camelia

NTTと三菱が作った
AESと同等の安全性を保ちつつ、消費電力低めらしい

Kcipher-2

九州大学とKDDIが作った
ストリーム型128bit
AESより7〜10倍早い

公開鍵暗号方式

暗号化鍵≠復号鍵
公開鍵と秘密鍵のキーペアを作成。
公開鍵だけ他人に渡す。

相手の公開鍵で暗号化するから、相手は自身の秘密鍵でのみ解錠できる。
これによって守秘が実現できる。

ここで鍵とSeed値を同じように暗号化して送る事で、鍵共有が実現できる。

これとは逆に、自分の秘密鍵で暗号化して相手に送りつける事で
本人証明ができる。

RSA

Rivest Shamir Adleman
大きい数での素因数分解が厳しいという前提のもとに作られている。
2048bit以上の安全性証明ついたやつのみ推奨。
https://qiita.com/izutetsuya/items/ff0347d26d1699ae3a94
なるほど厳しそうである。

DH鍵交換

Diffie-Hellman key exchange
鍵共有の方式。
離散対数問題が安全性の根拠。
http://yougo.ascii.jp/caltar/%E9%9B%A2%E6%95%A3%E5%AF%BE%E6%95%B0%E5%95%8F%E9%A1%8C

DSA

Digital Signature Algorithm
有限体上での離散対数問題が根拠。
https://www.cryptrec.go.jp/exreport/cryptrec-ex-0602-2006.pdf

楕円曲線暗号

Elliptic Curve Cryptography:ECC
楕円曲線上の離散対数問題を根拠としている
RSAの後継で、署名アルゴリズムとしてECDSAがあるらしい

ハッシュ

改ざんを検出するが、防止はできない
同じハッシュとなるメッセージを発見するのがむずいので、衝突発見困難性という
これが強度となるらしい
すなわち、盗聴されても元の値がわからないので強みとなる

MD5

128bit。理論的に弱点がある
https://qiita.com/mogulla3/items/720c9c9731de0e906af2

SHA-1

Secure Hash Algorithm 1
NIST(アメリカ国立標準技術研究所)が規格つくった160bitハッシュ
脆弱性が既にバレているが、互換性維持の目的でのみ容認されている

SHA-2

Secure Hash Algorithm 2
NIST(アメリカ国立標準技術研究所)が規格つくった224bit以上のハッシュ
256以上が推奨されている

ソルト

パスワード変換時にいらんのくっつけて、特定しづらくするために添加するもの
レインボー攻撃(ハッシュから原文を逆算)に対して有効。

HMAC

Hash-based Message Authentication Code
メッセージに秘密鍵くっつけてハッシュにする
すなわち暗号化してハッシュする方式
強い

危殆化

策定当初は強い暗号化強度だったけど時代とともに弱くなること
CRYPTEREC(暗号監視機関)の情報を要チェックや
https://www.cryptrec.go.jp/

認証技術

認証

本人認証、メッセージ認証、時刻認証など

Authentication(二者間認証)

認証情報をアクセス先のサーバに求める方式

いわゆるbasic認証

Certification(三者間認証)

認証局とかの第三者に認証させる
PKI(Public Key Infrastructure)はこれを利用している

oauthもこれだよ、な??

デジタル署名

本人の秘密鍵を持ってる事が自分自身であることの証明になる
受信者は相手の公開鍵で解答することで真正性がわかる

これにハッシュを組み合わせて、改ざんを検出することもできる

主にRSA、DSA、ECDSAが使われる

XML署名

W3Cが勧告してる
文書全体だけじゃなくて、一部だけとか複数の文書への署名、複数人の署名に対応している
タグに使うアルゴリズムを指定するらしい

リスクベース認証

通常と違う環境からログインしたら、通常認証と追加認証を行う
Googleアカウントのあれ

メッセージ認証

送信前のハッシュと受信後のハッシュを比較することで改ざん検知する
伺かのアレ

MAC

HMACの一段階前
メッセージ認証に共有の秘密鍵を突っ込む

送金内容認証=トランザクション認証

金融機関で送金内容にメッセージ認証を行う
利用者ごとに秘密鍵を用意して、金融機関との間で共有しておく
実際に送るときはHMACとかつかって改ざん検知する

時刻認証(タイムスタンプ)

PKIとかのデジタル署名では他人の改ざんは検知できるが
本人による改ざんは検知できない
そこでタイムスタンプをくっつけて正当性を確かめる
TSA(時刻認証局)の時刻認証サービスを使って
書類のハッシュに時刻情報をくっつけ、TSAの署名を行ってタイムスタンプを作る

時刻認証によってわかること

存在性(その時刻には存在したこと)、完全性(その時刻以降改ざんされていないこと)

チャレンジレスポンス方式

認証サーバがランダムに異なる情報を送りつけて認証する(チャレンジ)
チャレンジにパスワード加えて演算した結果を返す(レスポンス)
ハッシュ使ったり、公開鍵、共通鍵暗号の3種がある
一般的なのはハッシュ

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3