秘話
クロックを不規則にすることで単純なLSFRより解読が難しくなる。暗号鍵の長さは64ビットで、同じ鍵ストリームの生成を防ぐためシフトレジスタの初期値には暗号鍵と22ビットのフレーム番号とを用いる。
A5/1のアルゴリズムは非公開だったが、GSMは比較的早い時期から広く使われていたためアルゴリズムの解析やA5/1の解読方法の研究も早い時期から行われた。GSM携帯端末のリバースエンジニアリングにより1999年にアルゴリズムが解析され、一般に公開されていたテストデータにより結果が検証された。2000年には通常のPCを使いリアルタイムで暗号鍵を見つけ出すことができる方法が論文として発表された。またGSMのプロトコル上の脆弱性を利用し最も暗号強度の弱いA5/2を使わせることで秘密鍵を見つけ出す方法も考案されている。
第2世代携帯電話として日本で使われたPDC (Personal Digital Cellular) も、暗号鍵で初期化されたLFSRを使うストリーム暗号が使われた。
第3世代携帯電話であるCDMA2000方式とW-CDMA方式にもそれぞれ音声暗号化方式が定義されている。いずれの方式でもストリーム暗号により暗号化を行う。また両者とも鍵ストリーム生成にブロック暗号を応用したアルゴリズムが最初の標準として採用された。ブロック暗号では線形解読法や差分解読法、高階差分攻撃法などさまざまな解読方法が知られており、それらに対する解読の難しさについての理論的研究も進んでいるため、暗号の解読されにくさの評価が行いやすい。
デジタル方式の移動体通信で家庭用コードレスフォンとしても使われるPHS (Personal Handy-phone System) には簡易型の秘話機能が組み込まれている。音声信号は2段階のストリーム暗号により暗号化される。
PHSでの音声符号化にはADPCM方式が使われ、音声は32kbpsのデジタル信号に変換される。ADPCM方式の圧縮率はさほど高くないが、処理が単純で音質も比較的良い。符号化されたデジタル信号はまず10ビットのLFSR(線形帰還シフトレジスタ)の出力との排他的論理和によりスクランブルが行われる。LSFRの初期値としては端末のIDの下10ビットが使用される。このスクランブル結果に対し、続いて端末に入力されている16ビットの秘密鍵を初期値とする16ビットLFSRの出力と排他的論理和をとることで最終的なビット列が得られる。
この方式は鍵長が16ビットと短く、鍵ストリームの生成にも単純な線形帰還シフトレジスタのみが使われている ため解析が容易で、初期化ベクトルも使われていないため、暗号強度は低い。さらに、基地局との秘密鍵のやり取りは特別な暗号化を行うことなく平文で行われる。PHSの秘話機能はアマチュアによる単純な盗み聞きの防止には有効だが、基地局と端末との間でやり取りされるメッセージをモニターすることで第三者が秘密鍵を容易に知ることができるため専門家にとって暗号強度はほとんどない。
また、PHSの後継規格として開発されたXGPやAXGPはPHSの技術と全く異なるLTE (Long Term Evolution) の技術を用いており、暗号化や認証にはLTEと同じ方式が用いられる。
これらの方式は比較的低いビットレート (4.8-16 kbps) でも良好な音質が得られるため、携帯電話やVoIPなど多くの分野で使われている。 CELP方式を用いた音声符号化方式は、ITU-T G.723.1 (5.3 kbps), G.729 (8 kbps), G.722.2 (6.6-23.85 kbps), 及び携帯電話用のAMR(GSM/W-CDMA用), AMR-WB(W-CDMA用、AMRのワイドバンド版), EVRC(CDMA2000用), VMR-WB(CDMA2000用のワイドバンド版), SMV(CDMA2000用), PDC-EFR(PDC用)など多数ある。
さらに低いビットレートが必要な場合は、分析合成符号化、あるいは単純にボコーダーと呼ばれる方式が用いられる。これはチャネルボコーダの考え方にデジタル信号処理の技術を組み合わせたもので、声帯-声道モデルを元に人間の音声を分析してパラメータ化し符号化を行う。CELPが音声の波形が同じになるように分析を行うのに対し、この方式では聴感上同じ音声に聞こえるように符号化と復号を行う。CELPのような音声波形を意識した符号化方式は音声信号を比較的良い音質で符号化できるが、ビットレートが4kbps以下になると音声波形の再現が十分にできず音質が悪化する 。 それに対し多くの分析合成符号化方式は、1.2〜4kbps程度で音声を符号化でき、方式によっては0.6kbps (600bps) 程度でも了解可能な音声の符号化ができる。
M-809
音質の改善のために14チャネルのボコーダーを使用したシステム。グループNo.4が担当した。開発リーダーはネイマン (I. S. Neyman)。他のシステムの開発失敗時のバックアップとして開発された。明瞭度は改善されたがM-801との差はあまり大きくなく、声も奇妙に変わり音楽のように聞こえ 政府関係者には好まれず、開発は1950年に中断された。
マールフィノ研究所の苦闘
当初の開発目標だった1949年5月1日に対し、音声符号化装置と暗号化装置とを組わせたプロトタイプが1949年5月末か6月初め頃になってようやく出来上がった。装置は何とか動いたが音質は大幅な改善が必要な状態で、政府が示した目標にはとても届かなかった。
この後も改善のための厳しい作業が続くことになり、メンバーは一日に12時間から15時間、さらには夜中まで働く必要があった。各メンバーへの個別の作業指示は9時から23時まで行われ、宿舎に戻ってベッド上で作業を行うことも多かった。モスクワ近郊に住んでいた研究者の一人は忙しくて自宅に帰ることができず、暑さのための汚れと擦り切れとでワイシャツの襟が外れてしまった20日目になって、ようやく服を着替えるために自宅に帰れたという。研究所から外に出られない囚人にとっても似たような状況だったが、十分な成果が挙げられれば刑期が終わる前に解放され前科も帳消しにされ家族と共に暮らすことができ、成果がなければはるかに待遇の悪い強制収容所に送られてしまうため、必死に働かざるを得なかった。
遅れを取り戻すためにグループの再構成も行われた。
バンドシフト (Band Shift) 法、周波数シフト法、あるいは周波数推移法とは、音声信号全体を一定の周波数だけ移動させる秘話方法である。この方式単体では秘話性が高くないため、通常は音声周波数反転など他の秘話方式と組み合わせて使われる。
一般の無線回線や電話回線では帯域幅が決まっており、単純に周波数のシフトのみを行うと音声成分の一部が帯域外にはみ出し失われるため音質が悪化する。これを避けるため、はみ出した周波数成分が高域の成分であれば低域側に、低域の場合は高域側に移動させることが多い。このような方式は特にリエントラントバンドシフト (Reentrant Band Shift) と呼ばれる。これは特定の周波数を基準に音声信号を上側と下側の2つの帯域に分割しそれらを入れ替える操作に等しく、分割の基準となる周波数を変化させてもバンド幅が広がらず元の音声成分が失われない。
秘話性を高めるためには、音声周波数反転の場合と同様、基準となる周波数を時間と共にランダムに変化させるローリングコード (Rolling Code) が使われる。このような手法の秘話方式はVSB(Variable Split-Band、可変帯域分割)方式とも呼ばれる。
第二次世界大戦末期、ドイツで秘話研究を行っていたフォイヤーシュタイン研究所 (Laboratorium Feuerstein) で開発中だった秘話装置にはこの方式が使われた。装置は音声信号をボコーダーで複数の信号の組み合わせに変え、その出力に3段階のリエントラントバンドシフトを行うものだった。シフト周波数をローレンツSZ-42暗号機の出力で時間と共にランダムに変化させるローリングコード方式も用いられた。
時間セグメント置換 (Time Segment Permutation, Time Element Scrambling) は特定の長さの音声信号を複数の時間ブロック(セグメント)に分け、置き換えを行う秘話方法である。音声に含まれる周波数成分は時間と共に連続的に変化していくが、セグメントの置き換えを行うことでこの連続性が無くなり聞き取りにくくなる。この方式ではいったん音声を何らかの記憶媒体に保存し、書き込みとは別の順序でセグメント単位に読みだすことで置換を行う。一般的には特定の長さ(フレーム長)の音声信号に対して置換を行う。周波数領域でのスクランブルと異なり、この方式では必ず音声の遅延が発生する。また送信側と受信側とが同じ置換を行うためにタイミング同期の手段が必要になる。復号後の音質は帯域分割の置換方法より良いとされるが、秘話性はあまり高くない。
この方式は第二次世界大戦中に多くの国で研究が行われ、アメリカの戦術通信用秘話装置SIGJIPなどで使われた。当時は複数の読み取りヘッドを持った複雑な磁気記録装置が必要だったが、現在では音声信号をデジタル信号に変換しデジタルメモリに記憶させて読みだせばよいため、容易に実現できるようになった。
この方式では、セグメントの長さや1フレームあたりのセグメントの数、音声の遅延時間はすべてトレードオフの関係にある。セグメントの長さが短かすぎると波形の連続性が崩れて帯域幅が広がり音質が悪化するためあまり短くできない。しかし長すぎる場合は1セグメント内の情報が多くなり秘話性が低下する。置換の単位となるフレーム全体の長さはセグメント長と1フレームあたりのセグメント数が増えるほど長くなる。