crypting-encrypting

Hallo Leute,

ich weiß zwar nicht wie ihr die sachen immer entschlüsselt, aber ich hab gerade ein script zum verschlüsseln geschrieben, und wollte mal fragen wir sicher das ist.

Erstmal ein Beispiel.
Hallo Welt ---Wird zu---> T*sXee2rWi

So könnt ihr nun den Text entschlüsseln?:
Code:
WQ5D!!rSbbzXdd!nÖqqO3H1EÜjeQazÖkuuö44sNN-kRR1uVV6ssY1xxX3G~jQ5JJ8WÜ*5

Viel Spaß,

Junior
 
Wie hier schon oft angemerkt, du solltest den Algo veroffentlichen, damit man die Stärke deiner Verschlüsselung beurteilen kann. ;)
 
ich mein was bring es wenn ich sage wie ich es verschlüsselt hab, ich will ja wissen ob jemand das wieder andersrum entschlüsseln kann. Wenn ich euch sag wie ich es gemacht hab dann kann das ja jeder.
 
Original von junior48000
ich mein was bring es wenn ich sage wie ich es verschlüsselt hab, ich will ja wissen ob jemand das wieder andersrum entschlüsseln kann. Wenn ich euch sag wie ich es gemacht hab dann kann das ja jeder.

jep. und sobald es einer geknackt hat ist die sicherheit komplett hinüber. daher ist eine solche methode nicht sinnvoll.
 
ok, das ist das script das den code verschlüsselt:

PHP:
<?php

function verschluesseln($text) {
  $zeichen = array(" ", "+", "-", ",", ".", ";", ":", "*", "~", "!", "?", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "ä", "ö", "ü", "Ä", "Ö", "Ü", "ß");
  $zeichen_anz = count($zeichen);
  $ver_text = "";
  $m = 12;
  for ($i=0; $i<strlen($text); $i++){
    $akt_zeichen = substr($text, $i, 1);
    for($j=0; $j<$zeichen_anz; $j++) {
      if($akt_zeichen == $zeichen[$j]) {
        $n = $j;
      }
    }
    $a = $n + $m;
    if ($a > $zeichen_anz) {
      $a = $a - $zeichen_anz;
    }
    $ver_text .= $zeichen[$a];
    $m = $a;
  }
  return $ver_text;
}

?>


Edit:
Ursprünglich hatte ich mal ein script in C geschrieben, und wollte sowas ähnliches in PHP machen, was mir aber glaub ich nicht so gut gelungen ist xD...
hier mal das C script:

Code:
/***********************************************************************
*  Crypt
*
*  Crypt a string
***********************************************************************/
void Crypt(LPSTR szStr,  LPSTR szStrNew) {

	char	szNew[MAX_CRYPT];
	int		i;
	int		nAkt=CRYPT_OFFSET;

	nAkt=nAkt+(int)szStr[0];

	for (i=0; i<lstrlen(szStr); i++) {
		if (nAkt > 255) {
		  nAkt-=255;
		}
		szNew[i]=nAkt;
		nAkt=nAkt+(int)szStr[i+1];
	}
	szNew[lstrlen(szStr)]='\0';
	lstrcpy(szStrNew,(LPSTR)szNew);
}


/***********************************************************************
*  DeCrypt
*
*  Decrypt a string
***********************************************************************/
void DeCrypt(LPSTR szStr,  LPSTR szStrNew) {

	char	szNew[MAX_CRYPT];
	int		i,s1,s2;
	int		nAkt=0;

	s1=(int)szStr[0];
	s2=0;
	if (s1<0) {
		s1=256+s1;
	}
	//ShowInt(s1);
	nAkt=s1-CRYPT_OFFSET;

	for (i=0; i<lstrlen(szStr); i++) {
		szNew[i]=nAkt;
		s2=s1;
		s1=(int)szStr[i+1];
		if (s1<0) {
			s1=256+s1;
		}
		//ShowInt(s1);
		nAkt=s1-s2;
		if (nAkt < 0) {
			nAkt+=255;
		}
	}
	szNew[lstrlen(szStr)]='\0';
	lstrcpy(szStrNew,(LPSTR)szNew);
}
 
Ich hab das verschlüsslungsscript hier reingestellt, daraus sollte ersichtlich sein wie sich das verschlüsselte ergibt. Oder was fürn schlüssel willst du?
 
Original von Bytestream
Irgendwie fehlt da ein Schlüssel?

das sieht für mich nach einem dynamischen cäsar aus. damit braucht man keinen schlüssel. die verschiebung ergibt sich immer aus dem aktuellen feld und dem wert des nächsten so wie ich das sehe.

ich will mich hier nicht zu weit aus dem fenster lehnen, da crypto nicht grad mein gebiet ist, aber ich möchte fast behaupten, dass dies nicht sicher ist. ich denke auch, dass da von den spezies hier bald ne begründung dafür kommen wird
 
Hallo,
Kerckhoffs? Prinzip
Die Sicherheit eines Kryptosystems darf nicht von der Geheimhaltung des Algorithmus abhängen. Die Sicherheit gründet sich nur auf die Geheimhaltung des Schlüssels.
Einfach nur verschlüsselten Code zu posten, ist absolut schwachsinnig und keiner der sich halbwegs mit der Kryptographie auskennt, wird sich die Mühe machen, und versuchen den Algorithmus zu erraten.
 
@elderan: ich hab doch sogar das script gepostet mit dem man den Text verschlüsseln kann. Ich will auch nichts entschlüsselt haben, sondern nur wissen wie sicher das wäre.
 
Hallo,
die Frage sollte man sich auch selber beantworten können:
Was garantiert bei dir Sicherheit?

Nichts, weil du keinen Key verwendest (naja außer evt. der Startwert für $m)

=> Absolut unsicher
 
aber im Prinzip kommt bei dem ergebnis es auch auf die reihenfolge der Zeichen an, wenn ich ein zeichen hinzufüge, wegnehme oder vertausche kann was vollkommen anderes rauskommen...
ich mein bei:
$zeichen=array(" ",....);
 
Hallo,
nur weil etwas vollkommen anderes herrauskommt wenn man 1 Zeichen ändert, heißt dies nicht, dass dein Code sicherer ist.

Du hast vermutlich eine Entschlüsselungsroutine, und diese braucht nur den Startwert von $m, wovon es nicht allzuviele gibt.

Guck mal deinen verschlüsselten Text an:
WQ5D!!rSbbzXdd!nÖqqO3H1EÜjeQazÖkuuö44sNN-kRR1uVV6ssY1xxX3G~jQ5JJ8WÜ*5

Dort subtrahiert man von W 12 ab, weil $m mit 12 initialisiert wird und man bekommt so den 1. Klartextbuchstaben.
Da nun $a = W gilt, kann man gleich den nächsten Buchstaben entschlüsseln.
Der 2. Klartextbuchstabe wäre dann Q-W.
Der 3. Klartextbuchstabe wäre dann 5-Q
usw.

Wie du siehst, ich bräuchte nichtmal den Startwert für $m, um den Code (bis auf den 1. Buchstaben) zu entschlüsseln.
 
@Elderan:

das stimmt nur bedingt. Denn wenn man die kette wo die zeichen stehen völlig durchmicscht, woher willst du dann wissen was Q-W oder 5-Q ist das ist ja davon abhängig wie die Zeichenkette oben aufgebaut ist.

Das ist das erste Programm (nachdem in C) was ich geschrieben hab im bezug verschlüsseln, ich hab da auch nicht die große ahnung, aber was könnte ich denn z.B. besser machen?
 
Man kann mittels Low Level Debugger(Reverse Engineering) deinen kompilierten Code anschauen und so den Algorythmus erkennen/analysieren, bez. deine "verwurstelte Reihenfolge" auslesen. ;)
 
Hallo,
Original von junior48000
Denn wenn man die kette wo die zeichen stehen völlig durchmicscht
du argumentiert hier mit etwas, was gar nicht stimmt.

Das wäre so, also wenn ich sagen würde:
Sicherheitsgurte, Airbags und Knautschzone dienen nur zur Erhöhung des Preises.
Beweis: Wenn man keine Unfälle baut, werden diese nicht gebraucht und sind somit total überflüssig.

Zu sagen, dass wenn man die Kette durchmischen würde, man einfach nicht mehr Q-W und 5-Q rechnen könnte, kann man so nicht ganz aufrecht erhalten.

Damit man den Geheimtext entschlüsseln kann, darf das Mmischen nicht zufällig sein, also kann man das Mischen auch wieder umkehren.
So wie es sich bei dir anhört, würde das Mischen vermutlich sogar fest im Code integriert sein, sprich nicht Schlüsselabhänig sein.
Solch eine Vermischung erhöht die Sicherheit um kein Stück, da man diese ganz leicht wieder zurückführen kann und wieder Q-w, 5-Q usw. rechnen kann.

Kleiner Tipp:
Statt weiter wild zu experimentieren, lieber erstmal die Grundlagen sich aneignen.
 
Zurück
Oben