Forum: Mikrocontroller und Digitale Elektronik Verschlüsselung Sprache bei GSM CSD


von Niels K. (niels-k)


Lesenswert?

Hallo zusammen,

ich arbeite (Hobby) gerade an einer verschlüsselten Sprachübertragung 
mit Mobiltelefonen. Wie bereits festgestellt werden konnte, werden von 
einigen Netzbetreibern Datenverbindungen zwischen zwei Mobiltelefonen 
zugelassen.

Das bestehende Problem ist, dass diese Sprachtelefonate abgehört werden 
können. Daher meine Idee, die Sprache extern zu digitalisieren und in 
Form von Datensätzen via CSD zu übertragen.

Was bisher geschah:
Der Thread entwickelte sich in eine andere Richtung:
Beitrag "GSM + GPS Modul von Pollin"

Meine bisherigen Ergebnisse lassen erkennen, dass die gegebene Datenrate 
von 14,4 kBit (ohne Fehlerkorrektur) wunderbar aussreicht, um Sprache 
unkomprimiert zu übertragen.

Bei meinem Aufbau wird ein Audiosignal verstärkt, über den ADC des 
Atmega eingelesen, anschließend auf 7 Bit komprimiert. Die Werte liegen 
dann im Bereich zwischen 1 bis 127. Diese Werte werden über die serielle 
Schnittstelle an einen anderen Controller gesendet und dort über einen 
R2R-DAC über drei Verstärkerstufen wieder in ein Audiosignal 
umgewandelt. Das Ganze ist unkomprimiert. Ich bin überrascht, wie gut 
das klingt. Bei 9600 Bit/s lässt sich Sprache gerade so verstehen. Ab 
ungefähr 13000Bit/s kommt auch Audio gut rüber.

Hier die Dateien:
http://www.mikrocontroller.net/attachment/59646/Aufnahme_bei_9600Bps.wav
http://www.mikrocontroller.net/attachment/59647/Aufnahme_bei_19200Bps.wav

Die Ergebnisse klingen mit einem Kopfhörer deutlich besser. Es konnte 
mittlweile durch einen Filter, die Qualität für Sprache verbessert 
werden. Von demher sind diese Dateien nicht mehr der aktuellste Stand.

Das Ganze wurde bereits mit zwei Siemens A60 Mobiltelefonen getestet. 
Die Übertragung funktionierte bidirektional problemlos. Daher werde ich 
an dieser Stelle auch weitermachen.

Nun zu den Fragen:
Ich möchte die Übetragung noch verschlüsseln. Die übertragenen Daten 
sehen wie folgt aus:

http://www.mikrocontroller.net/attachment/59730/Auszug_Sprach_Daten.txt

Die Werte sind alle im 7Bit Bereich des ASCII-Codes. Dieser kann über 
CSD übertragen werden. Wie kann man die Übertragung verschlüsseln. Wer 
sinnvolle Ideen hat, bitte hier posten.

von Niels K. (niels-k)


Lesenswert?

Was, keiner hat eine Idee? Sind doch sonst immer gleich dabei ;-)

von Maik W. (werner01)


Lesenswert?

den originalen AD-Werten könnte man ja andere zuweisen und packen oder 
vocoder, die wurden ja genau wegen so was gebaut?
Oder vieleicht am Telefon einfach nur ganz leise reden?


mfg

von Frank (Gast)


Lesenswert?

Ich denke, das ließe sich per Software direkt im Handy-Betriebssystem 
einfacher machen. Es ist definitiv Alles bereits vorhanden und es 
genügen ein par Bytes ... fehlen nur die Infos und die passenden 
Softwarewerkzeuge.

Was du machen willst, nennt sich wohl "Scrambler" und das gab es schon 
bei den analogen Telefonen. Dabei wurde das Eingangssignal wie bei einem 
Equalizer in mehrere schmale Frequenzbänder zerteilt. Diese wurden in 
andere Frequenzbereiche transformiert (gemischt), wieder zusammengesetzt 
und übertragen.

Auf der Empfängerseite wurde diese Vertauschung rückgängig gemacht. Ohne 
Kenntnis, welcher Frequenzbereich mit welchem vertauscht wurde, war kein 
Entschlüsseln möglich und ein Zuhörer hörte nur unverständliches 
Zwischern, Blubbern und Zirpen ...

von chris (Gast)


Lesenswert?

ist auch schon in tel eingebaut, nennt sich A8 sowie A3 und wird dann 
anstelle des A5 verwendet, aber wenn du das von 0 auf machen, willst,
bitte.

von siegmar (Gast)


Lesenswert?

Hi Niels,

gibt es natürlich alles schon und ich kann mich entsinnen,das es auch 
diesbezüglich Opensource Projekte gab bzw. gibt.
Leider ...hab ich sie nicht zur Hand.
Deshalb empfehle ich Dir einfach mal ausgiebig zu recherchieren.

Noch eine gute Nacht
Gruß
Siegmar

von Niels K. (niels-k)


Lesenswert?

@ Frank: Ich vermute, dass Du von Handys sprichst, die ein 
Betriebssystem haben, dass man ändern kann, so etwas wie Symbian oder CE 
- Systeme. Ich habe tatsächlich noch einen MDA, der mit einem 
echtzeitfähigen WindowsMobile (CE) läuft. Damit müsste man sogar die 
volle AES Verschlüsselung umsetzen können.

Mir ging es aber eher um eine Lösung mit dem uC - einfach aus Gründen 
des Bastlertriebs ;-). (Cryptophone machen das, glaube ich auch mit 
solchen CE-Geräten).

Scrambler? - Waren das die Geräte, die in "Die Hard II" als Funkgeräte 
genutzt worden - so viele Möglichkeiten dürfte es da aber nicht geben. 
Bei Frequenzscheibchen von je 50 Hz (nicht logarithmisch) wären das bei 
rund 2000 Hz nur rund 100 Kombinationen. Oder war das anders gemeint?

@chris: Diese Verschlüsselung ist aber nur vom Mobiltelefon zum 
Funkmasten aktiv, danach werden alle Gespräche von der Zelle zur 
Basisstation unverschlüsselt übertragen (Kabel oder Mikrowelle). Aber 
selbst diese Verschlüsselung kann innerhalb weniger Minuten ausgelesen 
werden...


--> Gibt es günstige externe Verschlüsselungschips, oder einen einfachen 
Walzencode. Es würde mir genügen, wenn keine Schlüsselübergabe erfolgen 
muss. So etwas wie die Engima. Einmal den Schlüssel für jeden Tag 
vordefinieren und dann nur die entsprechenden Walzen tauschen. Walzen 
dann natürlich als Speicher zu sehen.

von Reinhard S. (rezz)


Lesenswert?

Frank schrieb:
> Dabei wurde das Eingangssignal wie bei einem
> Equalizer in mehrere schmale Frequenzbänder zerteilt. Diese wurden in
> andere Frequenzbereiche transformiert (gemischt), wieder zusammengesetzt
> und übertragen.
>
> Auf der Empfängerseite wurde diese Vertauschung rückgängig gemacht. Ohne
> Kenntnis, welcher Frequenzbereich mit welchem vertauscht wurde, war kein
> Entschlüsseln möglich und ein Zuhörer hörte nur unverständliches
> Zwischern, Blubbern und Zirpen ...

Hat leider den Nachteil das eben eine feste Zuordnung nötig ist. Ähnlich 
wie wenn ich beim Schreiben jedes "e" durch ein "o" usw. vertausche...
Also eher unsicher :)

von Gast (Gast)


Lesenswert?

PGP?

von gadgaet (Gast)


Lesenswert?

Man könnte das ganze mit einem wechselnden Code verxorn. Der Empfänger 
kennt auch die Gesetzmäßigkeit(en), nach denen die Codes berechnet 
werden und weiß so, wie er es wieder zu entschlüsseln hätte.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Der AVR wird eine "richtige" Verschlüsselung (AES, XTEA o.ä.) vermutlich 
nicht schnell genug schaffen, für einen kleinen ARM oder einen Xmega mit 
AES-Hardware-Unterstützung wäre das aber kein Problem.

Dem Analogteil deiner Schaltung solltest du allerdings DRINGEND ein paar 
Aliasing-Filter (Bandpass mit Grenzfrequenz bei halber Abtastrate) am 
Ein- und Ausgang spendieren, falls du das noch nicht gemacht hast. Das 
wird die Tonqualität drastisch verbessern.

von Niels K. (niels-k)


Angehängte Dateien:

Lesenswert?

Andreas Schwarz schrieb:

> Dem Analogteil deiner Schaltung solltest du allerdings DRINGEND ein paar
> Aliasing-Filter (Bandpass mit Grenzfrequenz bei halber Abtastrate) am
> Ein- und Ausgang spendieren, falls du das noch nicht gemacht hast. Das
> wird die Tonqualität drastisch verbessern.

Das mit den Filtern habe ich heute morgen versucht umzusetzen. Betonung 
liegt auf "versucht". Wie legt man diese Filter richtig aus. Sagen wir 
ganz konkret, dass ich alle Frequenzen von 200 Hz bis 3000 Hz 
durchlassen möchte. Das würde dann wohl auf einen Bandfilter 
hinauslaufen. Übrigens habe ich mir Dein Dokument des 
Funktionsgenerators in Bezug auf Filter und R2R Netzwerk durchgelesen. 
Fand ich gut aufgebaut.

Wie sind die Kapazitäten und Widerstände zu wählen. Ich habe einige 
Kombinationen versucht. Das Ergebnis war einfach nur eine Abschwächung 
des Pegels, nicht aber eine "Verbesserung" des Gesamtsignals oder gar 
eine Filterung einer Frequenz.

Ist gar nicht so einfach. Ich ging immer davon aus, das mit geringer 
Abtastrate und niedriger Auflösung die hohen Frequenzen ganz von selbst 
verschwinden. Leider kommen immer noch einige hochfrequente Töne durch. 
Ich habe in den Anhang ein bisheriges Ergebnis einer Audiodatei gelegt. 
In dieser wird die Baudrate vier mal nach unten hin gesenkt. Begonnen 
wird mit 115200, es folgt 57600, gefolgt von 19200 und schließlich 9600 
Bps.

von Niels K. (niels-k)


Lesenswert?

Nach einigem Hin und Her wird eine "schwache" RSA-Verschlüsselung mit 
Schlüsselübergabe in Form einer SMS zur Anwendung kommen.

Der Absender wird dann einen Datenanruf zum Empfänger aufbauen (oder 
umgekehrt). Diese ist bereits verschlüsselt. In der ersten Sequenz 
erfolgt die Übergabe des öffentlichen Schlüssels des Empfängers zum 
Absender hin.

Die geheimen Schlüssel werden in einer SMS auf jedem Mobiltelefon 
gespeichert. Das hat den Vorteil, dass der Anwender diese komfortabel 
ändern kann. Die (natürlich nicht abgesendete SMS) wird dann vom uC 
ausgelesen und der Schlüssel extrahiert und anschließend gelöscht.

von Harald Naumann (Gast)


Angehängte Dateien:

Lesenswert?

Eine Sprachverschlüssung mittels digtalen Voice Interface am GSM Modul 
habe ich hier beschrieben:
http://www.gsm-modem.de/gsm-voice-encryption.html
Rezept A:
- GSM Modul mit DVI Interface (z.B. Telit)
- MCU
- Audio Codec Maxim MAX 9853 oder WM 8978

Rezept B:
- GSM Modul mit DVI Interface (z.B. Telit)
- Audio Codec DA9034
- PXA310  Marvell
Rezept B wurde für den Aufbau eines PDA mit Sprachverschlüsselung 
benutzt. Rezept A ist mehr etwas für den "Heimbedarf". Alle Bauteile füe 
Rezept A sind frei für jeden auch in Einzelstückzahlen verfügbar.

Gruß
Harald

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.