Idea

Was ist Idea?

Idea ist eine 128-Bit Verschlüsselung. Bei Pocsag wird damit die Meldung verschlüsselt, die an den Pager übertragen wird.
Mehr dazu bei Swissphone: Idea Verschlüsselung

Technisch wird Idea auf Wikipedia folgendermaßen erklärt: Idea bei Wikipedia

Warum gibt es im Radio Operator keine fertige Idea Entschlüsselung?

Mit Kenntnis des Passworts ist die Umsetzung einer Idea-Entschlüsselung nicht besonders kompliziert. Uns ist aber weder das Passwort bekannt, noch haben wir die Möglichkeit oder die Befugnis unsere Entwicklung diesbezüglich zu testen. Deshalb bieten wir interessierten Programmierern die Möglichkeit dies selbst zu implementieren.

Schnittstelle im Radio Operator für Entwickler

Im Radio Operator ist eine Schnittstelle für Idea Entschlüsselung von Pocasg Meldungstexten vorgesehen.

Um Entwicklern die Möglichkeit zu bieten einen Pocsag-Idea-Entschlüsselung zu realisieren wird ein Visual Studio 2008 C# Projekt zur Verfügung gestellt.
Nach dem Kompillieren erhält man eine DLL, die im Radio Operator eingebunden werden kann.
Die ClassLibrary mit dem Namen "Idea Pocsag" mit leerem Funktionsrumpf kann [hier] heruntergeladen werden.

Hierbei muss die Methode die leere Methode "Decrypt" befüllt werden.

Zu implementierende Methode

Die Methode sieht folgendermaßen aus:

/// <summary>
/// Vorgesehen zur Entschlüsslung von verschlüsselten Pocsagmeldungen
/// </summary>
/// <param name="input">verschlüsselter Nachrichtentext</param>
/// <returns>entschlüsselten Nachrichtentext</returns>
public string Decrypt(string input)
{
    //--> eigene Implemenatation hier

    //In der Member List _keys befinden sich die Schlüssel

    string output = input;

    return output;
}

Zusatzinformation

Aufgerufen wird das im Radio Operator ab Version 1.0.8 in der Pocsag Routine bereits in der Standardinstallation so:

//IDEA Verschlüsselte Nachricht entschlüsseln
IdeaPocsag.Crypto ideaDecrypter = IdeaPocsag.Crypto.GetInstance();
text = ideaDecrypter.Decrypt(text);

Die Crypto Klasse wird mit einem Singleton erzeugt, dies ist jedoch bereits in dem herunterzuladenen C#-Projekt implementiert.

Integration in den Radio Operator

Hat man eine eigene Implementierung der Decrypt Methode erstellt, so kompilliert man das Projekt als Release, (Any Cpu) und überschreibt die IdeaPocsag.dll im Programmverzeichnis damit.

Anschließend muss das Passwort für die Entschlüsselung noch in der Config-Datei hinterlegt werden.

Hierzu öffnet man die generalsettings.xml in %appdata%\RadioOperator und fügt am Ende (jedoch noch vor dem </xml>) der Datei folgenden Block hinzu:

<IDEA>
<Key value="mein Schlüssel" />
<Key value="abc" />
<Key value="def" />
<Key value="blabla" />
</IDEA>

Es können theoretisch beliebig viele <Key> Einträge hinterlegt werden. In der Praxis können in einem DME nach derzeitigem Kenntnisstand bis zu 32 Schlüssel hinterlegt werden.

Anhaltspunkte für Entwickler

http://www.bouncycastle.org/csharp/
http://www.cc-community.net/showpost-91255.html
http://www.hackchina.com/en/cont/98860

Weiteres

http://www.funkmeldesystem.de/foren/showthread.php?t=50252