密碼學基礎與應用
把教科書式的RSA加密(直接以 c = m^e mod n 處理明文 m 的方式)不加填充地用於實際通訊,其問題點正確的是下列何者?
- A以公開金鑰加密的密文,即使沒有私密金鑰,只用同一把公開金鑰就能解密
- B公開指數 e 是公開的,因此可以由 e 直接計算出私密指數 d
- C相同的明文總是得到相同的密文,因此把候選明文以公開金鑰加密後比對,就能猜中明文
查看答案與解析
正確答案:C. 相同的明文總是得到相同的密文,因此把候選明文以公開金鑰加密後比對,就能猜中明文
教科書式的RSA加密是不使用亂數的確定性方式,因此像「是」「否」這種候選很少的明文,攻擊者只要把所有候選以公開金鑰加密並與密文比對就能得知。此外,若明文很小,m^e 不會超過 n,只要對密文取 e 次方根就能求出明文。實際的RSA加密會先加上OAEP這類含亂數的填充再加密,簽章則使用PSS等填充。此外,TLS 1.3已廢除以RSA加密傳送金鑰材料的方式本身,RSA只用於簽章。
- A. 解密需要私密指數 d,只靠公開金鑰無法解密。
- B. 要求出 d 需要 φ(n),也就是 n 的質因數分解,即使 e 公開也無法計算。
- C. 正確。因為是確定性的加密,把候選加密後比對的攻擊就能成立。