» Steganographie zum Experimentieren mit der Verschlüsselung von Dateien

bitoperationen in cNeuen Thread eröffnenNeue Antwort erstellenNeu hier, hlife beim programmieren bitte!!
AutorNachricht
Junior 
Name: Voller Name als Anagramm: Fitje Weshoms
Geschlecht:
Fahrzeug: Yamaha YZF R6 Thundercat
Anmeldedatum: 15.07.2012
Beiträge: 92
Wohnort: Amberg, Oberpfalz
26.06.2013, 19:01
zitieren

Datenverschlüsselung zum Experimentieren

Dieser Artikel ist nur als Anregung zum Nachdenken über eigene Konzepte zu Verstehen, nicht dafür andere Neugierige im Internet zu ärgern……

Haben Sie schon im Fernsehen einen dieser alten Hollywood-Schinken gesehen, bei dem es um Spionage geht? Oft werden dort irgendwelche geheimen Dokumente mit Hilfe einer Minikamera fotografiert und dann als Mikrofilm zum Gegner transportiert. Solch ein Verfahren nennt man Steganographie.
Im zweiten Weltkrieg dachte sich ein deutscher Soldat einmal folgendes als Scherz aus: In einem Feldpostbrief schrieb er unter anderem(Sinngemäße Kurzfassung):"Sieh doch einmal unter der Briefmarke nach!"Die Gestapo nahm so vorsichtig wie möglich die Briefmarke ab. Darunter war zu lesen:
"War es schwer Sie abzukriegen?"Der Scherz des Soldaten endete für Ihn mit dem Tod in einem Konzentrationslager.

Nachrichten kann man auch mit Hilfe von Schriftstücken wie etwa Briefe, Bücher, Zeitungen oder Werbeanzeigen übermitteln. Die einzelnen Bestandteile dieser Nachricht werden so in einer ganz bestimmten Reihenfolge zur Datenübermittlung benutzt.
Beispiel 1:
Nun kommen wir zu einer Verschlüsselungstechnik die bei richtiger Anwendung ein interessantes Experiment darstellen kann. Mit der folgenden Methode lässt sich nahezu alles was dazu dient, Informationen zu speichern, dazu benutzen um geheime Informationen zu transportieren. Selbst wenn jene dazu nicht konzipiert wurden.

Sehen wir uns einmal folgende Worte eines Mannes zu seinem „alten Freund“ an:
Hallo Anton! Nach so vielen schönen Jahren in Berlin an der guten alten Spree sahen wir uns heute Nachmittag wieder.

Lesen wir nun bestimmte Buchstaben, dann können
Wir lesen: Anschlag heute Nacht!

Der Codeschlüssel könnte dabei wie folgt aussehen:
2-1,3-1, 4-1, 6-2,7-3,9-4,10-1,12-1,15-3-4,17-1,18-4-5,19-1-2-3-4-8

Die erste Zahl vor dem Bindestrich gibt das Wort, die darauf folgende Zahl den Buchstaben zur Erstellung
der Nachricht an. So etwas kann man mit Briefen, Büchern, Zeitungen, ganz normalen Dateien, Daten- oder CDs. (sofern jene alle notwendigen Zeichen enthalten), machen.
Bei den CDs müsste zuerst ein DIN-ISO-Abbild hergestellt werden. Daraus wird
zum Beispiel mit einem speziellen Leseprogramm oder mit einem Hexeditor die einzelnen Sektoren eingelesen, um bestimmte Bytes zu kopieren. Technisch
gesehen reicht ein Programm zur Erstellung eines DIN-ISO-Abbildes einer CD, ein Leistungsfähiger HEX-Editor und etwas Arbeit.
Falls benötigte Bytes nicht auf der CD vorkommen, müsste der Schlüssel anders lauten:
Absolute Position des Bytes, Rechenart, Zusatzwert
Rechenarten:
0 = keine Operation
  1. = Addition
  2. = Subtraktion
Den Quellcode und die lauffähige DEBUG-Version als Zip-Datei gits am Ende dieses Artikels.

Beispiel:
33, 2, 44 bedeutet: Byte Nr. 33, Subtraktion, 44 = Byte Nr.33 - 44
34, 1, 12 bedeutet: Byte Nr. 34, Addition, 12 = Byte Nr.34 + 12
24, 0, 92 bedeutet: Byte Nr. 24, Keine Operation, 92 = Byte Nr.34 = Byte Nr.34

Wenn zum Beispiel vom Dateibeginn...
das Byte Nr.33 der Dezimalwert 88 gelesen wird: 88 - 44 = 44.
das Byte Nr.34 der Dezimalwert 34 gelesen wird: 34 + 12 = 46.
das Byte Nr.24 der Dezimalwert 34 gelesen wird: 24 = 24, da keine Rechenoperation stattfindet.

Der Schlüsselcode wird dann drei mal so lange als die codierte Nachricht.
Die Bytefolge lautet dann(dezimale Notation):
033, 002, 044, 034, 001, 012, 024, 000, 092
So könnte man jede Art von Informationsträger zum Chiffrieren nehmen.
Rein theoretisch sogar die Neujahrsansprache der Bundeskanzlerin oder des US-Präsidenten.
__________________________________________________________________________________________________________________
Funktionsbeispiel in C:

/*
Diese Funktion ist ein Beispiel wie so eine Dechiffrierung aussehen könnte.
Als erster Parameter fungiert der Textfundus,
zweiter Parameter ist die Buchstabennummer der dechiffrierten Nachricht,
dritter Parameter der Codeschlüssel.
*/

int Dekodieren(unsigned int Codeletter[], int Letternummer, int Schluessel[])
{
int Rechenart, Zusatzwert, Nachricht, Position;
/*
Positionserrechnung der Rechenelemente(Codeletter, Rechenart, Zusatzwert)
Byte: 0 1 2 3 4
 0 1 2 | 3 4 5 | 6 7 8 | 9 10 11 | 12 13 14
 1*3=3 2*3=6 3*3=9 4*3=12
 */
if (Letternummer > 0)
Letternummer = Letternummer * 3;
 
Position = Schluessel[Letternummer];
Rechenart = Schluessel[Letternummer + 1];
Zusatzwert = Schluessel[Letternummer + 2];
if (Rechenart == 0) Nachricht = Codeletter[Position];
if (Rechenart == 1) Nachricht = Codeletter[Position] + Zusatzwert;
if (Rechenart == 2) Nachricht = Codeletter[Position] - Zusatzwert;
return(Nachricht);
}
Reihenfolge zur Kodierung
1. Quelle aussuchen: Bzw. eine CD, Texte Bücher Werbeprospekte, Sektoren von Disketten, WAV-Dateien usw...
2. Benötigte Quellpassagen einlesen und als Datei speichern.
3. Per Zufall Zeichenfolge festlegen, (Anzahl so hoch wie Dateilänge)
4. einzelne Quellbytes mit Nachrichtenbytes vergleichen und Differenz errechnen
5. Aus Differenz Rechenart und Zusatzwert festlegen
6. Positionswert(Zufallszahl), Rechenart und Zusatzwert in Codeschlüssel abspeichern
Beispielprogramm in C:
/*Reihenfolge zur Kodierung
1. Quelle aussuchen
2. Quellpassagen einlesen
3. Per Zufall Zeichenfolge festlegen
4. mit Nachrichtenbyte vergleichen und Differenz errechnen
5. Rechenart und Zusatzwert festlegen
6. Positionswert, Rechenart und Zusatzwert in Codeschlüssel abspeichern
*/




/* selbstgeschriebener Header random.h für die Funktion random und
* getrandom . Wenn RANDOMIZE verwendet wird, wird bei einer
* Schleifenanweisung zur Erzeugung von Zufallsdatenfeldern diese
* Anweisung nur einmal benötigt, sonst werden immer die gleichen Zahlen
* erzeugt
* Beispiel
* #include <kopf.h>
* #include <random.h>
* void setranval(int (*wert)[16])
* {
* int sleia, sleib;
* for (sleia = 0; sleia <= 15; sleia++)
*  {
*   numal: (*wert)[sleia] = getrandom( 0, 15 );
*         if (sleia > 0)
*          for (sleib = 0 ; sleib <= (sleia - 1); sleib++)
*         if ((*wert)[sleib] == (*wert)[sleia])
*          goto numal;
*  }
*
* }
*
* void main(void)
* {
* int sleia, sleib, zuzko[16], zko[16];
* RANDOMIZE();
* for (sleib = 0; sleib  <= 15; sleib++)
*  {
*  setranval(&zuzko);
*  printf("\n");
*   for (sleia = 0; sleia <= 15; sleia++)
*    printf("%d ", (zuzko)[sleia]);
*  }
* }
* ----------- Beispielende--------------------- */
#ifndef _INC_RANDOM
#define _INC_RANDOM 1


#include <stdlib.h>
#include <time.h>
#include <malloc.h>
 /* dient zur Überprüfung, ob RANDOMIZE mehr als einmal
  * bei Programmablauf aufgerufen wurde  */
int randinitcount = 0;
               
/* #define RANDOMIZE() srand( (unsigned)time( NULL ) )
 *
 * alte Aefinition der "Funktion" getrandom:
 *
 * #define getrandom( min, max)(( rand() % (int)(max - min + 1)) + (int)(min))
 * letzte Änderung am 17.10.2002 um 20.00 Uhr  */

int __cdecl getrandom( int min, int max)
{
int zuza, zuza2, zuza3, rewer;
zuza  = rand();
zuza2 = (max - min + 1);
zuza3 = zuza % zuza2;
rewer = zuza3 + min;
return rewer;
}

long getlongrand(long min, long max)
 {           
unsigned long rewer = 0, rest, minimum = 0, zuza;
unsigned int bereich, limit = 32767, maxbereichsfeld, minbereichsfeld;
 
 maxbereichsfeld = (unsigned int)(max / 32767);
 minbereichsfeld = (unsigned int)(min / 32767);
 
 bereich = getrandom(minbereichsfeld, maxbereichsfeld);
 
 minimum = min;
 if (bereich >= 1) minimum = (unsigned long)(32767 * bereich);
 rest = max - minimum;
 
 if (rest < 32767) limit = (unsigned int)rest;
 zuza = (unsigned long)getrandom(0, limit);
 
 rewer = minimum + zuza;
 
 return((long)rewer);
 }

#define random(max ) getrandom(0, max)

void RANDOMIZE(void)
{
long bwer;
srand( (unsigned)(time(&bwer) % 20));
if (randinitcount < 2)
 randinitcount++;
}

/* Rückgabewert ist der tatsächlich verwendete Wertebereich (Parameter 2)
 * Aufruf Parameter 1: &Arrayname  */

int setranval(unsigned int (*wert)[300], int wertebereich)
{
int maxi = 255;  /* Legt den Arbeitsbereich von 0 bis 255 fest */
int slei, a, sleia,  zuze, maxgre, szahl, zahl, fiwer[300], zuza[300];
if ((wertebereich <= 255) && (wertebereich >1))
 maxi = wertebereich;
zuze = 0;
maxgre = maxi;
/* Initialisieren des Arrays "fiwer" mit Werten von 0 bis 255 */
for (slei = 0; slei <= maxi; slei++)
 fiwer[slei] = slei;
/* Aufruf von RANDOMIZE nur einmal bei Programmablauf, sonst
 * kommen pro "Würfelrunde" immer nur die gleichen Zahlen  */
if (randinitcount == 0)
 {
 RANDOMIZE();
 randinitcount++;
 }
for (a = 0; a <= maxgre; a++)
{
  szahl =  getrandom( 0, maxi);   /* generiert Zufallszahl "szahl" von 0 bis maxi  */
  zahl = fiwer[szahl];

   for (sleia = 0; sleia <= maxi; sleia++)
if (fiwer[sleia] == zahl)
{
  --maxi;
  for (slei = sleia; slei <= maxi; slei++)
   fiwer[slei] = fiwer[slei + 1];
   zuza[zuze] = zahl;
  ++zuze;
}
}

/* Übertrag der Werte des lokalen Arrays zuza in das Array wert */
for (slei = 0; slei <= maxgre; slei++)
(*wert)[slei] = zuza[slei];

return(maxgre);
}

/* Ueberprueft ob die Permutationsreihe fehlerfrei ist.
 * Aufruf: Differenz_bei_Fehler =  TellyDec(long_huge_array, Arraygroesse, &Pruefsumme), &Istwert);
 *
 */
long TellyDec(long huge wert[], long grenze, long (*quersumme), long (*tstwrt) )
{
long slei, rewer = 0;
(*tstwrt) = (*quersumme) = 0;

for (slei = 0; slei < grenze; slei++)
 {
  (*quersumme) += slei;     /*printf("\nquersumme%ld tstwert[slei]%ld", quersumme, tstwrt);*/
  (*tstwrt)    += wert[slei];  /*printf("\ntstwrt%ld wert[slei]%ld", tstwrt, wert[slei]); */
 }

rewer = (*quersumme) - (*tstwrt);

return(rewer);         
}

/* Im Gegensatz zu WORD-Variante muss die DWORD-Variante mit nur 2 Arrays
 * auskommen. Diese muessen  von Aussen erst mit "halloc" Allokiert werden.
 * Parameter eins ist dabei das Array, indem das Ergebnis nach abarbeiten
 * der Funktion stehen soll. Parameter 2 ist dabei das Hilfsarray.
 * Die Groesse der Arrays muß explizit in Parameter 3 angeben werden
 * Aufruf: Arraygroesse-1 =  SetRanValNoLimit(ErgebnisArray, Hilfsarray, Groesse_der_einzelnen_Arrays )
 */

long SetRanValNoLimit (long huge wert[], long huge zuza[], long arraygroesse)
{
long rewer = 0;
long maxi = arraygroesse - 1;  /* Legt den Arbeitsbereich von 0 bis 255 fest */
long keylength = arraygroesse;
long slei, a, sleia,  zuze, szahl, zahl;

/* Initialisieren des Arrays "fiwer" mit Werten von 0 bis arraygroesse */
for (slei = 0; slei <= keylength; slei++)
 {
  wert[slei] = slei;
  zuza[slei]  = 0;
 }
/*folgende printf-Anweisung wurde nur zu Testzwecken implementiert:
  printf("initial erreicht"); 
  dessen Entfernung nach dem Test wurde vergessen, so
  das bem Linken der Windows-Applipikation der Laufzeitfehler
  L2029 (= unresolved external) hervorgerufen wurde ein vermeiden mit
  anderen Linkereinstellungen ist erfolglos, da dir printf-Anweisung nur
  für MSDOS-Applipikationen verwendet werden darf, nicht für
  Windows-Programme.
 *
 * Aufruf von RANDOMIZE nur einmal bei Programmablauf, sonst
 * kommen pro "Würfelrunde" immer nur die gleichen Zahlen  */

if (randinitcount == 0)
 {
 RANDOMIZE();
 randinitcount++;
 }

zuze = 0;

for (a = 0; a < keylength; a++)
{
  szahl = getlongrand(0, maxi);  /* generiert Zufallszahl "szahl" von 0 bis maxi  */
  zahl  = wert[szahl];           /* liest Wert von Variable wert[szahl] */

   for (sleia = 0; sleia <= maxi; sleia++)
if (wert[sleia] == zahl)
{ /* suche gefundenen Wert in Array wert[], wenn gefunden aus Liste streichen
    * und in Array zuze uebertragen, dann Arraygroesse von Wert[] um eins kuerzen  */
  for (slei = sleia; slei <= maxi; slei++)
     wert[slei] = wert[slei + 1];
  zuza[zuze] = zahl;
  ++zuze;
  if (maxi >= 0) --maxi; /* solange Arraygroesse von wert[]-Array > 0 dekrementieren */
  if (maxi < 0) goto fertig;  /*wenn alle Werte uebertragen (erst bei maxi <0 der Fall) Ende */

}
}

/* Übertrag der Werte des lokalen Arrays zuza in das Array wert */
fertig: for (slei = 0; slei < keylength; slei++)
        wert[slei] = zuza[slei];
        rewer = keylength - 1;
        if (rewer == 0) hfree(zuza);
         
return(rewer);
}

#endif
/* End of Header */










#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <random.h>


void main(void)
{
int slei, differenz, laenge, rechenart, schluesseloffset, reihenfolge[600];
char quelltext[200], nachrichtentext[200], schluessel[600];
/* einlesen der Quelltextpassagen (1 + 2)*/
printf("\nBitte Quelltext eingeben(bis 180 Zeichen): ");
scanf("%[^\n]", quelltext);
oldclpuf();
/* einlesen des zu codierenden Textes */
printf("\nBitte Nachrichtentext eingeben(bis 180 Zeichen): ");
scanf("%[^\n]", nachrichtentext);
/* Nachrichtenlaenge ermitteln */
laenge = strlen(nachrichtentext);
schluesseloffset = 0;
printf("\nNachrichtenlaenge: %d", laenge);
/* Zufallsreihenfolge von Integerzahlen generieren: (4)
 verwendung noch nicht im Beispiel Integriert*/
RANDOMIZE();
for (slei = 0; slei < laenge; slei++)
 reihenfolge[slei] = getrandom( 0, laenge);
for (slei = 0; slei < laenge; slei++)
 {
 /* Position 5*/
 differenz = nachrichtentext[slei] - quelltext[slei];
 if (differenz == 0) rechenart = 0;
 if (differenz > 0) rechenart = 1;
 if (differenz < 0) rechenart = 2;
 /* Position 6*/
 schluessel[schluesseloffset] = slei;
 schluessel[schluesseloffset + 1] = rechenart;
 schluessel[schluesseloffset + 2] = differenz;
 schluesseloffset += 3;
 }
printf("\nCode-Schluessel: ");
for (slei = 0; slei < (laenge * 3); slei += 3)
 printf("- %d, %d, %d -", schluessel[slei], schluessel[slei + 1], schluessel[slei + 2]);
}
_________________________________________________________________________________________________________________________
Verschlüsselungsalgorithmus:
Differenzbyte = Nachrichtenbyte - Quellbyte;
if (Differenzbyte== 0) Rechenart = 0;
if (Differenzbyte> 0) Rechenart = 1;
if (Differenzbyte < 0) { Rechenart = 2; Differenzbyte = -1; }
Falls keine Differenz Nullwert beim Differenzbyte. Falls Nachrichtenbyte positiv, 1 bei Differenzbyte.
Wenn Nachrichtenbyte < Quellbyte dann 2 als Differenzbyte und Differenzbyte muss in einen Absolutwert
Konvertiert werden, sonst ist das Differenzbyte eine negative rationale Zahl.
Dekodierungsalgorithmus:
if (Rechenart == 0) Nachricht = Quellbyte;
if (Rechenart == 1) Nachricht = Quellbyte + Differenzbyte;
if (Rechenart == 2) Nachricht = Quellbyte - Differenzbyte;
Da nur ein positiver Vorzeichenloser Bytewert als Differenzbyte abgespeichert werden kann, muss
Anstatt der Addition des Quellbytes mit dem eigentlich negativen Wert des Differenzbyte eine Subtraktion
des Differenzbytes vom Quellbyte vorgenommen werden, da Binärwerte nur natürliche Zahlen beinhalten.
Rechenartidentifikation im 2ten Byte des Schlüsselsatzes:
  1. = Nachricht - Quelle = +Differenz; (Positive Rationale Zahl als Wert der Variable)
  2. = Nachricht - Quelle = -Differenz; (negative Rationale Zahl als Wert der Variable)
    Positionserrechnung der Rechenelemente(Codeletter, Rechenart, Zusatzwert)
    Byte: 0 1 2 3 4
    0 1 2 | 3 4 5 | 6 7 8 | 9 10 11 | 12 13 14
    1
    3=3 2*3=6 3*3=9 4*3=12
    Der eigentliche Schwachpunkt ist das Differenzbyte der Bytegruppen welche in Form von Ternen angewandt werden.
    Dies kann nur durch eine zusätzliche Einbringung eines Codewortes in die Verschlüsselung
    revidiert werden.
    Bytefolge des Codeworts: 012345
Mögliche Kodierung des Differenzbytes als Fragment eines C-Programms:
stringoffset = 0;
codewortlaenge = strlen(codewort);
/*Kodieren*/
diffcoded = diffbyte + codewort[stringoffset++];
if (newdiff > 255) diffcoded -= 255;
/*Dekodieren*/
diffdecoded = diffbyte + codewort[stringoffset++];
if (diffdecoded < 0) diffdecoded -= 255;
if (stringoffset >= codewortlaenge) stringoffset = 0;

Im oberen Beispiel ist die Verwendung der darin generierten Zufallzahlen noch nicht Implementiert, ebenso ist die Länge der zu kodierenden Nachricht auf 180 Buchstaben begrenzt. Dies soll ja nur ein Lehrbeispiel sein.
Bezüglich obiger Beispiele mit den Büchern und Zeitungen ist zu sagen, gerade ältere Exemplare sind in gewissen Ländern schwer zu bekommen, da durch die jeweilige Regierung verboten, bzw. das Buch „Die verbotene Wahrheit“ von Jean-Charles Brisard und Guillaume Dasquié zu nennen.
Dieses Buch ist in der Schweiz verboten.
Darin werden die angeblichen Verstrickungen der USA mit Osama bin Laden beschrieben. Auch bei uns in der Bundesrepublik Deutschland gibt es solche Fälle. Ein gutes Beispiel ist „Mein Kampf“ von Adolf Hitler. Nach dem Sieg über den NS-Verbrecherstaat
des dritten Reiches wurden die meisten der bis dahin gedruckten Bücher vernichtet. Ältere Exemplare, besonders bestimmte Auflagen sind im Original nicht zu bekommen. Selbst wenn man den Code und den Schlüssel einer geheimenNachricht hat, dürfte es schon eine ganze Weile dauern um ein echtes Exemplar zu bekommen. Bis dahin könnte die Nachricht schon veraltet sein. Möglicherweise ist es sogar unmöglich, diese Exemplare zu beschaffen.
Die heutigen Exemplare sind zudem nur mit Kommentaren versehen zu erhalten. Deswegen sind sie zur Dekodierung sehr bedingt geeignet. Außerdem, wer sagt denn, das bei allen Auflagen aller Verlage die selben Textpassagen auf der
selben Seite und an derselben Stelle sitzen? Man muss dabei beachten das der Nachrichtensender und der Empfänger zwei identische Exemplare brauchen. Für den Versuch den Code zu knacken braucht man aber mindestens ein drittes.
Gerade bei sehr alten Büchern ist dies unmöglich. Nehmen sie zum Beispiel ein Kochbuch aus dem Jahre 1890, ein
Paar gleiches Bücher, die jene Zeit der Bücherverbrennung der Nazi-Diktatur überlebt haben, damals verbotene Literatur. Vollkommen unbeschädigt, dürften drei Identische Exemplare sehr schwer aufzutreiben sein, noch weniger ein viertes für andere, um denen so die Dechiffrierung zu ermöglichen....
Rein theoretisch könnte man auch den Inhalt eines ganz gewöhnlichen Kassenbons eines Supermarktes, oder die Geburtsdaten oder Namen von Bekannten oder Orten, Ereignisse in deren Leben verwenden, oder die Einstellungen, der Aufbau von Rechnern und Betriebssystemen. Falls bei einer Durchsuchung die Festplatten gefilzt werden sind auf dem ersten Blick keine Daten von Relevanz sichtbar. Möglichkeiten sind geradezu riesig, da ganz unauffällige gewöhnliche Alltagsgegenstände als Datenträger herangezogen werden können. Es reicht schon Gebrauchsanweisungen von Medikamenten, die Notenfolge von Musikstücken berühmter Komponisten deren Inhalt dann digitalisiert als Datenquelle zur Verschlüsselung verwendet werden.
Die C-Programme erheben keinerlei Anspruch auf Richtigkeit noch Perfektion.
Sie sind wie deser Ganze Artikel nur als Anregung geeignet.
Nicht das wenn jetzt ein Leser auf blöde Gedanken kommt, mir einer die
Urheberschaft für schlechtes Gedankengut in die Schuhe schiebt.
Unter Internationale Abkommen über Kriegswaffen und deren Kontrollgesetze
kann man also meine Gedanken nicht stellen. Die Gedanken sind bekanntlich frei.
Die hier vorgestellte Methode ist keine Waffe, allerhöchstens ein Zahnstocher,
wenn auch ein bisserl groß geraten.
Ich kann wie gesagt, mit meinen alten Arbeiten nix mehr anfangen,
also warum nicht diese Infos verschenken?

Und zum Schluss die Quelldateien, diese wurden mit codeblocks 13.12 erstellt und
kompiliert. die Datei test wurde mit Hilfe der Datei keytest2 verschlüsselt. Das Ergebnis
ist Datei key. Getestet wurde das ganze auf
Suse Linux 13.2.

Dieses Konzept ist sicher nicht das allerbeste Verschlüsselungsprogramm.
Aber die meisten Programmierer wissen, das selbst PGP mit einem Key-Recovery-Feature
ausgestattet ist. die letzten beiden einigermaßen sicheren Versionen waren PGP263I und
PGP 553 i. Somit eignet sich das Programmchen zur Vorverschlüsselung. Dabei bleibt es
jeden selbst überlassen, ob er zuerst mit einem komerziellen Programm und dann mit Zengo
arbeitet oder umgekehrt.

Fragt mich bitte nicht, wie ich auf den Namen Zengo für das Super-mini-Verschlüsselungs-
Programm gekommen bin. Ich hatte vorher im Fernsehen einen Film über Fernost gesehen.
Dabei fielen die Begriffe ZEN und irgend ein Name eines Spiels, GO. Als ich spät abends
noch programmierte, tippte ich als Projektnamen ZENGO ein. Das wars. Sicher nicht der
allerschönste Name, aber das Proggi läuft und ich kann es als Lehrmaterial den jungen
Hüpfern zu Verfügung stellen.



Viel Spaß beim Nachdenken und Experimentieren
Guiseppe

Zengo-Dateien.zip


zip

 Download

Dateigröße: 108,63KB
Heruntergeladen: 50 mal


pn
Gesperrt 
Anmeldedatum: 04.05.2013
Beiträge: 53
27.06.2013, 18:30
zitieren

Tja also das ist ja Wirklich nichts Neues das man eine Sprache Erfinden Kann Ich Kann Genausogut Behaupten wenn Du Elbisch Sprichst von J.rTolkien und alle Textstellen dEs Buches Der Herr der Ringe Die In Elbisch Gefast sind mit der Codirung 2*5-3*4-5*2-1-1-1-1+6-7+1+1+1=5/3/1 Entschlüsselst Du In Angst und Schrecken gepeinigt wirst und dich Fragst was die Sch*** Eigentlich soll und Dan Den Geschichtsverlauf Philologisch Betrachtest mit der Endlosschleife ++ Du einiges Dazugelernt hast Was Nachrichtenverslüsellung angeht. Den der Beste Weg ist Immer die Nachrichten nicht zu Verslüsseln den dann weiss man Wenigstens was Seine Opfer so Denken Könnten und was der Nachrichtenempfänger Daraus Lernt. Du könntest nämlih Genau So gut ein Programm Entwickeln Das TExte Durchsucht nach Schlüssel worten begriffen und Sätzen und dir Die Codierung Preissgibt diverenzial zur Textlänge Dan hättest du Warscheinlich den Grösseren nutzen von dem Programm den wenn du Wirklich nach solchen Intrigen und Geheimorganisationen suchst kännst du dann Sämtliche Datenbanken nach änlichen Programmen oder Zwekmässigen Programmen durchsuchen und Letztendlich evtl. Informationen Bezihen die Hand und Fuss haben den Ich Bezweifle das Diese Memos und Schlüssel Wenn dann nicht Geheim sind. Und ansonsten ist die Nachricht vermutlich Alt und nicht mehr zu gebrauchen da diese Organisation auf Keiner Bank Regiestrirt ist oder zur Propaganda oder Ablenkung. so ist es gut möglich das wenn man Hier die Worte Busch benutzt das von Irgendeinem Programm erfasst wird und im Zusammenhang mit der Aussage Kraft der Informationen Abgelegt und Prioritirt wird wenn man Ein Reatibles Weltbild hat.
1-1-1-2-4-123-41-53-2-1-3-7-7-7(879)5,6,8((MTZR))2-5-2-5-25-25-2-5//Arial
1=5
2=3
6=9
7=8
19=14,3
*554-13,4*59-73-36-17-56-23*7*5/2
xzr==4*4*4*4-967y
Lg Ramon Keller


pn
Junior 
Name: Voller Name als Anagramm: Fitje Weshoms
Geschlecht:
Fahrzeug: Yamaha YZF R6 Thundercat
Anmeldedatum: 15.07.2012
Beiträge: 92
Wohnort: Amberg, Oberpfalz
29.06.2013, 16:57
zitieren

Hi Mr. Silent!

Es geht mir nur darum, die Personlichkeitsrechte des einzelnen besser
wahren zu können. Wenn man sichtlich für jeden Verschlüsselte Botschaften
übers Netz absendet, macht man sich erst Recht für Neugierige zum
Appetithappen.
Meine Idee war nur, eine äußerlich normal anmutende Datei oder Nachricht
zur Botschaftenübermittlung zu nutzen. Wenn man die Nachrichten verfolgt,
dann denke ich ist auch so was bitter nötig.
Die ganze Überwachung des Internet finde ich sowieso fraglich, zumindest in
diesem Umfang.
Hab mich mal für Funktechnik interessiert. Später habe ich mich dann in
die Arbeit am PC verliebt.
Profis in diesem Geschäft arbeiten mit Satelliten, welche in bestimmten
Zeitabständen die Erde umkreisen. Nur wenn sich der Satellit über das
Gebiet indem sich der Agent befindet bewegt, kann mit einer Direktverbindung
ein Datenverkehr eingeleitet werden (Uplink).
Zeitfenster nur einige Minuten.
Umkreist der Satellit dann den Ursprungsstaat, dann wird nur just in diesem
Moment ein Auslesen der Daten möglich (Downlink).
Nix für ungut, aber: Wenn das Internet wirklich so überwacht werden muss,
warum konnte dann die Rechtsradikale Terrorzelle der NSU so lange
unbehelligt vor sich hin werkeln?

Ich vermute dahinter eher handfeste wirtschaftliche Interessen:
Wie ist der Internet-User persönlich wirtschaftlich gestellt?
Welche persönlichen Interessen?
Lässt sich vielleicht eine Art psychologisches oder besser Muster
nach dem der konsumiert erkennen, um diesen
besser ansprechen und zum Konsum animieren zu können?
Welche Volkswirtschaftlichen Prognosen lassen sich aus seinem Verhalten ziehen?
Hat er eventuell relevante Daten z.B. von seinen Arbeitgeber
auf seinen Notebook oder Tablet-Pc?
Auf welche Produkte fährt der ab?

Hand aufs Herz. Keiner von uns wäre so blöd, solche Daten übers Internet zu
schicken. Das wäre ja ungefähr so, wie wenn man beim FC-Bayern in der
vollbesetzen Allianz-Arena nackt auf der Tribüne sitzt und hofft, das man
selber nicht gesehen wird.

In den Siebzigern, wann ich aufgewachsen bin, hatte man die damalige RAF
mit allen Mitteln gejagt, die man zur Verfügung hatte. Mit mäßigem Erfolg.
Das waren aber nur eine Hand voll Leute.



Im Internet hat man es mit Milliarden Usern zu Tun.


Guiseppe


pn
Gast 
29.06.2013, 16:57
zitieren

Mach mit!

Wenn Dir die Beiträge zum Thread "Steganographie zum Experimentieren mit der Verschlüsselung von Dateien" gefallen haben oder Du noch Fragen hast oder Ergänzungen machen möchtest, solltest Du Dich gleich bei uns anmelden:



Registrierte Mitglieder genießen die folgenden Vorteile:
✔ kostenlose Mitgliedschaft
keine Werbung
✔ direkter Austausch mit Gleichgesinnten
✔ neue Fragen stellen oder Diskussionen starten
✔ schnelle Hilfe bei Problemen
✔ Bilder und Videos hochladen
✔ und vieles mehr...


Neuen Thread eröffnenNeue Antwort erstellen
Ähnliche BeiträgeRe:
Letzter Beitrag
Kann man mds-dateien zu iso-dateien umwandeln?
hallo. wollte mal fragen, ob es ein programm gibt um mds-image-dateien zu normalen iso-dateien umzuwandeln. so daß man sie normal als image brennen kann? in deutsch wäre ideal....
von blue devel
11
13.674
04.11.2008, 12:05
214
MKV dateien mit Untertiteln
Hallo erstmal, ich habe auf meinem PC einige mkv Dateien die ich über den PS3 Server auf der PS3 abspiele! wenn ich nun auf der PS3 den Encoder auswähle womit sie es abspielen soll bekomme ich alle oder keine Untertitel! ich möchte aber bei...
von komarac
5
2.497
22.09.2010, 09:10
Kinimaro
Wo finde ich die .css-Dateien?
Hallo, bei der alten Version von Mediawiki konnte ich im Firefox Firebug ganz einfach die Layouts anpassen, indem ich mir die Stelle in der entsprechenden .css Datei raussuchte. Im Beispielbild ist das die mail-ltr.css Bei der neuen Version geht das...
von moosmutzel
5
781
18.02.2015, 19:09
mgutt
Was sind .flv-Dateien?
FLV ist die Abkürzung für "Flash Video", ein Videoformat, dass Adobe für ihren Flash Player realisiert hat und was auf den meisten Videoportalen eingesetzt wird. Viele Player sind mittlerweile in der Lage .flv-Dateien abzuspielen. Mehr...
von mgutt
0
2.395
10.12.2008, 21:08
mgutt
AVI in MPG dateien umwandeln?
naja frage steht shcon oben :) weiß das einer...
von Fuchs
16
1.534
28.11.2005, 16:21
mgutt
PDF-Dateien als Vorschaubild
Hallo zusammen, hat jemand eine gute Extension für eine Mediawiki-Installation 1.19. mit der ich PDF-Dateien als Vorschau darstellen kann. Vielen Dank für eure...
von Rina6489
5
775
15.05.2012, 13:10
Rina6489
MS Word Dateien hochladen bei 1.17....
Seit 1.17 bekomme ich beim Upload immer den Fehler: Diese Datei kann nicht hochgeladen werden, da der Internet Explorer sie als „application/msword“ erkennt, welcher ein nicht erlaubter potentiell gefährlicher Dateityp ist. angezeigt. Ich weiß das...
von carchaias
0
708
11.10.2011, 16:06
carchaias
SVG-Dateien zum Download anbieten
Hallo erstmal, bin neu hier. Ich möchte SVG-Grafiken so in ein Mediawiki einbinden, dass sich beim Klick auf den Link ein Browserfenster mit Optionen wie "speichern unter" und "öffnen" öffnet. Gibt es dazu irgendeine...
von Juan_M
1
267
11.09.2011, 09:56
carchaias
Programm zum Einlesen von Dateien
Hallo, ich bin im Bereich der Programmierung (bis auf Access) komplett unerfahren, daher suche ich hier Hilfe. Folgende Aufgabenstellung: Ich speichere Emails (Anzahl unbekannt) aus einem Emailprogramm heraus in einen bestimmten Ordner. Die Daten...
[Allgemein]von Maik6464
1
357
27.02.2011, 15:07
Maik6464
Verlinkung auf Externe Dateien
Hallo Zusammen, ich habe mir nu schon den ganzen Morgen Threads durchgelesen die mit diesem Problem zu tun haben. Ich möchte gerne eine Externe Datei verlinken. z.b. \\server\pfad\datei.xlsx Doch leider bringt keiner der Threads eine...
von MischaS
0
503
26.03.2012, 09:34
MischaS
© 2004 - 2024 www.programmierer-forum.de | Communities | Impressum |