🔬 LtSpiceで体験するカオス理論

チュア回路シミュレーションで「ダブル・スクロール・アトラクタ」を作ろう。
その予測不可能性が、現代暗号の核心とつながっている🐾

🔬 LtSpice 🔐 カオス暗号・乱数生成 ⚡ 中級(回路シミュレーション経験者向け)
🛠️ まずはLtSpiceをインストールしよう

このシリーズの回路シミュレーションには、LtSpice(無料)を使います。
開発元の Analog Devices(アナログ・デバイセズ)から公式に提供されています。

📥 ダウンロード(Windows 10/11 64bit・macOS 10.15以降)
https://www.analog.com/jp/resources/design-tools-and-calculators/ltspice-simulator.html
  1. 上記ページにアクセスし「Windows 10の64ビット以降版をダウンロード」をクリック
  2. ダウンロードされた .msi(Windows)または .pkg(Mac)を実行
  3. インストール完了後、LtSpiceを起動して New Schematic から回路図を作成

※ 旧バージョン(LTspice XVII)より最新版が安定しています。古いOSをお使いの場合はサポートをご確認ください。

🔬
半導体の研究でLtSpiceをよく使っているもふねこだよ🐾
ある日、シミュレーション中にチュア回路という不思議な回路を動かしてみたら、 画面に蝶の羽みたいな図形が浮かび上がってきた。
「これ…暗号の乱数生成とそっくりな数学じゃないか?」って気づいて、 暗号カフェで紹介することにしたんだ。一緒に体験してみよう!

01 「カオス」とは何か?

「カオス」というと「混乱」のイメージがあるけど、数学的なカオスはまったく異なる概念。 決定論的なルールに従いながらも、初期条件のわずかな違いで未来が劇的に変わる現象のことだよ。

有名なのが「バタフライ効果」。ブラジルの蝶の羽ばたき一つが、テキサスの竜巻を引き起こす… つまり初期値の小数点以下の違いが、長期的には天と地ほどの差をうむ。 これが、後ほど紹介する暗号との接続ポイントになるんだ。

02 チュア回路の構成

チュア回路(Chua's Circuit)は、1983年にカリフォルニア大学バークレー校の Leon O. Chua(蔡少棠)教授が考案した、 最もシンプルなカオスを生む電子回路だよ。 コンデンサ2つ+インダクタ1つ+非線形抵抗1つだけで作れる。

使用コンポーネント

部品 役割
C1(コンデンサ) 10 nF 電圧V₁を蓄える(高速)
C2(コンデンサ) 100 nF 電圧V₂を蓄える(低速)
L1(インダクタ) 18 mH 電流を蓄え、振動を生む
R1(抵抗) 1.7 kΩ 2成分間のエネルギー移動を調整
G1(非線形素子) 折れ線近似式 チュア・ダイオード:カオスを生む心臓部

03 LtSpiceでの回路作成手順

STEP 1

回路図を作成する

LtSpiceを起動し、New Schematic から新しい回路図を作成。 上記の C1・C2・L1・R1 を配置し、それぞれを以下のように接続しよう。

STEP 2

チュア・ダイオード(G1)の設定

LtSpiceの bv(Behavioral Voltage Source) または bi(Arbitrary Behavioral Current Source) を配置。 Value(数式)に以下を入力する:

▶ チュア・ダイオード特性式(折れ線近似)
I = -0.757e-3*V + 0.5*(0.757e-3 - 0.409e-3)*(abs(V+1.3)-abs(V-1.3))
💡 ポイント: この式の数値(0.757e-3、0.409e-3、1.3)がカオスの「形」を決める。 微妙に変えると、1つの渦(周期軌道)やランダムノイズになり、 ちょうどよい値のときだけ「ダブル・スクロール」が現れる。
STEP 3

シミュレーション設定

Edit → Edit Simulation Command を開いて:

また、回路図に初期条件を追記:

▶ .ic コマンド(回路図に直接記述)
.ic V(C1)=0.1
⚠️ なぜ初期値が必要? V(C1)=0 では回路がゼロエネルギー状態のまま動き出せない。 わずか 0.1V の「揺らぎ」を与えることで、回路が動き始める。 この「初期値の決め方」がカオスの本質とつながっているよ。
STEP 4

実行 → XYプロットで確認

Run(F5) でシミュレーション開始。 波形ウィンドウが開いたら:

うまくいけば、画面に蝶の羽のような「ダブル・スクロール・アトラクタ」が描かれるはず。 これが電圧の時間変化軌跡が描く「カオスの宇宙地図」だ!

🦋

ここにダブル・スクロール・アトラクタの
スクリーンショット(LtSpice実測)が入る予定

🔐 カオス理論と暗号:予測不可能性が「安全」を生む

チュア回路のダブル・スクロールには、軌跡が決して同じ場所を通らないという特性がある。 初期値を小数点以下10桁まで正確に知らない限り、次の位置を予測するのは事実上不可能だ。

実は、現代暗号の「安全性」を支える柱のひとつも、まったく同じ発想から来ている。

🎲 乱数生成(RNG)

暗号鍵の生成には「真の乱数」が必要。 ハードウェアRNGは熱ノイズや量子ゆらぎなど、 カオス的な物理現象を乱数源として利用している。

🌀 カオス暗号

カオス系の予測不可能性を直接暗号化に利用する「カオス暗号」が1990年代から研究されている。 チュア回路の出力波形を鍵ストリームとして使う試みも実在する。

🔄 ストリーム暗号

次回紹介するLFSR(線形フィードバックシフトレジスタ)も、 「予測不可能なビット列を生成する」仕組み。 カオスと同じ「決定論的だが予測困難」の思想だよ。

🧬 初期値鋭敏性

暗号の雪崩効果(Avalanche Effect)も、入力1ビットの違いが 出力を半分以上変える設計。 バタフライ効果を数学的に再現した仕組みといえる。

今あなたが见たダブル・スクロールは、美しい模様であると同時に、 現代暗号の思想的先祖でもあるんだ🐾

05 まとめ

🔬
次回は、ストリーム暗号の心臓部 LFSR(線形フィードバックシフトレジスタ) をLtSpiceの論理回路で実際に組んで、 擬似乱数ビット列がどうやって生成されるかを見てみよう🐾

06 関連記事

🔙 暗号ラボへ戻る