Wie findet ihr das Verschluesselungsprogramm

  • Themenstarter Themenstarter kmindi
  • Beginndatum Beginndatum
K

kmindi

Guest
Also, mein Verschluesselungsprogramm mit dem Namen VES_KEM ersetzt ganz einfach fast jedes Zeichen mit einem anderen. Zusaetzlich erstellt es einen Code der die fuer das Programm zum Entschluesseln wichtige Information enthaelt: welches Zeichen mit welchem ersetzt wurde.

Fuer eine einfache ver und entschlueselung reicht es hoffentlich.
Falls ihr einen Bug findet sagt es mir.
hier mal der link zu meiner homepage wo ihr es herunterladen koennt:

http://kaimindermann.ka.funpic.de/?page_id=19
 
verstehe ich dich richtig? eine einfache Monoalphabetische Substitution? Sicher ist das nicht.
 
ja. es geht auch nicht um die super sicherheit sondern um die einfache sicherheit, das nicht jeder den text gleich lesen kann.
 
Hallo,
jeder Eingeweihte kann aber recht schnell den Geheimtext knacken.

Ein leichter, dennoch sicherer Algorithmus ist z.B. RC4:
PHP:
<?php
function RC4($key, $data) { //encrypt and decrypt $data with the key in $keyfile with an rc4 algorithm
   $pwd = $key;
   $pwd_length = strlen($pwd);
   $key = array();

   for ($i = 0; $i < 256; $i++) {
      $key[$i] = ord($pwd{$i % $pwd_length});
      $counter[$i] = $i;
   }
   for ($i = 0; $i < 256; $i++) {
      $x = ($x + $counter[$i] + $key[$i]) % 256;
      $temp_swap = $counter[$i];
      $counter[$i] = $counter[$x];
      $counter[$x] = $temp_swap;
   }

   for ($a = $j = $i = 0; $i < strlen($data); $i++) {
      $a = ($a + 1) % 256;
      $j = ($j + $counter[$a]) % 256;
      $temp = $counter[$a];
      $counter[$a] = $counter[$j];
      $counter[$j] = $temp;
      $k = $counter[(($counter[$a] + $counter[$j]) % 256)];
      $Zcipher = ord($data{$i}) ^ $k;
      $Zcrypt .= chr($Zcipher);
   }
   return $Zcrypt;
}

//Usage:
$text = "Hallo Welt";
$pw = "geheim";

//Verschlüsseln
$geheimtext = RC4($pw, $text);

//Entschlüsseln
$klartext = RC4($pw, $geheimtext);

echo $klartext;
?>

Dabei kann man $data und $key jeweils als String übergeben.
 
Schon die alten Römer hatten sowas in der Art und schon damals wurde bewiesen, dass man mit einfachen Mitteln solche Sachen wieder lesbar machen kann. Wenn schon Texte verschlüsseln, dann richtig, sonst kann die nämlich doch jeder lesen, der ein wenig Grips mitbringt. Gibt Leute, die für sowas nichtmal Programme brauchen um es zu lesen.
 
Ja wie schon gesagt, mir ging es am Anfang von der Programmierung auch eher um die Umsetztung, war naemlich mein erstes Programm.

Mir ist es schon klar das die "verschluesselung" nicht sehr gut sondern eher am untersten Rand ist...!
Dennoch ist es so moeglich einen Text schnell und einfach auf den ersten Blick unlesbar zu machen. Das schreckt schon viele ab. Denn ich bin immer noch der Meinung das man jede Verschluesselung knacken kann. Also jeder der es lesen will, schafft das auch sowieso irgendwan.
Das einzigste wo es was bringt ist bei Texten oder Daten bei denen es reicht wenn sie nur fuer ein Jahr verschluesselt bleiben muessen, weil sie danach sowieso wertlos sind.
Danke fuer das Codebeispiel. Werde das mal probieren.
 
Hallo,
Original von kmindi
Denn ich bin immer noch der Meinung das man jede Verschluesselung knacken kann.
Da liegst du falsch, denn ein One-Time-Pad ist mathematisch zu 100% sicher und kann nie geknackt werden, nicht heute und auch nicht von Außerirdischen in 10 Millionen Jahren.


Also jeder der es lesen will, schafft das auch sowieso irgendwan.
Bei den üblichen Verfahren stimmt das, verwendet man aber einen guten Key, dann dauert das mit heutigen Methoden mehrere Millionen/Milliarden Jahre. Bei dir dauert das nur ein paar Sekunden.


Und der gepostete RC4 Algorithmus ist nicht wesentlich schwerer in der Handhabung, einfach einen Key im String-Format übergeben und dazu den Klar- bzw. Geheimtext. Bei einem sicheren Schlüssel dauert es aber wieder eine Ewigkeit bis man den Geheimtext geknackt hat.
 
Original von Elderan
Hallo,
jeder Eingeweihte kann aber recht schnell den Geheimtext knacken.

Ein leichter, dennoch sicherer Algorithmus ist z.B. RC4:
Code:
function RC4($key, $data) { //encrypt and decrypt $data with the key in $keyfile with an rc4 algorithm
   $pwd = $key;
   $pwd_length = strlen($pwd);
   $key = array();

   for ($i = 0; $i < 256; $i++) {
      $key[$i] = ord($pwd{$i % $pwd_length});
      $counter[$i] = $i;
   }
   for ($i = 0; $i < 256; $i++) {
      $x = ($x + $counter[$i] + $key[$i]) % 256;
      $temp_swap = $counter[$i];
      $counter[$i] = $counter[$x];
      $counter[$x] = $temp_swap;
   }

   for ($a = $j = $i = 0; $i < strlen($data); $i++) {
      $a = ($a + 1) % 256;
      $j = ($j + $counter[$a]) % 256;
      $temp = $counter[$a];
      $counter[$a] = $counter[$j];
      $counter[$j] = $temp;
      $k = $counter[(($counter[$a] + $counter[$j]) % 256)];
      $Zcipher = ord($data{$i}) ^ $k;
      $Zcrypt .= chr($Zcipher);
   }
   return $Zcrypt;
}

Dabei kann man $data und $key jeweils als String übergeben.

Also es ist mir zwar peinlich aber ich kann leider nicht entscheiden ob es jetzt ein C oder ein C++ Code ist, waere net wenn ihr mir nochmal auf die Spruenge helft.
Falls es C ist was ich jetzt glaube gibt es den Code auch fuer c++?
hab grad bei google gesucht aber noch nichts gefunden.
 
Ich kann zwar keine von beiden Sprachen aber da C++ die objekorientierte Erweiterung von C ist und man klar erkennen kann das am Anfang nur eine function definiert wurde und nicht z.B. eine Klasse vermute ich mal C kann natürlich beides sein, da man auch in C++ funktionen definieren kann :)

hoffe das ich nichts falsches gesagt hab ^^


mfg 0wnZ


edit: schön das es extra php tags gibt ;)
 
C ist ein Subset von C++, demnach klappen auch C-Programme mit C++.

Das da ist allerdings weder das eine, noch das andere, sondern PHP.
 
Also mit function vorne geht es sowieso nicht bei mir, da muss ich schon sowas wie string oder int davor schreiben .
ich hab mich fuer string entschieden
 
Es ist weder C noch C++, da Variablen in beiden Sprachen kein $-Zeichen vor dem Bezeichner haben. Perl ist es auch nicht, da Funktionen dort ein 'sub' voranstehen haben, Python auch nicht, da ist es 'def' (und auch da keine $-Zeichen), bleibt also nur PHP, wo 'function' genutzt wird.
 
hier gibt es eine nette Beschreibung zum RC4
http://www.kuno-kohn.de/crypto/crypto/rc4.htm
http://www.linux-magazin.de/Artikel/ausgabe/1997/11/Krypto/krypto5.html
dann kann man es in seiner Lieblingssprache umsetzen ;)

OT:
7669736974204020687474703A2F2F7777772E6B61696D696E6465726D616E6E2E64652E767
5
Try BHN_Text_Converter to read that
try ollydbg to read that (copy signature and "rightclick->binary->paste" in olly :) )
Code:
00403480  76 69 73 69 74 20 40 20 68 74 74 70 3A 2F 2F 77  visit @ http://w
00403490  77 77 2E 6B 61 69 6D 69 6E 64 65 72 6D 61 6E 6E  ww.kaimindermann
004034A0  2E 64 65 2E 76 75 BE CE EE AD 00 00 00 00 00 00  .de.vu?Îî ......
004034B0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
004034C0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
004034D0  00 00 00 00 00 00 00 00 00 00 00                 ...........
 
Original von bitmuncher
Es ist weder C noch C++, da Variablen in beiden Sprachen kein $-Zeichen vor dem Bezeichner haben. Perl ist es auch nicht, da Funktionen dort ein 'sub' voranstehen haben, Python auch nicht, da ist es 'def' (und auch da keine $-Zeichen), bleibt also nur PHP, wo 'function' genutzt wird.

danke fuer die aufklaerung.

Original von bitmuncher
hier gibt es eine nette Beschreibung zum RC4
http://www.kuno-kohn.de/crypto/crypto/rc4.htm
http://www.linux-magazin.de/Artikel/ausg...to/krypto5.html
dann kann man es in seiner Lieblingssprache umsetzen Augenzwinkern

danke, sowas in der Art hab ich auch schon gefunden, werd mich dann wohl mal dran machen den Code umzusetzten fuer c++. Falls interesse besteht kann ich ihn ja mal posten und ihr koennt mal sagen was man noch verbessern koennte.

@OT:
Mir is klar das es noch andere Tools gibt, aber wollts halt mal selber programmieren und dann mach ich auch "werbung" dafuer. Nene..also es kann ja auch in binaer umwandeln, hab bis jetzt noch keins gefunden was beides kann.
Aber was ich mich immer noch frag ist, ist es auch korrekt was es da ausgibt als Text.
vor allem bei \n ist es schwer. aber koenmer ja mal in nem anderem thema diskutieren
 
Zurück
Oben