For faster navigation, this Iframe is preloading the Wikiwand page for ノンス.

ノンス

クライアント側とサーバ側の両方でノンスを生成する、認証での通信例。

ノンス: nonceナンスとも)は、暗号通信で用いられる、使い捨てのランダムな値のことである[1]。ノンスはたいてい、認証の過程で使われ、リプレイ攻撃を行えないようにする働きを担っている。具体例として、HTTPDigest認証では、パスワードMD5ダイジェストを計算する過程でノンスが使われている。ノンスはサーバが401 Unauthorizedを返すごとに違っているので、リプレイ攻撃はほとんど不可能となる。

次に、インターネット上で買い物をするような例を考える。ノンスを使わない場合、攻撃者が暗号化された注文データを手に入れれば、それを再度送信することで、暗号を解読せずとも注文を繰り返すことができてしまう。ここで注文データの中に、一度ごとに使い捨てとするノンスを加えることで、複数回の注文を繰り返してもそれぞれデータとして異なるようになる。同じノンスで送られた注文データを不正なものとして無視することで、前述のような攻撃は成立しなくなる。ノンスの中にはタイムスタンプを使うことで時間的な順序を担保するような用法もあるが、この場合は両側での時刻同期が必須となる。クライアント側がノンス(cnonceと呼ばれる)を生成するプロトコルも、Digest認証などいくつか存在する。

ストリーム暗号でも、同じ鍵で暗号化の結果をメッセージごとに異なったものとするためにノンスが使われることがある。この場合、メッセージの番号を使うことも多い。同様の目的で使われる初期化ベクトルも、見方を変えればノンスの一種とも考えられる。「一度きり」であることを担保するための方法として、できるだけ粒度の細かいタイムスタンプから生成する、あるいは充分なエントロピーを持った乱数で生成して、重複する可能性を現実的でないほどに下げるというような手法がとられる。ノンスには擬似乱数性、すなわち予測不可能性が必要だとする議論もある。[2]


プルーフ・オブ・ワークシステムにおいては、暗号学的ハッシュ関数の出力を変えて特定の条件を満たさせるためにノンスが使われる。条件を満たすようなハッシュ値を生成するのは、それを検証するよりずっと困難なことであり、通常とは違う側に処理の負荷をかけることができる。このようなシステムの具体例としてビットコインがあり、ブロックチェーンに対するハッシュの頭に続くべきゼロの数を調節することで、難易度を調節している。ハッシュが暗号学的なものである以上、特定の出力が得られるような入力を任意に生成することはできず、ひたすらノンスを生成して総当たりで探すほかに方法はない。ビットコインのマイニングとは、条件に当てはまるノンスを探す作業のことであり、一番乗りできればビットコインが得られる。

関連項目

[編集]

脚注

[編集]
  1. ^ 結城浩『暗号技術入門 秘密の国のアリス』ソフトバンククリエイティブ、2008年12月、204頁。ISBN 978-4-7973-5099-9 
  2. ^ Nonce-Based Symmetric Encryption

外部リンク

[編集]
{{bottomLinkPreText}} {{bottomLinkText}}
ノンス
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?