Verschlüsselung
Übersicht

![]() |
blitzuser34Betreff: Verschlüsselung |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi, hab mal versucht nen Text zu verschlüsseln. Weiß eigentlich gar nich, wie das geht. Hab trotzdem mal folgendes ausprobiert:
Code: [AUSKLAPPEN] Function verschlüsseln$(Text1$, schlüssel$)
zeichennummer=1 laenge=Len(Text1$) For a=1 To laenge asccodenummer=Asc(Mid(schlüssel,zeichennummer,1)) If asccodenummer>255 Then asccodenummer=asccodenummer-255 zeichen=Asc(Mid(Text1$,a,1))+asccodenummer newcode$=newcode$+zeichen+",+," zeichennummer=zeichennummer+1 If zeichennummer>Len(schlüssel$) Then zeichennummer=1 Next End Function Wollte mal fragenob des überhaupt was taugt oder ob man des in 5 min geknackt hat. Edit: hab des ganze ein bisschen abgeändert: Code: [AUSKLAPPEN] Function verschlüsseln$(Text1$, schlüssel$)
zeichennummer=1 laenge=Len(Text1$) For a=1 To laenge asccodenummer=Asc(Mid(schlüssel,zeichennummer,1)) If asccodenummer>255 Then asccodenummer=asccodenummer-255 zeichen=Asc(Mid(Text1$,a,1))+asccodenummer newbuchstabe$=Chr(zeichen) newcode$=newcode$+newbuchstabe$ zeichennummer=zeichennummer+1 If zeichennummer>Len(schlüssel$) Then zeichennummer=1 Next End Function |
||
![]() |
TheByte |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi erstmal ![]() Zitat: Wollte mal fragenob des überhaupt was taugt oder ob man des in 5 min geknackt hat.
Das Problem an deiner Verschlüsselung ist, dass man sie relativ leicht mit der Brute-Force-Methode knacken kann. D.h. man nimmt den Text und probiert solange verschiedene Schlüssel aus, bis der wahre Text zum Vorschein kommt. Aber für nen ersten Versuch garnicht mal so schlecht ![]() mfG, TheByte |
||
aktuelles Projekt:
Nichts machen Fortschritt: 50% |
![]() |
blitzuser34 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und was ist, wenn der Text 2x hintereinander verschlüsselt wird und der 2. Code aus dem 1. errechnet wird oder so? Auserdem: Liege ich richtig wenn ich sage, dass man erst mal die Verschlüsselungsmethode rausfinden müsste? | ||
![]() |
ZaP |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bruteforce macht sich hier nicht. Woher soll denn dein Programm wissen, ob es den text erfolgreich entschlüsselt hat? Das erfordert menschliche Gegenkontrolle. Und dann dauert das zulange. Wenn du nur Highscores o.ä. verschlüsselhn möchtest, reicht das, denke ich. | ||
Starfare: Worklog, Website (download) |
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da ich seit 2 Wochen an einem Referat über Kryptologie arbeite, mal ein wenig Klugscheiß dazu:
Die Sache mit Algorithmus kennen oder nicht: Such auf Wikipedia nach Kerckhoff-Prinzip ![]() Die Sache mit 2mal hintereinander ausführen und dann auch noch den Schlüssel abhängig von der vorigen Verschlüsselung zu machen: Der Ansatz ist genial. Gratuliere, wenn dir das "mal so eben" eingefallen ist! Allerdings fiel das den Leuten schon viel früher ein und heutzutage sind selbst Algorithmen, die ihre "Hauptschleife" 16mal oder öfter durchlaufen unsicher (->"DES") Zu deinem Code: Wen ich richtig liege, kannst du dir die Zeile sparen: Code: [AUSKLAPPEN] If asccodenummer>255 Then asccodenummer=asccodenummer-255
Es wird selten ein Zeichen im Schlüssel sein, was nen Ascii-Code über 255 hat ![]() Wie schon gesagt genz brauchbar für nen ersten Versuch. Und sind wir mal ehrlich: Wer versucht, Hobbyspiele zu knacken? Also reicht das vollkommen. mfG, Christoph. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
blitzuser34 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Eingeproggt:
Sollte eigentlich so aussehen ![]() Code: [AUSKLAPPEN] Function verschlüsseln$(Text1$, schlüssel$)
zeichennummer=1 laenge=Len(Text1$) For a=1 To laenge asccodenummer=Asc(Mid(schlüssel,zeichennummer,1)) zeichen=Asc(Mid(Text1$,a,1))+asccodenummer If zeichen>255 Then zeichen=zeichen-255 newbuchstabe$=Chr(zeichen) newcode$=newcode$+newbuchstabe$ zeichennummer=zeichennummer+1 If zeichennummer>Len(schlüssel$) Then zeichennummer=1 Next Return newcode$ End Function (wenn Asc von Text und von Schlüssel zusammen über 255) Edit: Ich hab es schon einmal gesagt: ich hab keine Ahnung von Verschlüsselung. Des isch mir in irgend einem Fach(glaub Geschichte) eingefallen. Edit 2: Theoretisch könnte man den Text verschüsseln(2-3 mal), dann umdrehen, wieder verschlüsseln... Gibts sowas schon???? Oder man teilt die Zeile in versch. Teile(z.B. 4) und mischt sie nach nem Muster(wieder aus Code errechnen). |
||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich kann mich nur wiederholen: Deine Ideen sind genial. Aber es gibt sie schon ![]() Zitat: dann umdrehen, wieder verschlüsseln
=Transposition ("Permutation") Zitat: Oder man teilt die Zeile in versch. Teile(z.B. 4)
=Blockverschlüsselung Schau dir das einfach auf Wikipedia an, bevor du das Rad neu erfindest ![]() mfG, Christoph. PS: Jo, der Code würd jetzt mehr Sinn machen. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
MichiMeister |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schau mal im Codearchiv. Da sind einige Verschlüsselungscodes enthalten, die nicht so locker zu knacken sind. RS6 oder so ähnlich heißt das eine Ding. ![]() |
||
![]() |
Cardonic |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eingeproggt hat Folgendes geschrieben: Die Sache mit 2mal hintereinander ausführen und dann auch noch den Schlüssel abhängig von der vorigen Verschlüsselung zu machen:
Daraus wird wohl nix (ausser du willst eine One-Way-Verschlüsselung) Der Schlüssel der 2. Verschlüsselung hängt vom Chiffretext der. 1. Verschlüsselung ab. Folglich kannst du den Entschlüsselungschlüssel, um vom Chiffretext der 2. Verschlüsselung auf denjenigen der 1. Verschlüsselung zurückzurechnen ohne Kenntnis des Klartexts oder des Chiffretexts der 1. Verschlüsselung nicht berechnen. @blitzuser34 So als kleiner Hinweis: Deine Verschlüsselung ist eine polyalphabetische Substitution Ich würd die Verschlüsselung nicht durch planloses zusätzliches Vertauschen, Verschieben etc. sicherer machen. Eine viel einfacher Massnahme kann die Sicherheit erheblich verbessern: Du machst die Verschlüsselung eines Buchstabens vom bereits verschlüsselten Text abhängig: Code: [AUSKLAPPEN] Function Encrypt$(Plain$,Key$)
PlainLen = Len(Plain$) KeyLen = Len(Key$) PrevChar = 0 For I = 1 To PlainLen KeyChar = Asc(Mid(Key$,(I-1) Mod KeyLen + 1,1)) PlainChar = Asc(Mid(Plain$,I,1)) CipherChar = (PlainChar + KeyChar + PrevChar) Mod 256 Cipher$ = Cipher$ + Chr(CipherChar) PrevChar = CipherChar Next Return Cipher$ End Function Function Decrypt$(Cipher$,Key$) CipherLen = Len(Cipher$) KeyLen = Len(Key$) PrevChar = 0 For I = 1 To CipherLen KeyChar = Asc(Mid(Key$,(I-1) Mod KeyLen + 1,1)) CipherChar = Asc(Mid(Cipher$,I,1)) PlainChar = (CipherChar - KeyChar - PrevChar + 512) Mod 256 Plain$ = Plain$ + Chr(PlainChar) PrevChar = CipherChar Next Return Plain$ End Function ; Zum Vergleich: Print Encrypt("Verschlüsselung","abc") Print Encrypt("verschlüsselung","abc") mfg Cardonic |
||
![]() |
blitzuser34 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Cordonic: Dein Code funktioniert nicht richtig.
Als Beiweis: Original Code: [AUSKLAPPEN] Zeile 1
Zeile 2 Zeile 3 Zeile 4 Zeile 5 Zeile 6 verschlüsselt und entschlüsselt: Code: [AUSKLAPPEN] Zeile 1
Zeile 2 Zeile ³? Zeile 4 Zeiìå 5 ]Žh’@e#_ |
||
![]() |
Cardonic |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bei mir funktioniert alles bestens.
Code: [AUSKLAPPEN] var$ = Encrypt("Zeile 1"+Chr(13)+Chr(10)+"Zeile 2"+Chr(13)+Chr(10)+"Zeile 3"+Chr(13)+Chr(10)+"Zeile 4"+Chr(13)+Chr(10)+"Zeile 5"+Chr(13)+Chr(10)+"Zeile 6","abc")
var$ = Decrypt(var$,"abc") Print var$ Vielleicht kannst du den Code posten, der das fehlerhafte Resultat geliefert hat ? mfg Cardonic |
||
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
[quote="Eingeproggt"]Allerdings fiel das den Leuten schon viel früher ein und heutzutage sind selbst Algorithmen, die ihre "Hauptschleife" 16mal oder öfter durchlaufen unsicher (->"DES")
quote] meinst du damit 16 faches verschlüsseln? wenn ja kann ich darüber nur lachen ich verschlüssle meine Geheimen texte immer 100000 mal das dauert zwar 5 min. aber es lohnt sich. |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
[quote="Eingeproggt"]Allerdings fiel das den Leuten schon viel früher ein und heutzutage sind selbst Algorithmen, die ihre "Hauptschleife" 16mal oder öfter durchlaufen unsicher (->"DES")
[quote] meinst du damit 16 faches verschlüsseln? wenn ja dann ist das wirklich nichts gutes was die da zusammenbringen. Ich verschlüssle meine Geheimen texte immer 100000 mal das dauert zwar 5 min. aber es lohnt sich. link zu meinem Projekt :http://www.npage.de/userdaten/...istian.zip The Crypter( inklusive Anleitung) |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
![]() |
blitzuser34 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Global window=CreateWindow("Verschlüsselung",ClientWidth(Desktop())/2-250,ClientHeight(Desktop())/2-180,500,400,0,1)
Global text1label=CreateLabel("Text 1",10,10,200,15,window) Global text1=CreateTextArea(10,30,480,100,window) Global schlüssel=CreateLabel("Schlüssel",10,140,200,15,window) Global schlfield=CreateTextField(10,165,480,20,window) Global button=CreateButton("Verschlüsseln",110,200,80,25,window) Global button2=CreateButton("Entschlüsseln",310,200,80,25,window) Global Text2label=CreateLabel("Text 2",10,235,200,15,window) Global text2=CreateTextArea(10,255,480,100,window) Repeat Select WaitEvent() Case $803 End Case $401 If EventSource()=button Then SetTextAreaText text2,Encrypt$(TextAreaText(text1),TextFieldText(schlfield)) EndIf If EventSource()=button2 Then SetTextAreaText text2, Decrypt$(TextAreaText(text1),TextFieldText(schlfield)) EndIf End Select Forever Function Encrypt$(Plain$,Key$) PlainLen = Len(Plain$) KeyLen = Len(Key$) PrevChar = 0 For I = 1 To PlainLen KeyChar = Asc(Mid(Key$,(I-1) Mod KeyLen + 1,1)) PlainChar = Asc(Mid(Plain$,I,1)) CipherChar = (PlainChar + KeyChar + PrevChar) Mod 256 Cipher$ = Cipher$ + Chr(CipherChar) PrevChar = CipherChar Next Return Cipher$ End Function Function Decrypt$(Cipher$,Key$) CipherLen = Len(Cipher$) KeyLen = Len(Key$) PrevChar = 0 For I = 1 To CipherLen KeyChar = Asc(Mid(Key$,(I-1) Mod KeyLen + 1,1)) CipherChar = Asc(Mid(Cipher$,I,1)) PlainChar = (CipherChar - KeyChar - PrevChar + 512) Mod 256 Plain$ = Plain$ + Chr(PlainChar) PrevChar = CipherChar Next Return Plain$ End Function |
||
![]() |
BadudelBetreff: tritons verschlüsselung |
![]() Antworten mit Zitat ![]() |
---|---|---|
ein sehr schönes verschlüsselungssystem gibts auch von triton:
http://www.silizium-net.de/bbcoded3.htm Tritons Seite hat Folgendes geschrieben: Dies ist also eine spezielle, oder erweiterte polyalphabetische Chiffrierung, die nicht durch Häufigkeits- und Wahrscheinlichkeitsberechnungen geknackt werden kann (wie es bei einfachem durch-xor-en der Fall wäre).
vielleicht ist das auch eine schöne möglichkeit... hab selbst aber keine ahnung vom verschlüsseln... grüße |
||
Wir werden dem Schwein schon schlachten, auch wenn ihm quiekt.
Zum Teufel mit das Grammatik! |
![]() |
Cardonic |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nicht schlecht, Triton's Idee.
Ich nehme aber an, dass weil das "oft" bei jedem Buchstaben bekannt ist mit ein wenig überlegung aus der Chiffre eine normale polyalphabetische Chiffre gemacht werden kann und somit dann auch mit der Häufigkeitsanalyse oder Mustersuche entschlüsselt werden kann (natürlich erst nachdem die Periodenlänge gefunden wurde). Es ist aber mit Sicherheit so, dass mein Beispiel, dass den bereits verschlüsselten Text auch für den Schlüssel nutzt, sicherer ist. mfg Cardonic |
||
timmeTheOnly |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hiho, hab mich auch mal drangesetzt...
Das kam raus: Code: [AUSKLAPPEN] SeedRnd MilliSecs() t1$ = "timmeTheOnly" k$ = "ich" s = 0 t2$ = encrypt$(t1$,k$,s) t3$ = decrypt$(t2$,k$,s) Graphics 1024,768,32,2 Print t1$ Print t2$ Print t3$ WaitKey Function encrypt$(t$,k$,s%) Local ret$, char$, tl, kl, pos tl = Len(t$) kl = Len(k$) For i = 1 To Len(t$) pos = (pos + 1) Mod kl char$ = Chr$(Asc(Mid$(t$,i,1)) Xor Asc(Mid$(k$,pos+1,1))) ret$ = ret$ + char$ For j = 1 To s ret$ = ret$ + Chr$(Rand(0,255)) Next Next Return ret$ End Function Function decrypt$(t$,k$,s%) Local ret$, char$, tl, kl, pos tl = Len(t$) kl = Len(k$) For i = 1 To Len(t$) If cnt = 0 pos = (pos + 1) Mod kl char$ = Chr$(Asc(Mid$(t$,i,1)) Xor Asc(Mid$(k$,pos+1,1))) ret$ = ret$ + char$ EndIf cnt = (cnt + 1) Mod(s+1) Next Return ret$ End Function Wäre nett, wenn das einer bewerten könnte. |
||
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das funzt ja Super ^^ Aber kannst du mal die Parameter erklären ? Ich kp die nicht ganz (also nur "k$") ...
Aber sonst, müsste mal lange dran sitzen um das zu entschlüsseln... mfg Crack93 |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
Cardonic |
![]() Antworten mit Zitat ![]() |
---|---|---|
@timmeTheOnly: Seh' ich das richtig, dass die Verschlüsselung eine einfache XOr verschlüsselung ist, die mit dem zusätzlichen Parameter "s" noch zusätzlichen Datenschrott hinzufügt ?
Das macht die Verschlüsselung nicht sicherer und führt nur dazu, dass ein vielfaches der Datenmenge übertragen werden muss. mfg Cardonic |
||
If you should go skating on the thin ice of modern life, dragging behind you the silent reproach of a million tear-stained eyes, don't be surprised when a crack in the ice appears under your feet. |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn der Datenschrott die Häufigkeitsanalyse stört, macht sie die Verschlüsselung schon etwas komplizierter. | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group