AIを使って問題を作成しています。
Prompt:
ITパスポートもしくは基本情報技術者試験に出てきそうな問題を作ってください。
問題1 [情報セキュリティ]
次のセキュリティ用語の中で、「インターネット上のウェブサイトを偽装し、ユーザーの個人情報を盗み取る攻撃手法」として正しいものはどれか。
A. スパイウェア
B. ファイアウォール
C. フィッシング
D. ディジタルフォレンジック
解説
正解:C. フィッシング
解説:
フィッシング(Phishing)は、正規の企業や組織になりすまし、メールやウェブサイトを偽装して、ユーザーの個人情報(クレジットカード番号、パスワードなど)を不正に取得する詐欺的な攻撃手法です。典型的な手法として、銀行や有名サービスを装い、偽のログインページに誘導して情報を盗み取ります。
他の選択肢の説明:
- スパイウェア:コンピュータに密かにインストールされ、ユーザーの活動を監視するソフトウェア
- ファイアウォール:ネットワークへの不正アクセスを防ぐセキュリティシステム
- ディジタルフォレンジック:デジタル機器上の電子的証拠を法的に分析する技術
問題2 [ネットワーク]
OSI参照モデルの第4層「トランスポート層」の主な役割として、正しいものはどれか。
A. IPアドレスの割り当て
B. データの経路制御
C. データの分割と再構成
D. データリンク制御
解説
正解:C. データの分割と再構成
解説:
トランスポート層(第4層)の主な役割は、上位層からのデータを適切なサイズに分割し、受信側で正しく再構成することです。代表的なプロトコルとしてTCP(Transmission Control Protocol)とUDP(User Datagram Protocol)があります。
TCPの特徴:
- 信頼性の高い通信(データの順序保証、再送制御)
- データの分割と再構成
- 接続型プロトコル
他の選択肢の説明:
- IPアドレスの割り当て:ネットワーク層(第3層)の役割
- データの経路制御:ネットワーク層の役割
- データリンク制御:データリンク層(第2層)の役割
問題3 [データベース]
関係データベースにおける「正規化」の主な目的として、最も適切なものはどれか。
A. データの高速検索
B. データの重複排除と一貫性の維持
C. データベースのサイズ縮小
D. データのグラフ化
解説
正解:B. データの重複排除と一貫性の維持
解説:
正規化は、データベース設計における重要な概念で、以下の目的があります:
- データの重複を最小限に抑える
- データの一貫性と整合性を保つ
- データ更新時の異常(更新異常)を防ぐ
- データの独立性を高める
正規化には、第1正規形から第5正規形まであり、段階的にデータの構造を改善していきます。
正規化のメリット:
- 冗長性の削減
- データ整合性の向上
- 記憶領域の効率的な利用
他の選択肢の説明:
- データの高速検索:インデックスなどが担う
- データベースのサイズ縮小:正規化の副次的な効果
- データのグラフ化:正規化とは無関係
問題4 [情報セキュリティ]
「総当たり攻撃(ブルートフォース攻撃)」の特徴として、最も適切な説明はどれか。
A. 特定の脆弱性を利用して侵入する
B. 考えられるすべてのパスワードを試行する
C. ネットワークを物理的に遮断する
D. マルウェアを自動的に削除する
解説
正解:B. 考えられるすべてのパスワードを試行する
解説:
総当たり攻撃(ブルートフォース attack)は、システムのパスワードやアクセス権を破るために、考えられるすべての組み合わせを機械的に試行する攻撃手法です。
特徴:
- 時間がかかる
- 計算リソースを大量に消費
- パスワードの複雑さに依存する
対策:
- 複雑なパスワードの使用
- アカウントロックアウト
- 多要素認証
- CAPTCHAの利用
他の選択肢の説明:
- 特定の脆弱性利用:別の攻撃手法
- ネットワーク物理遮断:セキュリティ対策の一種
- マルウェア自動削除:セキュリティソフトの機能
問題5 [アルゴリズム]
以下のアルゴリズムの中で、「最悪の計算量がO(n²)」であるものはどれか。
A. クイックソート
B. マージソート
C. バブルソート
D. ヒープソート
解説
正解:C. バブルソート
解説:
各アルゴリズムの計算量を比較します:
バブルソート:
- 最悪の計算量:O(n²)
- 単純だが非効率的
- 隣接する要素を比較し、交換を繰り返す
クイックソート:
- 平均計算量:O(n log n)
- 最悪の計算量:O(n²)(特定の入力条件)
マージソート:
- 常に O(n log n)
- 安定したソートアルゴリズム
ヒープソート:
- 常に O(n log n)
- 効率的で安定したソート
バブルソートは、配列のサイズが大きくなると非常に非効率的となります。
問題6 [システム開発]
「ウォーターフォールモデル」の特徴として、最も適切な説明はどれか。
A. 開発工程を柔軟に行える
B. 逐次的で順序立てた開発プロセス
C. プロトタイピングを重視する
D. 並行して複数工程を進める
解説
正解:B. 逐次的で順序立てた開発プロセス
解説:
ウォーターフォールモデルは、ソフトウェア開発の古典的なモデルで、以下の特徴があります:
特徴:
- 順序立てた開発プロセス
- 各工程を順番に進行
- 前の工程が完了しないと次の工程に進めない
典型的な工程:
- 要件定義
- 基本設計
- 詳細設計
- 実装
- テスト
- 運用
メリット:
- シンプルで理解しやすい
- 工程管理がしやすい
デメリット:
- 柔軟性に欠ける
- 要件変更に弱い
他の選択肢は、アジャイルモデルなど、別の開発モデルの特徴を示しています。
問題7 [ネットワーク]
IPv4アドレスのクラスC(Class C)のネットワーク範囲として、正しいものはどれか。
A. 10.0.0.0 ~ 10.255.255.255
B. 172.16.0.0 ~ 172.31.255.255
C. 192.168.0.0 ~ 192.168.255.255
D. 224.0.0.0 ~ 239.255.255.255
解説
正解:C. 192.168.0.0 ~ 192.168.255.255
解説:
IPv4のクラス分類:
クラスA:
- 先頭ビット:0
- ネットワークアドレス:1.0.0.0 ~ 126.255.255.255
- デフォルトサブネットマスク:255.0.0.0
クラスB:
- 先頭ビット:10
- ネットワークアドレス:128.0.0.0 ~ 191.255.255.255
- デフォルトサブネットマスク:255.255.0.0
クラスC:
- 先頭ビット:110
- ネットワークアドレス:192.0.0.0 ~ 223.255.255.255
- デフォルトサブネットマスク:255.255.255.0
プライベートIPアドレス範囲:
- 10.0.0.0 ~ 10.255.255.255(クラスA)
- 172.16.0.0 ~ 172.31.255.255(クラスB)
- 192.168.0.0 ~ 192.168.255.255(クラスC)
問題8 [データベース]
「トランザクション」における「ACID特性」で、「Consistency(一貫性)」の説明として、正しいものはどれか。
A. データベースを矛盾のない状態に保つ
B. 同時に複数のトランザクションを実行する
C. トランザクションを元に戻せるようにする
D. 複数のユーザーが同時にアクセスできる
解説
正解:A. データベースを矛盾のない状態に保つ
解説:
ACID特性の4つの特性:
-
Atomicity(原子性):
- トランザクションを完全に実行するか、まったく実行しないかのどちらか
- 途中で失敗した場合、すべての操作をロールバック -
Consistency(一貫性):
- データベースを常に正確で矛盾のない状態に保つ
- 事前に定義された整合性制約を満たす -
Isolation(独立性):
- 複数のトランザクションが同時に実行されても、互いに干渉しない -
Durability(永続性):
- トランザクション完了後、データは永続的に保存される
例:銀行の送金トランザクションで、送金元と送金先の残高が常に正確であることを保証します。
他の選択肢は、ACID特性の異なる側面や別の概念を示しています。
問題9 [情報セキュリティ]
「公開鍵暗号方式」の特徴として、正しいものはどれか。
A. 同じ鍵で暗号化と復号を行う
B. 異なる2つの鍵を使用する
C. 暗号化に時間がかからない
D. 秘密の共有が不要
解説
正解:B. 異なる2つの鍵を使用する
解説:
公開鍵暗号方式(非対称暗号)の特徴:
- 2つの鍵を使用
- 公開鍵:誰でも知ることができる
- 秘密鍵:所有者のみが持つ
- 暗号化と復号
- 公開鍵で暗号化
- 秘密鍵で復号
- 代表的なアルゴリズム
- RSA
- ElGamal
- 楕円曲線暗号(ECC)
利用例:
- デジタル署名
- SSL/TLS通信
- メールの暗号化
特徴:
- 安全だが、共通鍵暗号より処理が遅い
- 鍵長が長いほど安全性が高まる
他の選択肢は、公開鍵暗号方式の特徴とは異なります。
問題10 [アルゴリズム]
再帰的アルゴリズムの特徴として、正しいものはどれか。
A. メモリ使用量が常に一定
B. 関数が自分自身を呼び出す
C. 実行速度が必ず速い
D. エラー処理が不要
解説
正解:B. 関数が自分自身を呼び出す
解説:
再帰的アルゴリズムの特徴:
- 自己呼び出し
- 関数が自分自身を呼び出す
- 問題を小さな部分問題に分割
- 再帰の構成要素
- ベースケース:再帰を終了する条件
- 再帰ステップ:問題を小さくする呼び出し
- 代表的な例
- 階乗計算
- フィボナッチ数列
- ツリー探索
- クイックソート
メリット:
- コードがシンプル
- アルゴリズムの理解が容易
デメリット:
- スタックオーバーフローのリスク
- メモリ使用量が多い
- 実行速度が遅い場合がある