ナンスとは?
ナンス(nonce)とは、暗号技術で一度限りの値を表す基本概念です。この一度限りの値は、通信の際のセキュリティを強化するために用いられます。特に、鍵交換やメッセージ認証などのプロトコルにおいて、暗号鍵を漏洩させないために、ナンスが利用されることが多いです。
ナンスの種類
ナンスには、以下の2種類があります。
- ランダムナンス:ランダムに生成された値を利用するナンスで、通常は擬似乱数生成器によって生成されます。ランダム性がより高いため、セキュリティレベルが高いとされています。
- カウンターナンス:カウントアップされる値をナンスとして利用する方法です。カウントが増えることで、ナンスは毎回変化しますが、ランダム性は低いため、暗号強度が落ちるという問題があります。
ナンスの利用例
以下に、ナンスが暗号技術でどのように利用されるかを紹介します。
- 鍵交換プロトコル:Diffie-Hellman鍵共有プロトコルなどの鍵交換プロトコルにおいて、ランダムナンスが利用されます。2つのパーティ間でランダムナンスをやり取りすることで、暗号鍵を漏洩させないようにします。
- メッセージ認証コード:メッセージ認証コード(MAC)を生成する際に、カウンターナンスが利用されることがあります。この場合、カウンター値をMACの生成に利用し、毎回異なるMACを生成することで、攻撃者からのMACの推測を防ぎます。
以上が、ナンスとその利用方法についての簡単な解説です。