基礎から学ぶ車載 Ethernet 技術(9)「100BASE-T1 」スクランブラ

スクランブラ

スクランブラは、100BASE-T1 が動作時にコネクタやケーブルから放射する妨害波(EMI)を抑えるために実装された機能だ。電磁妨害波が他の機器の誤動作を引き起こすため、米国の FCC や日本の VCCI 等で厳しく規制されている。

日本の VCCI では、「図1 放射妨害波の測定例」の様に被測定物を回転させ、測定物から放射される 30MHz から 1GHz 迄の電波を測定する。測定範囲の電波強度を積算し、規制値を超えると製品を出荷できない。米国の FCC は法規制で、適合しないと米国に輸出できない。日本の VCCI は業界の自主規制だが、実質的に適合しない製品は流通できない。「図2 放射妨害波の強度イメージ(不適合)」の様に平均レベルに十分余裕があっても、1箇所でも規制値を超えると「不適合」になる。放射妨害波の総エネルギーを抑えることが難しいため、エネルギーを分散させピークを下げる手法をとることが多い。スクランブラは伝送媒体上のデータをランダムに変換し、特定の周波数へのエネルギー集中を回避する手法だ。特にフレーム間ギャップは「1」が連続するため同じ周波数の変化が続き、一部の周波数にエネルギーが集中する。スクランブラでフレーム自体とフレーム間ギャップ信号をランダム化することで「図3 放射妨害波の強度イメージ(適合)」の様にピークを下げることができる。

図1 放射妨害波の測定例
図1 放射妨害波の測定例
図2 放射妨害波の強度イメージ(不適合)
図2 放射妨害波の強度イメージ(不適合)
図3 放射妨害波の強度イメージ(適合)
図3 放射妨害波の強度イメージ(適合)

スクランブラへの入力を平文ストリーム(Plaintext Stream)と呼ぶ。スクランブラは平文ストリームとキーストリーム(Key Stream)の演算を行い、暗号文ストリーム(Ciphertext Stream)を作る( 「図4スクランブラの構造」 )。演算は一般的な EXOR(Exclusive or:排他的論理和)だ。キーストリームの生成には、LFSR(Linear Feedback Shift Register :線形フィードバックレジスタ)と呼ばれる仕組みを使用する。この仕組みはハードウェアで簡単に安く作れるため、100BASE-TX だけではなく、放送や通信などの様々なところで使われている。LFSR は平文ストリームが分かると簡単にキーストリームを解読できる。この特性を使い 100BASE-TX はスクランブル解除を行うが、暗号としては脆弱だ。単独の LFSR は線形システムで比較的簡単に解読されるため、様々な工夫を加え今でも携帯電話等の暗号等に使われているようだ。

図4スクランブラの構造
図4スクランブラの構造

LFSR はビット長により幾つかの方式がある( 「表2 LFSR 一覧(抜粋)」 )。100BASE-T1 は 11ビット長の多項式を使用する(赤枠内)。11ビット多項式の見方は、 「表2 LFSR 一覧(抜粋)」Taps 項のように右端が1ビット目で、9ビット目と11ビット目が「1」になる2進数を表している。この多項式で生成される数列は一定の周期で繰り返される。

100BASE-T1 スクランブラ生成多項式:++1

表2 LFSR 一覧(抜粋)
表2 LFSR 一覧(抜粋)

100BASE-T1 の LFSR は 11ビット長だが、キーストリーム生成は「図5 11ビット長 LFSR キーストリーム生成」の構造になっている。先ず、ランダムなキーストリームを発生させるために 11 ビット 2進数の「種(Seed)」を「Seed」に設定する。設定値は特に制約は無いがオール「0」を設定するとキーストリームに変化がなくランダム化できない。 「種」は Master が決定し Slave に伝えることで送受信が一致するようなる。

次に、S8 と S10 の EXOR(排他的論理和)を行い、全体が 1 ビットシフトする。初期状態が、S0/S1/S2/S3/S4/S5/S6/S7/S8/S9/S10 が 1 ビットシフトすることで、S8 と S10 のEXOR/ S0/S1/S2/S3/S4/S5/S6/S7/S8/S9 となる。キーストリームは 2047回(-1)で一巡する。

図5 11ビット長 LFSR キーストリーム生成
図5 11ビット長 LFSR キーストリーム生成

次に、生成したキーストリーム(Key Stream)と平文ストリーム(Plaintext Stream)を EXOR 演算し、暗号文ストリーム(Ciphertext Stream)が生成される( 「図6 11ビット長 LFSR キーストリーム生成」 )。EXOR の論理式は「図7 EXOR 論理式」だが、2入力の一方が「1」の時他方が反転し、2入力の一方が「0」の時他方は変化しない。

図6 11ビット長 LFSR キーストリーム生成
図6 11ビット長 LFSR キーストリーム生成
図7 EXOR 論理式
図7 EXOR 論理式

LFSR は平文ストリームが分かっていると簡単にキーストリームを割り出すことができる。この特性を使い、受信側はキーストリームを割り出すことになる。都合の良いことに、フレーム間ギャップの「Idle」状態では、4B3B 変換された 3B データは常に「111」であることが分かっている。

図5 11ビット長 LFSR キーストリーム生成」のスクランブル構造を数式に書き換えると「図7スクランブルと解除演算式」の様になる。フレーム間の「Idle」状態では、暗号文ストリームはキーストリームの反転信号になっている。つまり、「Idle」期間に受け取った暗号文を反転すれば、そのままキーストリームに使用できる。

図7スクランブルと解除演算式
図7スクランブルと解除演算式

11 ビットの LFSR での動作検証はデータ量が大きすぎるため、「図8 3ビットLFSRモデル図」の 3 ビットLFSR モデル( 「表2 LFSR 一覧(抜粋)」青枠 )で検証してみたい。

図8 3ビットLFSRモデル図
図8 3ビットLFSRモデル図
表2 LFSR 一覧(抜粋)
表2 LFSR 一覧(抜粋)

図9 3ビットLFSRモデル検証例」は、3ビットモデルの初期値には「110」を与えた検証例だ。①と②は、Key Stream/Plaintext Stream から Ciphertext Stream を演算する手順だ。③と④は、Key Stream をシフトし再構成する手順だ。⑤と⑥は、出力( Ciphertext Stream )を反転させると、次の Key Stream になることを示している。「表4 3ビットLFSRモデル検証例(4サイクル)」は、3ビットモデルで初期値が「110」のケースで4サイクル実行した例だ。縦の橙枠が、「11111」の Idle コードがスクランブルされた結果だが、期待通りランダム化されている。また、Key Stream は、-1=7 サイクルで循環していることが分かる。

  1. Key Streamの EXOR 演算結果
  2. Key Stream演算結果と入力( 全て「1」 )の EXOR 演算結果
  3. スクランブルキーは全ビット右にシフト
  4. 空いた左端ビットに直前の演算結果を挿入
  5. Key Streamを抽出するため、Ciphertext Stream を受信側で反転
  6. 反転出力は、次のKey Streamと一致
図9 3ビットLFSRモデル検証例
図9 3ビットLFSRモデル検証例
表3 3ビットLFSRモデル検証例(4サイクル)
表3 3ビットLFSRモデル検証例(4サイクル)
デスクランブラ

送信側スクランブラは「疑似ランダム値」でスクランブルをかける。「本当のランダム値」でスクランブルをかけると、受信側で解読できないからだ。スクランブルの目的は暗号化ではなく、放射ノイズを抑えることが目的で、この目的に合致している。

疑似ランダム値は局所的にはランダムに見えるが、実際には周期的に変化しているだけだ。3ビット LFSR では 7 コードパターン「0010111」を繰り返すかなり繰返し周期が短い。

繰り返しサイクルは伝送速度により異なる。100BASE-T1 は 11 ビット、1000BASE-T1 は15 ビットで、伝送速度が 10 倍で繰り返しサイクルは 16 倍になる。つまり、 1000BASE-T の繰り返し時間は 100BASE-T の 1.6 倍になる。これを考えると、1000BASE-T は 33 ビットと異常に長く、繰り返し時間もかなり長い。

基礎から学ぶ車載 Ethernet

この記事を書いた人

岩崎 有平

早稲田大学 理工学部 電子通信学科にて通信工学を専攻。
安立電気(現 アンリツ)に入社後、コンピュータ周辺機器の開発を経てネットワーク機器の開発やプロモーションに従事する。
おもにEthernetを利用したリアルタイム監視映像配信サービスの実現や、重要データの優先配信、映像ストリームの安定配信に向けた機器の開発行い、Video On Demandや金融機関のネットワークシステム安定化に注力した。
現在は、Ethernetにおけるリアルタイム機能の強化・開発と普及に向けて、Ethernet TSNの普及活動を行っている。