令和元年度 秋期 ITパスポート試験 問70 解説 暗号化手順の逆算
大文字の英字から成る文字列の暗号化を考える。暗号化の手順と例は次のとおりである。この手順で暗号化した結果が“EGE”であるとき,元の文字列はどれか。
- ア BED
- イ DEB ✓ 正答
- ウ FIH
- エ HIF
解説
この問題を解くには、暗号化の手順を逆にたどる「逆変換」を行います。暗号化した結果であるEGEを、元の英字に戻す手順は以下の通りです。
- EGEの各文字を番号に変換します。Aを0として順に割り振ると、Eは4、Gは6、Eは4となります。つまり、番号は です。
- 暗号化で加算した 番目の値を逆に引きます。
- 1文字目:
- 2文字目:
- 3文字目:
- 得られた数値 を再びアルファベットに戻します。 と対応しているため、 はD、 はE、 はBとなり、元の文字列は DEB となります。
暗号化の仕組みと逆変換の考え方 暗号化とは、元のデータを一定のルールに基づいて別の形式に変換することを指します。この問題のように、手順が明確な計算式で表されている場合、その逆算を行うことで元のデータを復元できます。これを復号といいます。ITパスポート試験では、このような論理的思考力を問う問題が頻出します。計算の過程を丁寧にメモし、特に「文字数や桁数によって処理が変わる」点に注意を払うことが重要です。
この手の問題で間違いを防ぐコツ 試験では、単純な計算ミスが最も危険です。今回の問題では、アルファベットを数字に直す際、「Aを0とするのか1とするのか」を必ず例題(FAXの例)から確認してください。例題を見ると、Fが5、Aが0、Xが23とあります。これはアルファベット順に0から25までを割り当てたものであると特定できます。 また、もし計算結果がマイナスになったり、26以上になったりする場合は、アルファベットが26文字で循環していることを考慮する必要があります(モジュロ演算)。今回は単純な引き算で済みましたが、応用問題では26を足したり引いたりして範囲内に収める処理が必要になるケースも覚えておきましょう。
情報セキュリティの基礎としても重要な考え方 この暗号化手法は、シーザー暗号を少し複雑にしたような単純な換字式暗号の一種です。実際のネットワーク通信で使われるAESやRSAといった強力な暗号化アルゴリズムとは異なりますが、「ルールを知っている者だけが復号できる」という暗号の基本的な考え方は共通しています。アルゴリズムを追う力は、プログラムの処理フローを理解する力にも直結するため、この種の問題に慣れておくことは非常に有効です。
- ITパスポート試験ドットコム 解説ページ