QR コードの白黒模様に隠された技術
QR コード (Quick Response Code) は、1994 年にデンソーウェーブの原昌宏氏が開発した二次元バーコードです。元々は自動車部品の在庫管理用でしたが、スマートフォンの普及により、決済、URL 共有、チケット、名刺交換など、日常のあらゆる場面で使われるようになりました。
あの白黒の模様は、一見ランダムに見えますが、実は精密に設計された構造を持っています。
QR コードの構造 - 3 つの目印
QR コードの最も特徴的な要素は、3 つの角にある大きな正方形のパターン (ファインダーパターン) です。
- ファインダーパターン: 左上、右上、左下の 3 か所に配置。カメラが QR コードの位置、向き、傾きを瞬時に検出するための目印。どの角度から読み取っても正しく認識できるのは、この 3 点で座標系を確定できるため
- アライメントパターン: 大きな QR コードに追加される小さな正方形。歪み補正に使用
- タイミングパターン: ファインダーパターン間を結ぶ白黒交互の線。モジュール (ドット) の座標を正確に特定するための基準線
- フォーマット情報: 誤り訂正レベルとマスクパターンを記録する領域
- データ領域: 実際のデータが格納される部分
4 つ目の角 (右下) にファインダーパターンがないのは、3 点で十分に位置と向きを特定でき、4 つ目はデータ領域として活用した方が効率的だからです。
誤り訂正 - 汚れても読める秘密
QR コードの最も優れた特徴の一つが、強力な誤り訂正機能です。リード・ソロモン符号を使用しており、QR コードの一部が汚れたり破損したりしても、データを復元できます。
- レベル L (Low): 約 7% の損傷まで復元可能
- レベル M (Medium): 約 15% の損傷まで復元可能
- レベル Q (Quartile): 約 25% の損傷まで復元可能
- レベル H (High): 約 30% の損傷まで復元可能
企業のロゴを QR コードの中央に配置しても読み取れるのは、この誤り訂正機能のおかげです。ロゴで隠れた部分のデータは、誤り訂正符号から復元されます。ただし、ロゴのサイズが誤り訂正の限界を超えると読み取れなくなるため、レベル H を使用し、ロゴのサイズを全体の 30% 以内に収める必要があります。
QR コードのセキュリティリスク
QR コードは便利ですが、セキュリティ上のリスクも存在します。
QR フィッシング (Quishing)
悪意のある URL を QR コードに埋め込み、ユーザーをフィッシングサイトに誘導する攻撃です。QR コードは人間が目視で内容を確認できないため、URL を直接入力する場合よりもフィッシングに気づきにくいという特性があります。
- 正規の QR コードの上に偽の QR コードを貼り付ける物理的な攻撃
- メールや SNS で偽の QR コードを送信する攻撃
- 公共の場に設置された QR コードを差し替える攻撃
QR コードの差し替えは、正規の配布経路に悪意のあるコンテンツを紛れ込ませるという点で、ソフトウェアのサプライチェーン攻撃と共通する構造を持っています。
対策
QR コードの容量
QR コードが格納できるデータ量は、バージョン (サイズ) と誤り訂正レベルによって異なります。最大のバージョン 40 (177×177 モジュール) で誤り訂正レベル L の場合:
- 数字のみ: 最大 7,089 文字
- 英数字: 最大 4,296 文字
- バイナリ: 最大 2,953 バイト
- 漢字: 最大 1,817 文字
QR コードが日本発の技術であることを反映して、漢字 (Shift_JIS) の効率的なエンコードモードが標準で用意されています。
なぜ「Quick Response」なのか
QR コードの「QR」は Quick Response (素早い応答) の略です。開発者の原昌宏氏は、工場の生産ラインで部品を高速にスキャンする必要があったため、従来の一次元バーコードよりも高速に読み取れる二次元コードを設計しました。ファインダーパターンの配置は、どの角度からでも瞬時に位置を検出できるよう最適化されています。
デンソーウェーブは QR コードの特許を保有していますが、特許権を行使しないことを宣言しており、誰でも無料で QR コードを生成・利用できます。この「オープン」な姿勢が、QR コードの世界的な普及を後押ししました。
まとめ
QR コードは、日本の自動車工場から生まれ、世界中の日常に浸透した技術です。3 つのファインダーパターンによる高速検出、リード・ソロモン符号による強力な誤り訂正、漢字エンコードの標準サポート - あの白黒模様の裏には、精密な設計思想が詰まっています。
QR コードの技術的な仕組みを深く知りたい方には、情報技術の入門書が参考になります。