チャーニングは、 ITU G.983.1標準で定義されているATMパッシブ光ネットワークシステムのダウンストリーム ユーザー データをスクランブルするために使用される暗号化機能です。
この規格では、チャーニング暗号は「データ機密性に対する保護レベルが低い」とされている。暗号解読の結果、「チャーニング暗号は堅牢に脆弱である」ことが示された。[ 1 ]
チャーニングでは、X1..X8 および P1..P16 で指定された 24 ビットのキーが使用されます。
キーから 10 個の静的 K ビットが生成されます。
K1 = (X1×P13×P14) + (X2×P13×非 P14) + (X7×非 P13×P14) + (X8×非 P13×非 P14) K2 = (X3×P15×P16) + (X4×P15×P16以外) + (X5×P15×P16以外) + (X6×P15以外×P16以外) K3 = (K1×P9) + (K2×P9以外) K4 = (K1×P9以外) + (K2×P9) K5 = (K1×P10) + (K2×P10 ではない) K6 = (K1×P10ではない) + (K2×P10) K7 = (K1×P11) + (K2×P11 ではない) K8 = (K1×not P11) + (K2×P11) K9 = (K1×P12) + (K2×P12 ではない) K10 = (K1×not P12) + (K2×P12)
この攪拌により、8 つのYビットが 8 つのZビットに変換されます。
(Z1..Z4) = TransformNibble(Y1..Y4, K1, P1, K3, K2, P2, K4, K1, K3, K5, K2, P4, K6) (Z5..Z8) = TransformNibble(Y5..Y8, K1, P5, K7, K2, P6, K8, K1, P7, K9, K2, P8, K10)
暗号解読[ 1 ]により、この暗号は複数の方法で効果的に解読可能であることが示された。
チャーニング暗号の極めて弱い点のため、PON システムでは、3 つのチャーニング操作をストリーム内の隣接するデータとの 2 つの XOR と組み合わせる「トリプル チャーニング」手法が頻繁に使用されます。
PMC Sierra はトリプル チャーニングに関する特許 (米国特許 7,646,870 ) を保有しています。