課題1(11月14日提出期限) 【全員対象問題】
下記の指示に従って問題を解き、解答だけではなく、途中の経過と共に、
課題提出先(
[email protected])までメールで送信しなさい。
メール送信するとき、件名に自分の学籍番号を付けること。(正解は10通り!)
ある企業が社内のネットワーク間で極秘文書を送るのに次のような暗号を使うことにした。
使用文字とそのコード(JIS 8単位コード)
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
| 3 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
: |
; |
< |
= |
> |
? |
| 4 |
@ |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
| 5 |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
[ |
¥ |
] |
^ |
_ |
この表の左端の数は1バイトの上位4ビット(16進数)、上端の数は下位4ビット(16進数)を表す。
例えば、文字 A は 41 、記号 ¥ は 5C と表される。
暗号の作り方
暗号は、送信する文字列を次のように加工してできる:
① 送信する文字列を上のコード表を用いて16進数のコードに直す。
② コードを2進数のビット列に直す。
③ ②で得られたビット列の左端に2ビットの0、また右端に2ビットの0を余分に付ける。
④ ③で得られたビット列を左から4ビットずつ区切り、16進数のコードにする。
⑤ ④で得られたコードを暗号として送信する。
(例) 送信文が『IBM』のとき
| 送信文 |
I B M |
| ①16進数コード |
4 9 4 2 4 D |
| ②2進数ビット列 |
0100 1001 0100 0010 0100 1101 |
| ③余分な0を付ける |
0001 0010 0101 0000 1001 0011 0100 |
| ④16進数コード |
1 2 5 0 9 3 4 (暗号文) |
(1).送信文が『LUCKY』のとき、この暗号で送信される暗号文を作れ。
(2).暗号文が『15105312C』のとき、送信文を解読せよ。
(3).余分な0を付ける部分を「左に3ビットのXXX、右に1ビットのX、をつける」に変更する。
ただし、XXXXの部分は、各自の学籍番号の最後の数字を2進数に変換したものとする。
例えば、「5」であれば「0101」として、「左に3ビットの010、右に1ビットの1、をつける」に変更する。
通信文『LOVE』を、それぞれの学籍番号に応じて、暗号に直せ。
(以上3問)
最終更新:2013年11月10日 17:18