離散数学

システムのアクセス制御ロジックの命題論理による分析

情報システムにおけるアクセス制御ロジックを題材に、命題論理を用いて複数の条件を論理式で表現し、真理値表の作成や論理演算による評価を行うことで、複雑なシステムの振る舞いを数学的に分析する能力を養います。これにより、システムの要件定義や実装における論理的思考力を高めます。

論理学

情報システムにおけるアクセス制御ロジックを題材に、命題論理を用いて複数の条件を論理式で表現し、真理値表の作成や論理演算による評価を行うことで、複雑なシステムの振る舞いを数学的に分析する能力を養います。これにより、システムの要件定義や実装における論理的思考力を高めます。

システムのアクセス制御ロジックの命題論理による分析

ある情報システムにおいて、ユーザーがシステムにログインできるかどうかのアクセス制御は、以下の複数の条件に基づいて決定されます。これらの条件を命題変数として定義し、以下の問いに答えなさい。

  • $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$
TTTT
TFTT
TFFT
TFTF
FTTT

(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$
TTTTTTT
TFTTTTT
TFFTFFF
TFTFTTF
FTTTTFF

各行の計算:

  • 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$ を積和形に変換します。

  1. まず、論理積の結合法則 ($A \land B \land C \equiv (A \land B) \land C$) を用いて、$P$ と $S$ をまとめます。 $L = (P \land S) \land (Q \lor R)$

  2. 次に、論理積の分配法則 ($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)$

  3. 再び、論理積の結合法則を用いて括弧を整理し、各項を簡潔にします。 $L = (P \land S \land Q) \lor (P \land S \land R)$

  4. 最後に、各項の変数の順序を一般的な形に整理します(ここではアルファベット順にしました)。 $L = (P \land Q \land S) \lor (P \land R \land S)$

この積和形は、システムへのアクセスが許可されるのは、「ユーザー名、パスワード、IPアドレスが全て正しく、かつメンテナンス時間外である」場合、「ユーザー名、パスワード、二段階認証が全て正しく、かつメンテナンス時間外である」場合のいずれかである、ということを示しています。