検索に移動クライアント側とサーバ側の両方でノンスを生成する、認証での通信例。次に、インターネット上で買い物をするような例を考える。ノンスを使わない場合、攻撃者が暗号化された注文データを手に入れれば、それを再度送信することで、暗号を解読せずとも注文を繰り返すことができてしまう。ここで注文データの中に、一度ごとに使い捨てとするノンスを加えることで、複数回の注文を繰り返してもそれぞれデータとして異なるようになる。同じノンスで送られた注文データを不正なものとして無視することで、前述のような攻撃は成立しなくなる。ノンスの中にはタイムスタンプを使うことで時間的な順序を担保するような用法もあるが、この場合は両側での時刻同期が必須となる。クライアント側がノンス(cnonceと呼ばれる)を生成するプロトコルも、Digest認証などいくつか存在する。ストリーム暗号でも、同じ鍵で暗号化の結果をメッセージごとに異なったものとするためにノンスが使われることがある。この場合、メッセージの番号を使うことも多い。同様の目的で使われる初期化ベクトルも、見方を変えればノンスの一種とも考えられる。「一度きり」であることを担保するための方法として、できるだけ粒度の細かいタイムスタンプから生成する、あるいは充分なエントロピーを持った乱数で生成して、重複する可能性を現実的でないほどに下げるというような手法がとられる。ノンスには擬似乱数性、すなわち予測不可能性が必要だとする議論もある。[2]プルーフ・オブ・ワークシステムにおいては、暗号学的ハッシュ関数の出力を変えて特定の条件を満たさせるためにノンスが使われる。条件を満たすようなハッシュ値を生成するのは、それを検証するよりずっと困難なことであり、通常とは違う側に処理の負荷をかけることができる。このようなシステムの具体例としてビットコインがあり、ブロックチェーンに対するハッシュの頭に続くべきゼロの数を調節することで、難易度を調節している。ハッシュが暗号学的なものである以上、特定の出力が得られるような入力を任意に生成することはできず、ひたすらノンスを生成して総当たりで探すほかに方法はない。ビットコインのマイニングとは、条件に当てはまるノンスを探す作業のことであり、一番乗りできればビットコインが得られる。秘密の国のアリス』ソフトバンククリエイティブ、2008年12月、204頁。978-4-7973-5099-9。辞書情報提供元は参加元一覧にて確認できます。Licenseというライセンスの下で提供されています。Licenseの元に提供されております。