※元のURL: http://ll.jus.or.jp/2012/doukaku-online-main.html
LL Decadeの無線LANを提供しているLLNOCチームでは、真に重要な情報を伝える場合、その情報が暗号であることを隠すため、IPアドレスやMACアドレスを用いて情報をやり取りする。IPアドレスやMACアドレスを並べただけであれば、ネットワークを扱うNOCチームなら疑われることなく送受信できる。
一行に一つ、文字列が記述される。その文字列のうちいくつかは、MACアドレス、IP v4アドレス、IPv6アドレスである。
これらの文字列を、MACアドレス -> 00
、IPv4アドレス -> 01
、IPv6アドレス -> 10
、その他 -> 11
にエンコードし、一列に並べる。
その結果をバイナリ列と見なして、ASCII文字列に変換する。
入力例:
192.168.0.23
00:00:01:22:23:34
FF:DD:BB:AA:CC:EE
2001:db8:bd05:1d2:288a:1fc0:1:10ee
123.45.67.89
12:34:56:78:9a:bc
1A-2B:2E-09:12:22
300.100.200.10
10.232.33.44
90-12-03-92-00-01
01234:22:4444:34:5555:5:f
0.100.32.10
100.200.100.200
10:20:30:01:02:03
11-22-33-44-55-66
9f34:234:1:123:45:6:FFFF:FFF
解き方:
上記のリストは、それぞれ上から順に
IPv4, MAC, MAC, IPv6, IPv4, MAC, その他, その他, IPv4, MAC, その他, MAC, IPv4, MAC, MAC, IPv6
である。
これを順に数値に直すと、
01, 00, 00, 10, 01, 00, 11, 11, 01, 00, 11, 01, 01, 00, 00, 10
となる。これを4つずつASCII文字に変換すると
B(01000010 = 0×42), O(01001111=0x4f), M(01001100=0x4c), B(01000010=0×42)
となる。
答え:
BOMB
注意:
IPv4アドレスは、8ビットの符号無し整数値(0-255)を4つ、ドットで区切ったものとする。
- 正しい例:
19.232.98.2
- 間違った例:
100.200.100.300
(300は0-255の範囲外)
IPv6アドレスは、4桁の16進数を8つ”:”で区切ったものとする。ただし、各16進数はそれぞれ、最初の0を可能な限り省略するものとする。( 0213
や 0001
はそれぞれ 213
、 1
と省略する)( 7/25: “::”を用いた省略記法は廃止しました )。
- 正しい例:
2001:1234:3210:ABCD:9876:3232:3812:FFAB
0:2000:11:1:2:3:211:10
- 間違った例:
1:2:3:4:5:6:07:8
(07の部分は0を省略するべき)
MACアドレスは、8bitの数値を符号無しの二桁の16進数を6つ”:”または”-”で区切ったものとする。16進数のアルファベットは、大文字小文字を区別しない。
区切り文字の“-”と”:”は混在しない。
- 正しい例:
00:11:22:33:44:55
1A-B2-c3-d4-e5-f6
- 間違った例:
2a:2b-40-54:10-01
なお、間違ったMACアドレス、IPv4アドレス、IPv6アドレスはその他にカウントする。
バイナリ文字列をASCIIコードに変換する際にはビッグエンディアンを用いる。
例: 0×41
-> A