バイオメトリクスとセキュリティ
今日の世界では、効果的なセキュリティ対策を効率的に実施することの必要性は明らかです。個人に対して、セキュリティで保護された領域へのアクセスを許可あるいは禁止したり、コンピュータ、携帯情報端末(PDA)、携帯電話の使用を許可したりするには、個人の識別が必要となります。特定の固有の身体的および行動的特性の測定によって個人を識別するには、バイオメトリック署名(つまりバイオメトリクス)が使用されます。バイオメトリクス技術では、ほとんど例外なく、センサを使用して個人から生のバイオメトリック・データを収集します。特徴抽出機能によって、収集したデータを処理してバイオメトリック特性を示す一連の特徴セットを生成し、パターン・マッチング機能によって、抽出した特徴セットをデータベースにある保存テンプレートと比較します。さらに、判断機能によって、ユーザが要求している認証を承認するか拒否するかを決定します。
指紋センサ
指紋は二つと同じものがなく、かつ永久的であり、以前からバイオメトリック識別子の1つとして、最も広く受け入れられています。その画像は、複数の曲線線分で形成され、隆線と呼ばれる高い領域と谷線と呼ばれる低い領域から構成されます。特徴点は、隆線フロー・パターンにおける局所的な不連続点であり、識別特徴として使用されます。指紋センサは、指の表面を「読み取り」、A/Dコンバータ(ADC)によってアナログ測定値をデジタル形式に変換します。指紋センサは、光学式、超音波式、半導体式(容量、RF、熱、圧電デバイスを含む)に大別されます。
指の一番外側の皮膚細胞は死んで乾燥しており、導電性が低くなっているため、RFセンサは、皮膚の湿った導電性の境界領域から指紋のデータを取り込みます。この領域は、活性細胞が角質化した皮膚に変化し始める部分です。生きた表面下の層が指紋パターンのソースになるため、指の表面の傷やこすれによる影響はほとんどありません。
AuthenTec®1のTruePrint®2センサは、シリコン・チップ内部に埋め込まれた伝導層と指の皮膚表面下にある導電性層の間の微小なRF信号を使用します。このRF信号によって、指の表面下にある生きた表皮性層の隆線と谷線の電界電位の輪郭線が得られます。センサは、傷や汚れのない皮膚からデータを収集することで、皮膚の表面のみを読み取るその他の光学式または容量式の技術よりも、高い精度と再現性で指紋のサンプルを取り込めます。
焦電材料は、温度差に基づく電圧を生成します。温められたセンサの表面に指が接触すると、指紋の隆線はセンサ表面に近いため、センサ表面から遠い谷線よりも高い温度を保持します。Atmel®AT77C104B3 FingerChip®センサは、このような熱画像を使用して指紋を取得します。リニア・センサでは、検出回路とデータ変換回路を1つのCMOS ICに結合しています。指紋画像を取得するには、センサ領域上で指をスイープします(滑らせます)。画像は最初の接触時に生成されますが、すぐに熱平衡に到達して消えるため、安定した指紋画像を得るためのスイープ方式が必要です。
図1に示すセンサは、図2に示すように、センサ・ウィンドウ上で指が垂直にスイープされたときに指紋の画像を取得します。この指スイープ技術によって、センサ表面がクリーンに保たれます。タッチ・ベースのセンサとは異なり、指を離すと潜在指紋は残りません。また、このセンサは外部からの熱、光、電波源を必要としません。内蔵の温度安定化回路は、指とセンサとの温度差を識別し、高い画像コントラストが得られるようにその差を拡大します。ここでは、この種の熱センサに基づく指紋認識システムに重点を置いて説明します。


指紋センサの特徴となる主なパラメータには、分解能、領域、ダイナミック・レンジ、ピクセル数があります。分解能は、インチ当たりのドット(またはピクセル)数(dpi)で測定されます。高い分解能では、隆線と谷線の鮮明度が向上し、特徴点を精密に分離できます。特徴点は、指紋照合において最も重要な役割を演じます。なぜなら、大部分のアルゴリズムでは、特徴点の一致に基づいて2つの指紋痕跡が同じ指かどうかを判定するからです。センサ領域を大きくすると、一般に、より明確な指紋が得られます。しかし、小さなセンサ上で指をスイープし、データを短時間で取得/処理することによって、小型で低価格なセンサが、大型で高価なセンサに匹敵する分解能を達成できます。ダイナミック・レンジ(または深さ)は、各ピクセルの輝度をエンコードするためのビット数を示します。特定フレームの指紋画像に含まれるピクセル数は、分解能と領域から求めることができます。
AT77C104Bセンサは、0.4mm×11.6mmの領域で500dpiの分解能を持ちます。したがって、合計で8ピクセル×232ピクセル(つまり、1フレームにつき1856ピクセル)となります。各ピクセルは4ビットでエンコードされ、16種類のグレイスケール・レベルを識別します。図3はセンサのブロック図で、このセンサはアレイ、A/Dコンバータ、オンチップ発振器、コントロール・レジスタとステータス・レジスタ、ナビゲーション・ユニットとクリック・ユニット、低速動作モード用と高速動作モード用の個別のインターフェースからなります。最大200kHzの低速モードは、センサのプログラム、制御、設定に使用され、最大16MHzの高速モードは、データ・アクイジションに使用されます。オンチップ・ヒーターは、指とセンサとの温度差を拡大します。電流消費を抑えるため、指定の時間が経過すると、ウォッチドッグ・タイマがモジュールの加熱を停止させます。

動作モード
このセンサは6つの動作モードを実装しています。
- スリープ ・モード: 超低消費電力モードであり、内部クロックが無効になり、レジスタが初期化されます。
- スタンバイ ・モード: 低消費電力モードであり、ホストからのアクションを待機します。低速シリアル・ポート・インターフェース(SSPI)と制御ブロックが作動します。発振器は動作したままです。
- クリック・ モード: センサ上に指が来るのを待機します。SSPIと制御ブロックは動作したままです。局部発振器、クリック・アレイ、クリック・ブロックが作動します。
- ナビゲーション・モード: 指がセンサを横切るときにx方向とy方向の動きを計算します。SSPIと制御ブロックは動作したままです。局部発振器、ナビゲーション・アレイ、ナビゲーション・ブロックが作動します。
- アクイジション・モード: 指紋の再構成と識別のためにホストにスライスが送信されます。SSPIと制御ブロックは動作したままです。高速シリアル・ポート・インターフェース・ブロック(FSPI)とアクイジション・アレイが作動します。ウォッチドッグ・タイマが必要なとき、局部発振器が作動します。
- テスト・モード: このモードは工場でのテスト用に使われます。
指紋センサとBlackfin®プロセッサのシリアル・ペリフェラル・インターフェースとの接続
低価格で高性能なBlackfin ADSP-BF5334プロセッサがこのアプリケーションに採用された理由は、高速なシグナル・プロセッサと強力なマイクロコントローラの機能を兼ね備えているためです。ADSP-BF533の4 線式、全二重同期シリアル・ペリフェラル・インターフェース(SPI)には、2本のデータピン(MOSIとMISO)、デバイスセレクト・ピン(SPISS)、ゲーテッド・クロック・ピン(SCK)があります。図4を参照してください。このSPIは、マスター・モード、スレーブ・モード、マルチマスター環境に対応し、SPI互換のペリフェラル実装も、プログラマブルなボーレートおよびクロック位相/極性に対応します。

このインターフェースは基本的に、他のSPI デバイスとの間で、SCKレートでデータビットを1ビットずつ連続的に送受信するシフト・レジスタです。シフト・レジスタは、シリアル・データの同時送受信を可能にします。SCKは、2本のシリアル・データピン上でデータのシフトとサンプリングを同期化します。
SPIポートは、マスタ(SCK信号とSPISS信号を生成)またはスレーブ(外部からSCK信号とスレーブ・セレクト信号を受信)として設定できます。SPIポートがマスタとして設定されると、データをMOSIピンで駆動し、データをMISOピンで受信します。SPIスレーブ・デバイスのスレーブ・セレクト信号を駆動し、シリアル・ビット・クロック(SCK)を提供します。BlackfinプロセッサのSPIは、クロック極性(CPOL)ビットとクロック位相(CPHA)ビットによって与えられた組み合わせを用いて、4つの機能モードに対応します。Blackfin SPIポートの詳細については、『ADSP-BF533 Blackfinプロセッサ・ハードウェア・リファレンス』マニュアル(英語)を参照してください。5
ハードウェア・インターフェース
図5 に示すように、ADSP-BF533 プロセッサのSPI ポートとAT77C104Bとのシームレスなハードウェア・インターフェースは、外部グルー・ロジックを必要としません。センサのスレーブ・セレクト信号(SSSとFSS)は、プログラマブルなフラグ・ピンPF1とPF2を介して駆動されます。1つのフラグを出力として設定し、ハイレベルに駆動してからでなければ、もう一方のフラグを出力として設定できません(これらのフラグを同時に出力として設定しないでください。Blackfin プロセッサは、デフォルトでこれらのフラグをローレベルに駆動し、テスト・モードをスキャンするためにセンサ・チップを切り替えるからです)。IRQピンを介して生成されるセンサ割込みは、入力PF4 によって読み出されます。リセット(RST)はPF3によって駆動されます。リセットはアクティブ・ハイ信号であるため、このラインではプルダウン抵抗が使用されます。

FingerChipセンサとのインターフェース
アプリケーション・ソフトウェア
アプリケーション・コードでは、センサの制御、指紋データの取得、受信した指紋画像をVisualDSP++®6開発ツールのImage Viewerプラグインによって表示するためのデータの並べ替え、といったタスクを実行します。
センサがクリック(つまり、指の存在を示す信号)を検出すると、割込みを生成します。Blackfinプロセッサは、この割込みを受けて、立下がりエッジで割込みを生成します。さらに、ステータス・レジスタが、割込みを引き起こしたイベントを知らせます。このプロセスは、ナビゲーション、読出しエラー、その他の割込みに使用されます。図6に、完全なアプリケーションの簡略フローチャートを示します。

データ・アクイジション
センサ加熱は、アクイジション・モードで有効になります。ウォッチドッグ・タイマも有効になり、正常な加熱の制御が行われているかどうかを監視します。したがって、加熱が要求されると、センサはn秒間だけ加熱されます。
続いて、データ・アクイジション用にDMAパラメータが設定され、可変サイズのDMAフレックス・ディスクリプタがDMAパラメータ・レジスタにロードされます。レジスタのシーケンスは基本的に固定ですが、ディスクリプタの長さは完全にプログラマブルです。DMAパラメータには2次元配列が使用でき、また1次元配列も使用できます。最初のディスクリプタは、ダミーであり、最初の5バイトの受信に使用されます。なぜなら、チップ・パイプラインを初期化するには、最初のデータが到着する前に、センサが40サイクルのダミー・クロックを送信する必要があるからです。したがって、最初の同期化シーケンスは、40サイクルのクロック後に現れます。その後の配列読出しに対しては、クロック・サイクルごとにデータが到着します。
センサは、フレームの形でデータを送信します。各フレームの先頭は、同期ワードを含むダミー列によって示されます。ピクセル配列は、上から下へ、1列ずつ、左上から右下に向かって読み出されます。
データの再編成
取得した指紋画像を表示するには、データの再編成が必要です。再編成されたデータは保存され、VisualDSP++ Image Viewerユーティリティを用いて表示できます。取得した画像と設定を図7に示します。実行される機能は下記の通りです。
- ニブルスワッピング: センサは、ニブルスワップされたフォーマットでデータを送信します。フレーム全体で奇数- 偶数ピクセルがスワップ(交換)されます。
- 4ビット-8ビット変換: 各センサ・ピクセルは4ビット幅ですが、Image Viewerは最小8ピクセル幅で画像を表示します。4ビットのゼロ詰めによって、各ピクセルを8ビットに変換します。
- レベル調整: 受信データの各ピクセルには0 ~ 15の輝度がありますが、ディスプレイ上での表示は0 ~ 255の範囲となります。各ピクセルのレベルを変換し、正常な表示が得られるようにします。
- 配列転置: センサからのデータは列単位で送信されますが、2次元DMAはデータを行単位で受け取るため、フレームを連続的に表示するにはデータの転置が必要です。フレームの連続表示には、3次元配列が用いられます。

指紋の再構成と認識
指先がセンサ・ウィンドウを横切って適度な速度でスイープされた場合には、Atmelのソフトウェアを使用すれば、連続したフレーム間のオーバーラップから指紋全体の画像を再構成できます。一般に、再構成される画像は25mm ×14mm、つまり500ピクセル×280ピクセルとなります(分解能エンハンスメントにより8ビット分解能)。したがって、各画像は140kBのストレージを必要とします。サイズの異なる画像は、これを元に標準的な画像処理技術を用いて得ることができます。フレームを結合して完全な指紋画像が得られると、認識アルゴリズムでサンプルとテンプレートを照合できます。
Trust but Verify(信頼を前提とした検証)
指紋の処理には、登録、検索、検証の3つの主要機能があります。「登録」では、センサから指紋画像を取り込み、その画像をSRAMに保存します。画像には処理、強調、圧縮が行われ、指紋テンプレートが作成されます。各種フィルタで画像をクリーンアップし、数値フォーマットに変換するため、テンプレートを盗んで指紋画像を直接再生することはできません。
「検索」では、生の候補画像を登録済みテンプレートのリストと比較します。一連のスクリーニング・プロセスによって、アルゴリズムはテンプレートのリストを管理できるサイズに絞り込みます。スクリーニングで絞り込まれたテンプレートと候補画像を比較し、検証のスコアを付けます。事前に設定した閾値よりスコアが上回っていれば、本人と認証されたことを示します。
「検証」では、クローズド・ループのリアルタイム・パターン・マッチング・アルゴリズムを使用し、生の候補画像と登録済みのテンプレートとを比較してユーザ本人かどうかを検証します。候補とテンプレートの類似性を示すスコアが返され、これに基づいてYESまたはNOの判断を行います。
結論
Blackfin プロセッサとAT77C104B FingerChip センサを組み合わせることで、建物内の機密領域やラップトップ・コンピュータ内の機密データへのアクセスを許可または禁止することができ、簡単かつ堅牢な指紋認証を実現します。
参考資料
- www.analog.com/jp/Blackfin
- www.analog.com/jp/VisualDSP
- ADSP-BF53x/ADSP-BF56x Blackfin Processor Hardware Programming Reference. Analog Devices. 2007.
- ADSP-BF531/ ADSP-BF532/ADSP-BF533 Blackfin Embedded Processor Data Sheet
- AT77C104B Data Sheet, “FingerChip Thermal Fingerprint Sweep Sensor.” Atmel Corporation.
- “AuthenTec Speeds Fingerprint Matching with Blackfin.” Blackfin Customer Case Studies. Dec 2004.
- Interfacing Atmel Fingerprint Sensor AT77C104B with Blackfin Processors. Engineer to Engineer Note EE-325. Aug 2007.
- Kreitzer, Kelvin and Alan Kasten. “New Fingerprint Subsystem Brings Biometrics to the Mass Market.” Embedded Computing Design. 2007.
- Maltoni, David, Dario Maio, Anil K. Jain, and Salil Prabhakar. Handbook of Fingerprint Recognition. Jun 2003.