忍者ブログ
情報処理技術者試験の合格を目指す全受験者のための、1問1問「徹底解説」ブログです。単なる過去問の暗記ではなく、なぜその答えになるのかを本質的に理解できるよう解説します。書籍などでは学べない最新用語やトレンドを踏まえてご紹介します。

【情報セキュリティ】究極の力技!「鍵全数探索攻撃(ブルートフォースアタック)」|情報処理問題1000本ノック

どれほど数学的に完璧な暗号アルゴリズムであっても、この攻撃を理論上回避することはできません。暗号の「鍵の長さ(ビット数)」の重要性を教えてくれる基本攻撃を攻略しましょう。

1. 【 問題 】:暗号に対する攻撃手法

【 問題 】 共通鍵暗号などの暗号文を解読するための手法の一つで、暗号アルゴリズムの数学的な弱点を突くのではなく、理論上存在し得るすべての秘密鍵のパターンを一つずつ順番に試していくことで、正しい鍵を特定しようとする攻撃手法はどれでしょうか?

① 選択暗号文攻撃
② 鍵全数探索攻撃(ブルートフォースアタック)
③ 差分暗号解読法
④ レインボーテーブル攻撃

2. 正解:

正解: ② 鍵全数探索攻撃(ブルートフォースアタック / 総当たり攻撃)

3. 解説:宇宙の年齢を使っても終わらない壁を作る

鍵全数探索攻撃(Brute-force attack)は、知恵を一切使わずに「数打てばいつかは当たる」を地で行く攻撃です。暗号の仕組み(アルゴリズム)がどれだけ頑丈でも、この攻撃だけは絶対に防げません。

【どうやってこの攻撃に耐えているのか?】

・防ぐ唯一の手段は、「全パターンを試すのに、天文学的な時間をかからせる(計算量的安全性)」ことです。そこで重要になるのが「鍵の長さ(ビット数)」です。

■ 鍵の長さとパターンの増え方
・鍵が「56ビット(昔のDES暗号)」の場合:パターン数は $2^{56}$(約7.2京通り)。現代のスーパーコンピュータなら数時間〜数日で全件試せてしまうため、もう安全ではありません。
・鍵が「128ビット(現代のAES暗号など)」の場合:パターン数は $2^{128}$ 通り。これは世界の全コンピュータを総動員して宇宙の年齢(約138億年)の何倍もの時間をかけても、1%すら試せない桁外れの数字になります。
→ つまり、全数探索をされても「生きている間に終わらない」から安全、というのが現代暗号の強さの根拠です。
[ 選択肢のひっかけポイント ]
★ ①・③:これらは暗号の「数学的な構造の弱みや、数式のクセ」を突いて、全数探索よりも遥かに少ない手回数で鍵を破ろうとする、高度な暗号解読法です。
★ ④:ハッシュ値から元のパスワードを逆引きするために、あらかじめ計算しておいた膨大なデータを悪用する、パスワードクラックの手法です。

1. 理解のコツ: 「4桁のダイヤル式の南京錠」をイメージしてください。番号の法則が分からなくても、`0000` から `9999` まで1万通りをカチカチと全部試せば、いつかは絶対に開きますよね。この「1つずつ全部試す力技」鍵全数探索攻撃です。もしこれが「100桁のダイヤル」になったら、人間が一生かけても全数探索できなくなるのと同じ原理です。
2. 試験対策の視点: 「秘密鍵を1つずつ推測(試す)」「すべての鍵のパターンを網羅」「ブルートフォース」という言葉が出たら鍵全数探索攻撃が正解です。パスワードを総当たりする「ブルートフォースアタック」と同じ意味ですが、暗号の世界では特に「鍵(キー)の全数探索」という表現で出題されます。


4. まとめ

「あらゆる鍵の可能性を片っ端から試していく、シンプルながら最も確実な暗号攻撃」。これが鍵全数探索攻撃です。コンピュータの性能が上がれば上がるほど、この攻撃のスピードも速くなるため、私たちは時代に合わせて鍵のビット数を長く(128bit ➡️ 256bitなどへ)アップデートし続ける必要があります。


PR

【情報セキュリティ】現代暗号の絶対的な黄金律!「ケルクホフスの原理」|情報処理問題1000本ノック

「仕組みを秘密にすることで安全を守る」という素人考えを完全に否定し、現代のオープンな暗号開発の礎となった、セキュリティの最重要思想を攻略しましょう。

1. 【 問題 】:暗号設計の基本原則

【 問題 】 暗号システムを設計・運用する際の基本的な考え方を示した「ケルクホフスの原理」の説明として、最も適切なものはどれでしょうか?

① 暗号の安全性を高めるためには、暗号化や復号のアルゴリズム(仕組み)そのものを極秘に保ち、第三者に絶対に公開してはならない。
② 暗号システムは、秘密鍵(キー)以外のすべての情報(アルゴリズムや仕様など)が敵に知れ渡ってしまったとしても、なお安全であるように設計されなければならない。
③ 暗号化に使用する鍵の長さ(ビット数)を2倍に増やせば、解読にかかる計算時間は単純に2倍(比例)の関係になるという原則である。
④ どれだけ複雑な暗号であっても、十分な長さの「既知の平文と暗号文のペア」が手に入れば、すべての暗号は理論上必ず解読できるという法則である。

2. 正解:

正解: ② 暗号システムは、秘密鍵(キー)以外のすべての情報が敵に知れ渡ってしまったとしても、なお安全であるように設計されなければならない。

3. 解説:隠すのは「鍵」だけ。仕組みはオープンに!

19世紀の暗号学者オーギュスト・ケルクホフスが提唱したこの原則は、現代のITセキュリティの根底を支えています。これと真逆の「仕組みを隠すことで安全にしようとする行為」は、現在では「隠蔽によるセキュリティ(Security through obscurity)」と呼ばれ、最も危険で脆弱な設計であると忌み嫌われています。

【なぜアルゴリズムを公開したほうが安全なのか?】

バグや弱点の早期発見:仕組みをオープン(公開)にすれば、世界中の天才数学者やホワイトハッカーたちがこぞって「この数式に欠陥はないか?」と検証してくれます。誰も破れなかったアルゴリズムだけが、本当に強い暗号として生き残ります。
仕組みの漏洩リスクの克服:もし「仕組みの秘密性」に頼った暗号を作ってしまうと、開発メンバーの裏切りや、ソースコードの流出(ハッキング)が起きた瞬間に、そのシステムは一撃で全滅(永久に解読され放題)になります。
→ だからこそ、「仕組みは敵も知っている」という前提で、ただ1つの「鍵のランダムさ」だけで安全性を担保するのが、ケルクホフスの原理の真髄です。
[ 選択肢のひっかけポイント ]
★ ①:これは「隠蔽によるセキュリティ」の説明であり、ケルクホフスの原理とは真逆の、やってはいけないアンチパターン(失敗例)です。
★ ③:鍵の長さ(ビット数)を1ビット増やすと、試すべき総当たりパターンは「2倍(指数関数的)」に膨れ上がります。単純な比例ではありません。

1. 理解のコツ: 「お家の玄関のドアの鍵」をイメージしてください。ドアがどこのメーカー製で、どういう構造で、どうガチャリと回るか(アルファベットの仕組み)は、パンフレットを見れば泥棒でも知ることができます。それでも泥棒が家に入れないのは、「世界に1つしかない、あなただけの鍵(秘密鍵)」を持っていないからです。仕組みがバレていても、鍵がなければ開かない。これがケルクホフスの原理です。
2. 試験対策の視点: 「秘密鍵以外の全てが知られたとしても」「アルゴリズムを公開しても安全」という思想が問われたら一発でケルクホフスの原理です。情報処理技術者試験だけでなく、セキュリティに関わるすべてのエンジニアが最初に叩き込まれる「概念問題」の最高峰です。


4. まとめ

「秘密鍵さえ隠し通せば、仕組みがすべて敵の手に落ちても絶対に破られない堅牢さ」。これがケルクホフスの原理です。現代の暗号(AESやRSA、SSL/TLSなど)がすべてオープンソース(仕様公開)で開発・運用されているのは、まさにこの原理が正しいことを歴史が証明しているからに他なりません。



【情報セキュリティ】頻度分析を無効化する!「多表式換字暗号」|情報処理問題1000本ノック

単一換字暗号の「同じ文字はいつでも同じ文字に化ける」という弱点を、複数の変換表をカチカチと切り替えることで克服した歴史的名作、多表式換字暗号を攻略しましょう。

1. 【 問題 】:古典暗号の高度化

【 問題 】 暗号技術の一種である「多表式換字暗号」に関する記述として、最も適切なものはどれでしょうか?

① 平文のアルファベットを一定の文字数だけ一律に後ろにずらすことで暗号化を行う。
② 暗号文に含まれる各文字の出現頻度を調べる「頻度分析」を用いれば、文字数に関わらず一瞬で解読できる。
③ 平文を $n$ 文字のブロックに区切り、そのブロック内の位置に応じて異なる変換規則(複数の換字表)を切り替えて適用することで、同じ文字であっても異なる文字に暗号化されるようにした方式である。
④ 平文の文字の並び順(位置)そのものを一定の規則でシャッフルすることによって暗号化を行う方式である。

2. 正解:

正解: ③ 平文を $n$ 文字のブロックに区切り、そのブロック内の位置に応じて異なる変換規則(複数の換字表)を切り替えて適用することで、同じ文字であっても異なる文字に暗号化されるようにした方式である。

3. 解説:同じ「A」を違う文字に化けさせるマジック

多表式換字暗号(Polyalphabetic Cipher)は、その名の通り「多」くの「表」(文字の対応ルール)をぐるぐると切り替えながら暗号化する仕組みです。代表例として有名なのが「ヴィジュネル暗号(Vigenère cipher)」です。

ヴィジュネル暗号で使われる26本のアルファベットが1文字ずつずれて並んだ変換マトリクス表(ヴィジュネル方陣)
【多表式換字暗号の劇的な進化】

■ 仕組み:鍵の文字数($n$文字)でループする
・例えば「DOG」(3文字のブロック、すなわち $n=3$)という言葉を鍵に選んだとします。
・平文の1文字目は「D(3つずらす表)」、2文字目は「O(14個ずらす表)」、3文字目は「G(6個ずらす表)」を使い、4文字目はまた「D」に戻る、というように変換ルールを1文字ごとに次々と切り替えます

■ なぜ「頻度分析」に強いのか?
・平文で「AAAAAA」と「A」が連続していても、暗号化すると「GQXGQX...」のように全く違う文字の羅列になります。
・これにより、単一換字暗号の致命的な弱点だった「言語ごとの文字の出現確率の偏り(指紋)」が完全にシャッフルされて見えなくなるため、単純な頻度分析では手も足も出なくなります。
[ 選択肢のひっかけポイント ]
★ ①:これは単一換字暗号の一種である「シーザー暗号」の説明です。
★ ②:多表式暗号は、頻度分析を「通用しなくさせるため」に開発されたものです(鍵の長さ $n$ が見破られない限り、単純な頻度分析では解読できません)。
★ ④:これは「転置(てんち)暗号」の説明です。

1. 理解のコツ: 「合言葉によってガラリと形を変える暗号」です。前回の単一換字暗号が「A君の口癖はいつでもバレバレ」だったのに対し、多表式暗号は「1文字目はA君の癖、2文字目はB君の癖、3文字目はC君の癖……」と、話す人を文字ごとにチェンジしているようなものです。これでは外から聞いていても、誰の癖(統計データ)を基準に解読すればいいのか分からなくなります。
2. 試験対策の視点: 「平文を$n$文字のブロックに区切る」「文字ごとに変換規則(表)が異なる」「同じ文字が異なる文字に暗号化される」という特徴が並んだら「多表式換字暗号(ヴィジュネル暗号)」が正解です。歴史上の暗号の進化の系譜(シーザー ➡️ 単一換字 ➡️ 多表式換字)の最高到達点として非常に出題価値の高いキーワードです。


4. まとめ

「鍵となる文字数($n$)の周期で複数の変換表を切り替え、文字の統計的特徴を消し去る古典暗号」。これが多表式換字暗号です。この「文字ごとにルールを切り替える」という複雑化のアプローチは、大戦中にドイツ軍が使用した有名な暗号機「エニグマ」や、現代の最新の共通鍵暗号のアルゴリズムへと脈々と受け継がれています。


【開発技術】設計とテストを同時に走らせる!「Wモデル」|情報処理問題1000本ノック

「テストは開発が終わってからやるもの」という常識を覆し、超早期からバグを潰しにいく。Vモデルを進化させた現代的なプロセス「Wモデル」を攻略しましょう。

1. 【 問題 】:開発とテストの並行プロセスモデル

【 問題 】 ソフトウェア開発における「Wモデル」の特徴に関する記述として、最も適切なものはどれでしょうか?

① 開発工程の成果物が完成した後に、初めて対応するテスト工程の準備を開始するモデルである。
② 開発工程(要件定義・設計など)とテスト工程(テスト設計・テストケース作成など)を同時並行で進め、上流工程の段階から仕様の矛盾や不備(バグ)を早期に発見・修正していくモデルである。
③ ソフトウェアの機能を細切れに分割し、1週間から数週間という短い周期(スプリント)の開発を何度も繰り返すモデルである。
④ プログラムのコードを書く前に、まずテストコードを先に作成してから実装を始める開発手法である。

2. 正解:

正解: ② 開発工程とテスト工程を同時並行で進め、上流工程の段階から仕様の矛盾や不備を早期に発見・修正していくモデルである。

3. 解説:コードを書く前に、設計書を「テスト」する

従来のVモデルでは、左側の「設計」が終わってから、右側の「テスト」に進んでいました。しかし、これだと「要件定義や基本設計の段階で埋め込まれた勘違い(バグ)」が、開発の最後(システムテストなど)になるまで見つからないという大問題がありました。これを解決するのがWモデルです。

【Wモデルの同時並行の仕組み】

Wモデルでは、2つのV(開発のV、テストのV)を最初から同時に走らせます。

・システムエンジニアが「要件定義(開発のV)」をしている横で、テストエンジニアは「システムテストの計画・設計(テストのV)」を始めます。
・テストエンジニアが「この仕様だと、こういうパターンでテストできませんよ?」と突っ込むことで、コードを1行も書く前の「設計書の段階」でバグ(矛盾や考慮漏れ)を見つけて直すことができます。
→ これをテストの世界では「シフトレフト(テストの左前倒し)」と呼び、Wモデルはその代表例です。
[ 選択肢のひっかけポイント ]
★ ①:これは従来の「Vモデル」の説明です。
★ ③:これはアジャイル開発(スクラムなど)の説明です。
★ ④:これは「TDD(テスト駆動開発)」という、実装テクニックの説明です(Wモデルはプロジェクト全体のプロセスを指します)。

1. 理解のコツ: 「映画の撮影」に例えてみましょう。台本(設計書)が完成して、撮影(コーディング)が終わってから、最後に編集(テスト)で「あれ?このシーン、前後の繋がりがおかしいぞ!」と気づいたら、俳優を呼び戻して大がかりな再撮影(手戻り)になります。そうではなく、台本を作っている段階から編集者(テスト担当)も一緒に読み合わせをして、その場で矛盾を直していく。これがWモデルです。
2. 試験対策の視点: 「開発とテストを同時並行(並行して進める)」「上流工程からテスト活動を行う」「手戻りの削減」といったフレーズがあればWモデルが正解です。Vモデルとの違いを明確に突いてくるため、2つの違い(終わってからやるV、同時にやるW)を意識して覚えておきましょう。


4. まとめ

「設計とテスト設計をパラレル(同時並行)で走らせ、超早期にバグを刈り取るモデル」。これがWモデルです。バグは下流で見つけるほど修正コストが何倍にも膨らむため、上流で潰せるWモデルは、品質管理・コスト削減において極めて強力なアプローチです。


【データベース】2回目も絶対に同じ値!「Repeatable Read」|情報処理問題1000本ノック

Read Committedからさらに防御力を高め、「データの書き換わり」まで完全にロックするレベルです。何が防げて、何が防げないのかの境界線を見極めましょう。

1. 【 問題 】:トランザクション分離レベルの識別

【 問題 】 データベースのトランザクション分離レベルのうち、「ダーティリード」だけでなく、同一トランザクション内で同じデータを繰り返し読み込んだときに値が変わってしまう「ノンリピータブルリード(非反復読み取り)」の発生まで完全に防止されるものはどれでしょうか?
ただし、他のトランザクションが新しい行を挿入することによって、2回目の検索時に1回目にはなかったデータが出現する「ファントムリード」の発生は許容されるものとします。

① Read Uncommitted
② Read Committed
③ Repeatable Read
④ Serializable

2. 正解:

正解: ③ Repeatable Read(反復可能読み取り)

3. 解説:「自分が触った本には、鍵をかける」世界

Repeatable Read(リピータブル・リード)は、その名の通り「同じ読み取り(Read)が反復(Repeat)できる」ことを保証するレベルです。

【どうやってノンリピータブルリードを防いでいる?】

・このレベルでは、自分が1回データを読み込むと、データベースはそのデータに対して「トランザクションが終わるまで、他人は変更しちゃダメ」という強力なロック(共有ロック)を維持します。
・そのため、他人が途中で値を書き換えてコミットしようとしても、自分の処理が終わるまで待たされることになります。
・結果として、自分が2回目に同じ場所を読んだとき、1回目と1の位まで完全に同じ値であることが保証されます。
【しかし、なぜ「ファントムリード」は防げない?】

・Repeatable Readがロックするのは、あくまで「自分が既に読み込んだ既存の行」だけです。
・まだ存在していない、空いているスペース(隙間)まではロックしていません。
・そのため、他人がその隙間に「新しい行をポロッと追加してコミットする」ことは禁止できません。その結果、2回目の範囲検索(例:歳が20歳以上の人を全件取得)をしたときに、1回目にはいなかったメンバーが幻(ファントム)のように現れてしまうのです。

1. 理解のコツ: 図書館の席に例えてみましょう。「自分が一度手に取って机に置いた本(既存のデータ)」は、席を立つまで誰にも触らせないようガッチリ抱え込んでいます(ノンリピータブル防止)。しかし、「隣の空いている席に、誰かが新しい本を新しくポンと置いていく(ファントムリード)」ことまでは防げない、というイメージです。
2. 試験対策の視点: 問題文に「リピータブルリード(非反復読み取り)は防止される」かつ「ファントムリードは許容される(発生する)」とあれば、100%この Repeatable Read が正解になります。英語名そのままで問題文に出ることが多いので、言葉の意味さえ掴めば一瞬で解けるサービス問題です。


4. まとめ

既存データの書き換えを絶対に許さない、非常に堅牢な分離レベルがRepeatable Readです。
※ちなみに、MySQL(InnoDB)という有名なデータベースでは、このRepeatable Readをさらに独自の技術で強化し、ファントムリードまで裏でこっそり防いでくれる仕組み(MVCC)が搭載されており、これがデフォルト設定になっています(実務知識として知っておくとカッコいい豆知識です!)。


【情報セキュリティ】言語の「癖」を見抜いて解読!「頻度分析」|情報処理問題1000本ノック

暗号文を1文字も読めなくても、使われている文字の「統計(カウント)」をとるだけで、パズルのように暗号が解けてしまう。古典暗号破りの王道、頻度分析を攻略しましょう。

1. 【 問題 】:古典暗号の解読技術

【 問題 】 単一換字暗号の解読に用いられる「頻度分析(Frequency Analysis)」の説明として、最も適切なものはどれでしょうか?

① 暗号化に使用された可能性のある鍵を、既知の単語リスト(辞書)を使って片っ端から試していく手法である。
② 暗号文の中に登場する各文字の出現確率(頻度)を数え上げ、平文(元の言語)の文字の出現確率の統計データと比較することで、文字の対応関係を推測する手法である。
③ 暗号文の一部と、それに対応する平文の一部のペア(既知平文)を分析することで、暗号化アルゴリズムそのものを特定する手法である。
④ 平文を構成するビット列に特定のノイズを混入させ、暗号化されたデータのパリティビットを検証することで鍵を特定する手法である。

2. 正解:

正解: ② 暗号文の中に登場する各文字の出現確率(頻度)を数え上げ、平文(元の言語)の文字の出現確率の統計データと比較することで、文字の対応関係を推測する手法である。

3. 解説:隠しきれない「言語の指紋」

頻度分析は、9世紀頃にアラビアの学者アル・キンディーによって考案された、世界最古の組織的暗号解読法です。人間が自然な言語(英語や日本語)で文章を書く限り、特定の文字が使われる割合には必ず「偏り」が生じるという性質を利用します。

【頻度分析の具体的なステップ(例:英語の暗号文)】

1. 元の言語の統計を知る
・一般的な英文では、最も多く使われる文字は「E」(約12%)、次いで「T」「A」「O」の順になることが統計的に分かっています。

2. 暗号文の中身をカウントする
・解読したい暗号文を調べたら、文字「X」が圧倒的に多く、全体の約12%を占めていたとします。

3. 謎を紐解く
・「ということは、この暗号文の『X』は、元の『E』のことだな!」と推測できます。これを手がかりに、2番目に多い文字、3番目に多い文字…と当てはめていくことで、1文字も読めなかった暗号がドミノ倒しのように解けてしまいます。
[ 選択肢のひっかけポイント ]
★ ①:これは「辞書攻撃(ディクショナリアタック)」の説明です。
★ ③:これは「既知平文攻撃(Known-Plaintext Attack)」の説明です。
★ ④:これは現代暗号に対する高度な数学的解読法(差分解読法など)の文脈に近く、古典的な頻度分析とは関係ありません。

1. 理解のコツ: 「声のトーンや話し方の癖」で人物を特定するようなものです。仮に顔をマスクで隠して(暗号化して)いても、その人が「〜じゃん」「ぶっちゃけ」といった口癖(頻度の偏り)を連発していれば、「あ、これはAさんだ」とバレてしまいます。文字を別の文字に変えただけの単一換字暗号は、この口癖(言語の癖)が丸見えになってしまうため、頻度分析に耐えられません。
2. 試験対策の視点: 「出現確率」「統計データと比較」「単一換字暗号の解読」というワードがあれば、迷わず頻度分析を選んでください。小説『黄金虫』や『踊る人形』などのミステリー作品でもトリックとして使われる有名な手法であり、セキュリティの歴史を問う問題として鉄板です。


4. まとめ

「言語が持つ文字の出現比率の偏りを利用して、暗号を破る統計的アプローチ」。これが頻度分析です。この頻度分析を突破(克服)するために、暗号の歴史は「1文字を毎回違う文字に化けさせる仕組み(多表換字暗号など)」へと進化していくことになります。



【情報セキュリティ】文字を1対1で置き換える!「単一換字暗号」|情報処理問題1000本ノック

暗号の歴史の出発点であり、文字の置き換えルールによって秘密を守る。しかし「言語の癖」によって解読されてしまう古典暗号、単一換字暗号を攻略しましょう。

1. 【 問題 】:古典暗号の仕組みと脆弱性

【 問題 】 暗号技術の一種である「単一換字暗号」に関する記述のうち、適切なものはどれでしょうか?

① 平文の文字の並び順(位置)を一定の規則で並び替えることによって暗号化を行う。
② アルファベットの各文字を、あらかじめ定めた別の1文字に1対1で置き換える方式であり、シーザー暗号もその一種である。
③ 暗号文に含まれる各文字の出現頻度を調べる「頻度分析」を用いても、解読することは不可能である。
④ 1文字ごとに異なる暗号化鍵(文字の対応表)を次々と切り替えて使用するため、現代のPCでも解読に膨大な時間がかかる。

2. 正解:

正解: ② アルファベットの各文字を、あらかじめ定めた別の1文字に1対1で置き換える方式であり、シーザー暗号もその一種である。

3. 解説:「A」はいつでも「X」になる

単一換字暗号(Monoalphabetic Cipher)は、文字そのものを別の文字に「換(か)える」方式です。鍵となるのは「どの文字をどの文字に変換するか」を記した1枚の対応表です。

【単一換字暗号の特徴と弱点】

■ 仕組み:1対1の固定変換
・例えば「A→X」「B→P」「C→M」というルールを決めたら、文章中のすべての「A」は例外なく「X」に変換されます。
・文字を3つ後ろにずらすことで有名な「シーザー暗号(カエサル暗号)」も、単一換字暗号の最もシンプルな一例です。

■ 致命的な弱点:頻度分析(ひんどぶんせき)
・文字を入れ替えただけなので、「元の言語が持つ文字の出現確率の偏り」がそのまま暗号文に残ってしまいます。
・例えば英語の文章では「e」や「t」が最も多く使われます。暗号文の中で一番多く登場する文字を数え上げれば、「これが元々の『e』だな」と推測され、パズルのように芋づる式に解読(頻度分析)されてしまいます。
[ 選択肢のひっかけポイント ]
★ ①:文字の位置を入れ替えるのは「転置(てんち)暗号」の説明です(換字とは対になる概念です)。
★ ③:文字の出現パターンがそのまま残るため、頻度分析に非常に弱いです。
★ ④:1文字ごとに対応表を切り替えるのは「多表(たひょう)換字暗号」の説明です。単一換字は1枚の対応表をずっと使い続けます。

1. 理解のコツ: 子供の頃に遊んだ「秘密の暗号表(あ→★、い→◆…)」と同じです。誰でも作れる手軽さがありますが、長い暗号文を作れば作るほど、文字の使い方の癖(特徴)がバレてしまうため、現代のコンピュータなら一瞬で破られてしまいます。
2. 試験対策の視点: 「文字を1対1で置き換える」「シーザー暗号」「頻度分析で解読できる」というキーワードがセットで出題されます。また、現代の共通鍵暗号(AESなど)の内部でも、この「換字(Sボックス)」と「転置(Pボックス)」という2つの仕組みを何重にも複雑に組み合わせることで、強固な暗号を作り出しています。


4. まとめ

「文字を別の文字へ固定で1対1に置き換える古典暗号」。これが単一換字暗号です。暗号としての歴史的価値だけでなく、現代暗号の基礎となる「データを形骸化させる(換字)」という重要な概念の原点として、試験に登場します。


【情報セキュリティ】誰?と何ができる?は違う!「認証」と「認可」|情報処理問題1000本ノック

情報セキュリティを学ぶ上で、避けて通れないのが「認証」と「認可」の区別です。言葉は似ていますが、役割は全く異なります。今回はその決定的な違いを攻略しましょう。

1. 【 問題 】:アクセス制御の基本

【 問題 】 情報セキュリティにおける「認証」と「認可」の説明として、適切なものはどれでしょうか?

① 認証は「本人であるか」を確認することであり、認可は「特定の操作を許可する権限」を与えることである。
② 認証は「特定の操作を許可する権限」を与えることであり、認可は「本人であるか」を確認することである。
③ 認証と認可は同じ意味であり、どちらもパスワードの入力によって完了するプロセスを指す。
④ 認証はシステムの「可用性」を高めるための手続きであり、認可は「機密性」を高めるための手続きである。

2. 正解:

正解: ① 認証は「本人であるか」を確認することであり、認可は「特定の操作を許可する権限」を与えることである。

3. 解説:「Who are you?」と「What can you do?」

この2つは独立した概念ですが、システムでは基本的に「まず認証して相手を特定し、その後に認可を行って権限を与える」という順番で処理されます。

【認証と認可の明確な違い】

■ 1. 認証(Authentication)
・目的:「あなたは誰(本人)か?」を確認する。
・手段:ID/パスワード、指紋や顔(生体認証)、ワンタイムパスワードなど。

■ 2. 認可(Authorization)
・目的:「あなたに何を許可するか(権限)?」を決める。
・手段:閲覧のみ/編集可能といった「アクセス権限(ACL)」の割り当て、管理者ロールの付与など。
[ 現実世界の身近な例:ホテルの宿泊 ]
認証:フロントで身分証を見せて「予約した本人」だと証明する手続き。
認可:渡された「ルームキー」。これにより、自分が予約した「301号室」のドアだけを開けられる(スイートルームや他人の部屋は開けられない)権限。

1. 理解のコツ: 英語のフレーズで覚えるのが最も確実です。認証は「Who are you?」、認可は「What can you do?」。この2文を頭に叩き込んでおけば、試験で絶対に迷わなくなります。
2. 試験対策の視点: 選択肢②のように、説明をあべこべ(逆)にして受験生を引っかける問題が定番です。また、近年は異なるWebサービス間で安全に「認可」の情報を渡すプロトコルである「OAuth(オーアース)」などの応用技術とも結びついて出題されます。


4. まとめ

「相手が誰かを確かめるのが認証」、「その相手に許可する行動を決めるのが認可」。これがアクセス制御の鉄則です。この2つが正しく組み合わさることで、初めて安全なセキュリティ環境が実現します。


【情報セキュリティ】バグや矛盾を許さない!「信頼性」|情報処理問題1000本ノック

情報セキュリティの7要素を解説するシリーズ、いよいよ最終回です!今回は、システムが期待通りに正しく機能し続けることを指す「信頼性」を攻略しましょう。

1. 【 問題 】:セキュリティの付加特性

【 問題 】 情報セキュリティの要素の中で、システムや処理が、意図した通りの動作や結果を一貫して出力し、不具合や矛盾が生じない特性を指すものはどれでしょうか?

① 真正性(Authenticity)
② 責任追跡性(Accountability)
③ 否認防止(Non-repudiation)
④ 信頼性(Reliability)

2. 正解:

正解: ④ 信頼性(Reliability)

3. 解説:処理の「正確さ」と「確実性」を担保する

信頼性とは、システムが勝手に誤作動を起こしたり、計算ミスをしたり、データの間違った書き換え(処理の矛盾)を起こしたりしない状態を指します。

【 情報セキュリティの7要素:総まとめ 】

[ 基本の3要素:CIA ]
1. 機密性 (C):漏洩防止。許可された人だけが使える。
2. 完全性 (I):改ざん防止。情報が正確で最新である。
3. 可用性 (A):停止防止。必要な時にいつでも使える。

[ 付加的な4要素 ]
4. 真正性:なりすまし防止。本人が作成したと証明できる。
5. 責任追跡性:ログの証拠。誰がいつ何をしたか追跡できる。
6. 否認防止:しらばっくれ防止。後から事実を否定できない。
7. 信頼性「処理の確実性」。意図した通りに正しく動作する。 ← ココ!

「意図した通りの動作や結果」「不具合がない」は、信頼性の定義です。
[ 可用性(Availability)との違いに注意! ]
可用性(A):システムが「稼働し続けている(止まらない)」こと。
信頼性(Reliability):稼働しているシステムが「正しい結果を出す(バグらない)」こと。
→ サーバーはずっと動いている(可用性は高い)けれど、計算結果が毎回バグだらけ(信頼性は低い)という状態があり得るため、試験では明確に区別されます。

1. 理解のコツ: 「ベテランの職人さん」をイメージしてください。いつも遅刻せずに出勤してくるのが「可用性」で、いざ仕事を頼んだら、絶対にミスなく完璧な製品を仕上げてくれるのが信頼性です。
2. 試験対策の視点: 「意図した通りの動作」「不具合や矛盾が生じない」「一貫した出力」という言葉が揃ったら信頼性が正解です。また、信頼性を測定する指標として「MTBF(平均故障間隔)」などの計算問題と結びつくこともあります。


4. まとめ

「システムや処理が、バグや矛盾なく期待通りの結果を出し続ける特性」。これが信頼性です。これで情報セキュリティの7要素(CIA + 4特性)がすべて出揃いました!それぞれの違いを網羅的に押さえて、試験での確実な得点源にしましょう。


【情報セキュリティ】「やってない」とは言わせない!「否認防止」|情報処理問題1000本ノック

情報セキュリティの7要素を解説するシリーズ。今回は、操作や取引が行われた事実を後から否定させない「否認防止」を攻略しましょう。

1. 【 問題 】:セキュリティの付加特性

【 問題 】 情報セキュリティの要素の中で、事象や行動が後から否定されないように、その発生を証明する特性を指すものはどれでしょうか?

① 真正性(Authenticity)
② 責任追跡性(Accountability)
③ 否認防止(Non-repudiation)
④ 信頼性(Reliability)

2. 正解:

正解: ③ 否認防止(Non-repudiation)

3. 解説:取引の「言い逃れ」を防ぐ絶対的な証拠

否認防止とは、電子取引やデータの送受信において、「確かにその操作が行われた」という客観的な事実を証明し、当事者が後から「そんなことは知らない」と主張するのを防ぐ状態です。

【 情報セキュリティの7要素:再掲 】

[ 基本の3要素:CIA ]
1. 機密性 (C):漏洩防止。
2. 完全性 (I):改ざん防止。
3. 可用性 (A):停止防止。

[ 付加的な4要素 ]
4. 真正性:なりすまし防止。本人が作成したと証明できる。
5. 責任追跡性:ログの証拠。誰がいつ何をしたか追跡できる。
6. 否認防止「しらばっくれ防止」。後から事実を否定できない。 ← ココ!
7. 信頼性:意図した通りに正しく動作する。

「後から否定されないように発生を証明する」は、否認防止の定義です。
[ 具体的な対策例 ]
デジタル署名(公開鍵暗号の応用):送信者の秘密鍵で署名するため、「本人がそのメッセージを送った」という動かぬ証拠になり、否認を防げます。
タイムスタンプ(タイムスタンプ局の利用):ある特定の時刻に、そのデータが確かに存在していたことを第三者機関が証明します。
ブロックチェーン:取引履歴がネットワーク全体で共有され改ざんできないため、取引の事実を後から否認することが不可能です。

1. 理解のコツ: 現実世界の「契約書と実印(またはサイン)」をイメージしてください。実印が押された契約書が残っていれば、後から「私はそんな契約結んでいません」と言い張っても通用しませんよね。この法的・客観的な証拠能力をデジタル上で持たせるのが否認防止です。
2. 試験対策の視点: 「後から否定されない」「発生(事実)を証明する」「しらばっくれ防止」というフレーズがあれば否認防止(ノンレピュディエーション)が正解です。特に「デジタル署名」の目的としてセットで出題されるケースが非常に多いです。


4. まとめ

「事象や行動が後から否定されないように、その発生を証明する特性」。これが否認防止です。インターネット上の電子商取引(ネットショッピングや電子契約)において、ビジネスを安全に成立させるための根幹となる要素です。