読み方 : カウンターモード
CTRモード【CTR mode】counter mode
概要

共有鍵暗号の一種であるブロック暗号は一定の固定長のデータを暗号化する手法だが、実用上は任意長の長いデータを暗号化する必要がある。任意のデータを一定のブロックに区切り、暗号アルゴリズムをどのように適用するかを定めた手順を「暗号利用モード」という。
CTRモードでは、ブロック暗号を擬似乱数を生成する装置のように用いる。具体的には、暗号鍵とランダムな初期値(nonceと呼ばれる)に基づくカウンタ値を暗号化し、その結果と平文を排他的論理和(XOR)演算したものを暗号文とする。カウンタはブロックごとに一定の規則で増加し、同じ値が重複しないよう管理される。
復号時も同じカウンタ系列から得られる値を用いて排他的論理和を行うため、暗号化と復号の処理が同一となり、処理が単純で実装しやすい。各ブロックの処理は独立しており、前のブロックの結果に左右されないため、前後のブロックを並列処理することが可能であり、大容量データの高速処理に適している。
一方、安全な運用のためにはカウンタや初期値の扱いが重要となる。同じ暗号鍵と同じカウンタ系列を再利用すると、暗号文同士の関係から平文が推測される危険がある。そのため、暗号化ごとに一意な初期値やカウンタを用いるように運用を工夫する必要がある。