古典暗号

1970年代後半からを現代暗号とした場合、それ以前の暗号を古典暗号という

### シフト暗号
数字を決めておき、その数だけ文字をずらして暗号文を作成する
シーザー暗号とも言われる

function str_rot($s, $n = 13) {

	static $letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
	$n = (int)$n % 26;
	if(!$n) return $s;
	if($n == 13) return str_rot13($s);
	for($i = 0, $l = strlen($s); $i < $l; $i++){
		$c = $s[$i];
		if($c >= 'a' && $c <= 'z'){
			$s[$i] = $letters[(ord($c) - 71 + $n)% 26];
		} else if($c >= 'A' && $c <= 'Z'){
			$s[$i] = $letters[(ord($c) - 39 + $n)%26 + 26];
		}
	}
	return $s;
}

### 換字式暗号
換字表を作り、それに従って暗号化する
-> e, a, tの順番に出現頻度が高い。文字の偏りが出てしまう。

### 符号化
文章やデータをコンピュータで扱える形にすることを符号化という。
最もポピュラーなのは、アルファベットや数字、多少の記号だけに限定したASCIIと呼ばれる文字コード。ASCIIコードは16進数で表記することが多い。
上位(2~7)、下位(0~9a~f)の16進数でアルファベットを表現する
上位0、1に対応するのは特殊文字
helloは「68 65 6c 6c 6f」と表現できる