本文へスキップ

令和元年度 秋期 ITパスポート試験 問70

この問題の解説と、これまでの解答の記録です。

問70
頻出度★★★

大文字の英字から成る文字列の暗号化を考える。暗号化の手順と例は次のとおりである。この手順で暗号化した結果が“EGE”であるとき,元の文字列はどれか。

暗号化の手順例 “FAX”の暗号化<br>処理前例 “FAX”の暗号化<br>処理後
1表から英字を文字番号に変換する。FAX5, 0, 23
21文字目に1,2文字目に2,n文字目にnを加算する。5, 0, 236, 2, 26
326で割った余りを新たな文字番号とする。6, 2, 266, 2, 0
4表から文字番号を英字に変換する。6, 2, 0GCA
英字ABCDEFGHIJKLM
文字番号0123456789101112
英字NOPQRSTUVWXYZ
文字番号13141516171819202122232425
出典 令和元年度 秋期 ITパスポート試験 問70
解説

問 70復号(暗号を元に戻す)は暗号化手順を逆順・逆演算でたどること

  • 不正解ア

    BED を暗号化すると B,E,D=1,4,3 に 1,2,3 を加算して 2,6,6、26の余りも 2,6,6 で C,G,G=“CGG”となり、“EGE”にならない。

  • イ

    正解 復号は暗号化手順を逆にたどる。まず暗号文“EGE”を文字番号に変換すると E=4, G=6, E=4。暗号化の手順2では n 文字目に n を加算していたので、復号ではその逆に n 文字目から n を減算する(負になれば26を足す)。1文字目: 4-1=3 → D、2文字目: 6-2=4 → E、3文字目: 4-3=1 → B。したがって元の文字列は“DEB”となり、選択肢イが正しい。念のため順算で確認すると、DEB=3,4,1 にそれぞれ 1,2,3 を加算して 4,6,4、26で割った余りも 4,6,4 で E,G,E=“EGE”となり、与えられた暗号文と一致する。

  • 不正解ウ

    FIH を暗号化すると F,I,H=5,8,7 に 1,2,3 を加算して 6,10,10、26の余りも 6,10,10 で G,K,K=“GKK”となり、“EGE”にならない。

  • 不正解エ

    HIF を暗号化すると H,I,F=7,8,5 に 1,2,3 を加算して 8,10,8、26の余りも 8,10,8 で I,K,I=“IKI”となり、“EGE”にならない。

ここがポイント
  • 復号(暗号を元に戻す)は暗号化手順を逆順・逆演算でたどること。加算していた分を減算し、変換していた対応表を逆引きする。
  • 位置に依存するシーザー暗号型の換字暗号。n 文字目に n を加え26で法をとるので、復号時も n 文字目から n を引き26で法をとって元の文字番号を求める。
用語

解答の記録