共通鍵暗号方式では通信の組合せごとに鍵が 1 個必要となる。例えば A~D の 4 人が相互に通信を行う場合は, AB, AC, AD, BC, BD, CD の組合せの 6 個の鍵が必要である。10 人が相互に通信を行うためには何個の鍵が必要か。
平成22年度 春期 ITパスポート試験 問70
这道题的解析和你的作答记录。
問70
頻出度★★★
解説
問 70
错误ア
15 是在把例题中「4 个人需要 6 个」按人数简单成正比推算为 6×(10÷4) = 15 时,或者把人数弄错、算成 6 个人时的组合数 6×5÷2 = 15 时得到的数值。密钥个数并不与人数成正比,而是按 n(n-1)÷2 大致与人数的平方成正比地增长,所以是错误的。10 个人时 45 个才正确。
错误イ
20 是在认为每个人只要持有 2 个密钥就够、按 10×2 = 20 计数等,把组合的数法低估时得到的数值。实际上每个人都必须与其余 9 个人分别持有各不相同的共享密钥,整体为 10×9÷2 = 45 个,所以是错误的。
- ウ
正解 在共享密钥加密方式中,每一对相互通信的两个人都需要准备 1 个专用的共享密钥。因此所需密钥的个数等于「从 n 个人中选出 2 个人的组合数」,公式为 nC2 = n×(n-1)÷2。用图中 4 个人的例子验算,4×3÷2 = 6 个,与图中画出的连线(AB、AC、AD、BC、BD、CD)共 6 条一致。把同样的思路用到 10 个人上:每个人要与除自己以外的 9 个人各持有一个密钥,累计为 10×9 = 90 种,但 AB 与 BA 是同一个密钥被数了 2 次,所以要除以 2,即 10×9÷2 = 45 个。因此 ウ 的 45 正确。
错误エ
50 是像 10×10÷2 = 50 这样、没有排除「与自己组成的组合」时得到的数值。组合是由不同的两个人构成的组,所以相乘的对象是除自己以外的 (10-1) = 9 个人,10×9÷2 = 45 个才正确。把同样的算法用到 4 个人的例子上会得到 4×4÷2 = 8,与图中的 6 条线不符,由此也可以判断它是错误的。
ここがポイント
- 共享密钥加密方式需要为每一对通信对象准备各自固有的密钥,因此 n 个人相互通信时的密钥数就是组合数 nC2 = n(n-1)÷2 个。要点是:累计的 n(n-1) 种要除以 2,因为 AB 与 BA 是同一个密钥。
- 由于密钥数大约按人数的平方增长,用户一多,密钥的生成、分发和保管这类密钥管理负担就会急剧加重。这正是共享密钥加密方式与公钥加密方式(每人只需持有一对公钥和私钥,密钥数为 2n 个即可)相对比时的缺点。
用語