(updated 2022/8/16)
odコマンドを利用した暗号文の表示
-
catコマンドを用いて暗号文を表示させると文字化けしている場合が多い。
しかし、
odコマンドのオプションを1バイト単位(-t u1)、または、2バイト単位(-t u2)に選択することで、
暗号文の内容を文字化けではなく、数値で表示させることができる。
-
i)暗号文がどのような構造で、どのような数値でなければならないのか、
かつ、
ii)odコマンドがファイルの情報をどのように表示しているのか、
の2点を理解していれば、odコマンドを有効利用できると思います。
以下に、次の3種類の使い方の例を示すので参考にして下さい。違いを確認して下さい。
$ od -A d -t c -t u1 ファイル名
$ od -A d -t u1 ファイル名
$ od -A d -t u2 ファイル名
$ cat foo
WEWILLMEETATCHOFUSTATION
$ ./rsa.out -e 5 323 foo goo //公開鍵(5,323)の場合の例
$ cat goo
SgSc���gg2
2 ���W2
2c�l$
$ od -A d -t c -t u1 foo
0000000 W E W I L L M E E T A T C H O F
87 69 87 73 76 76 77 69 69 84 65 84 67 72 79 70
0000016 U S T A T I O N
85 83 84 65 84 73 79 78
0000024
$ od -A d -t u1 foo
0000000 87 69 87 73 76 76 77 69 69 84 65 84 67 72 79 70
0000016 85 83 84 65 84 73 79 78 10
0000025
$ od -A d -t u1 goo //(オプション「-t u1」の場合)
0000000 83 0 103 0 83 0 99 0 247 0 247 0 229 0 103 0
0000016 103 0 50 0 12 0 50 0 32 1 21 0 129 0 185 0
0000032 187 0 87 0 50 0 12 0 50 0 99 0 129 0 108 0
0000048 193 0
0000050
$ od -A d -t u2 goo //(オプション「-t u2」の場合)
0000000 83 103 83 99 247 247 229 103
0000016 103 50 12 50 288 21 129 185
0000032 187 87 50 12 50 99 129 108
0000048 193
0000050
$
-
2バイト単位「-t u2」の表示について
- 2バイト単位の表示で、最初の「83」は、1バイト単位での表示の 「83 と 0」を 83 + 256*0 = 83 と計算した結果である。
-
同様に、 2バイト単位の表示で13番目の「288」は、1バイト単位での表示の 「32 と 1」を 32 + 256*1 = 288 と計算した結果である。
-
したがって、暗号化したときの暗号文の数値を、上位バイトと下位バイトに分けたとき、その順序を、「下位バイト 上位バイト」の順にファイルに格納することで、odコマンドで表示したときの結果と、理論的な値が一致する。
この順序が逆になると、odコマンドで表示される値と、本来、確認したい値が一致しないことになるので注意する。