システムのアクセス制御ロジックの命題論理による分析
情報システムにおけるアクセス制御ロジックを題材に、命題論理を用いて複数の条件を論理式で表現し、真理値表の作成や論理演算による評価を行うことで、複雑なシステムの振る舞いを数学的に分析する能力を養います。これにより、システムの要件定義や実装における論理的思考力を高めます。
論理学
情報システムにおけるアクセス制御ロジックを題材に、命題論理を用いて複数の条件を論理式で表現し、真理値表の作成や論理演算による評価を行うことで、複雑なシステムの振る舞いを数学的に分析する能力を養います。これにより、システムの要件定義や実装における論理的思考力を高めます。
システムのアクセス制御ロジックの命題論理による分析
ある情報システムにおいて、ユーザーがシステムにログインできるかどうかのアクセス制御は、以下の複数の条件に基づいて決定されます。これらの条件を命題変数として定義し、以下の問いに答えなさい。
- $P$: ユーザーが正しいユーザー名とパスワードを入力した。
- $Q$: ユーザーのIPアドレスが許可された範囲内である。
- $R$: ユーザーが二段階認証を完了した。
- $S$: 現在の時刻がメンテナンス時間帯ではない。
システムへのアクセスが許可されるのは、「ユーザー名とパスワードが正しく、かつ(IPアドレスが許可範囲内であるか、または二段階認証が完了している)場合に限る。ただし、メンテナンス時間帯はアクセスできない」という条件をすべて満たす場合です。
(1) 上記のアクセス許可条件を、命題変数 $P, Q, R, S$ と論理記号 ($\land, \lor, \neg$) を用いて一つの論理式 $L$ で表現しなさい。
(2) 以下の条件が与えられたとき、システムへのアクセスは許可されますか? 理由を論理式 $L$ の真理値に基づいて答えなさい。 - ユーザー名とパスワードは正しい。 - IPアドレスは許可された範囲外である。 - 二段階認証は完了した。 - 現在の時刻はメンテナンス時間帯である。
(3) 論理式 $L$ の真理値表の一部を完成させなさい。 (行は $P, Q, R, S$ の順で記入し、 $T$ は真、 $F$ は偽を表す。)
| $P$ | $Q$ | $R$ | $S$ | $Q \lor R$ | $P \land (Q \lor R)$ | $L$ |
|---|---|---|---|---|---|---|
| T | T | T | T | |||
| T | F | T | T | |||
| T | F | F | T | |||
| T | F | T | F | |||
| F | T | T | T |
(4) 論理式 $L$ の積和形 (Disjunctive Normal Form, DNF) を求めなさい。その変換過程で用いた論理法則(分配法則、結合法則など)を明記しなさい。
解答を見る
(1) 論理式 $L$ の表現: システムへのアクセス許可条件を以下のように分解し、論理式で表現します。
- 「ユーザー名とパスワードが正しい」: $P$
- 「IPアドレスが許可範囲内であるか、または二段階認証が完了している」: $Q \lor R$
- 「メンテナンス時間帯ではない」: $S$
これらの条件がすべて満たされる必要があるため、論理積 ($\land$) で結合します。 $L = P \land (Q \lor R) \land S$
(2) 特定の条件でのアクセス可否: 与えられた条件を命題変数の真理値に置き換えます。
- ユーザー名とパスワードは正しい: $P = T$
- IPアドレスは許可された範囲外である: $Q = F$
- 二段階認証は完了した: $R = T$
- 現在の時刻はメンテナンス時間帯である: $S = F$ (なぜなら「メンテナンス時間帯ではない」という命題 $S$ が偽となるため)
これらの真理値を論理式 $L$ に代入します。 $L = T \land (F \lor T) \land F$ $L = T \land (T) \land F$ $L = T \land F$ $L = F$
$L$ の真理値が $F$ であるため、システムへのアクセスは許可されません。 理由:メンテナンス時間帯であるため ($S=F$)、その他の条件が満たされていてもアクセスは拒否されます。
(3) 真理値表の完成:
| $P$ | $Q$ | $R$ | $S$ | $Q \lor R$ | $P \land (Q \lor R)$ | $L$ |
|---|---|---|---|---|---|---|
| T | T | T | T | T | T | T |
| T | F | T | T | T | T | T |
| T | F | F | T | F | F | F |
| T | F | T | F | T | T | F |
| F | T | T | T | T | F | F |
各行の計算:
- 1行目 (T, T, T, T): $Q \lor R = T \lor T = T$、$P \land (Q \lor R) = T \land T = T$、$L = (P \land (Q \lor R)) \land S = T \land T = T$
- 2行目 (T, F, T, T): $Q \lor R = F \lor T = T$、$P \land (Q \lor R) = T \land T = T$、$L = (P \land (Q \lor R)) \land S = T \land T = T$
- 3行目 (T, F, F, T): $Q \lor R = F \lor F = F$、$P \land (Q \lor R) = T \land F = F$、$L = (P \land (Q \lor R)) \land S = F \land T = F$
- 4行目 (T, F, T, F): $Q \lor R = F \lor T = T$、$P \land (Q \lor R) = T \land T = T$、$L = (P \land (Q \lor R)) \land S = T \land F = F$
- 5行目 (F, T, T, T): $Q \lor R = T \lor T = T$、$P \land (Q \lor R) = F \land T = F$、$L = (P \land (Q \lor R)) \land S = F \land T = F$
(4) 論理式 $L$ の積和形 (DNF) の導出: 論理式 $L = P \land (Q \lor R) \land S$ を積和形に変換します。
-
まず、論理積の結合法則 ($A \land B \land C \equiv (A \land B) \land C$) を用いて、$P$ と $S$ をまとめます。 $L = (P \land S) \land (Q \lor R)$
-
次に、論理積の分配法則 ($A \land (B \lor C) \equiv (A \land B) \lor (A \land C)$) を適用します。ここで $A = (P \land S)$, $B = Q$, $C = R$ と見なします。 $L = ((P \land S) \land Q) \lor ((P \land S) \land R)$
-
再び、論理積の結合法則を用いて括弧を整理し、各項を簡潔にします。 $L = (P \land S \land Q) \lor (P \land S \land R)$
-
最後に、各項の変数の順序を一般的な形に整理します(ここではアルファベット順にしました)。 $L = (P \land Q \land S) \lor (P \land R \land S)$
この積和形は、システムへのアクセスが許可されるのは、「ユーザー名、パスワード、IPアドレスが全て正しく、かつメンテナンス時間外である」場合か、「ユーザー名、パスワード、二段階認証が全て正しく、かつメンテナンス時間外である」場合のいずれかである、ということを示しています。