Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Verschlüsselung
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
maxg



Anmeldungsdatum: 01.05.2009
Beiträge: 1

BeitragVerfasst am: 01.05.2009, 00:40    Titel: Verschlüsselung Antworten mit Zitat

Hallo ich habe eine einfache Verschlüsselung erstellt und würde gerne wissen, ob sie jemand von euch knacken kann.

Ich vermute, dass es nicht zu schwer sein wird.

aus

Ich bin ein FreeBASIC Programmierer

wird

¶œ—ß–‘ßš–‘ß¹šš½¾¬¶¼ß¯˜ž’’–šš

Wie gesagt, ich wüsste nur gerne, ob diese Verschlüsselung zumindest ein kleines bisschen nützlich ist

mit freundlichen grüßen
max zwinkern [/quote]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden MSN Messenger
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 01.05.2009, 03:06    Titel: Antworten mit Zitat

ziemlich blöd, da ein e zB immer zum selben zeichen übersetzt wird, daher ist es nur eine verschlüsslung durch zeichenersetzung (wie oft das zeichen im normalen alltag benutzt wird dass du statt dem echten zeichen da hinsetzt ist dabei völlig egal), und damit weder nützlich noch sicher noch sonst irgendwas, sorry ;P
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 01.05.2009, 13:02    Titel: Antworten mit Zitat

Code:
Dim As String str1,str2
str1="¶œ—ß–‘ßš–‘ß¹šš½¾¬¶¼ß¯˜ž’’–šš"
For i As Integer = 1 To Len(str1)
   str2 = str2 + Chr(255-Asc(Mid(str1,i,1)))
Next
Print str2
Sleep

(str1="¶œ—ß–‘ßš–‘ß¹šš½¾¬¶¼ß¯˜ž’’–šš" - ist im Code nicht zu erkennen)

Der geringe Umfang des Programms zum Entkodieren sagt glaube ich schon alles über die Sicherheit der Verschlüsselung aus.

Informier dich am besten bei Wikipedia oder so über aktuelle Verschlüsselungsalgorithmen und versuche die vielleicht nachzubauen. Hier im Forum gab es zur Verschlüsselung auch schon einige Beiträge, einfach mal SuFu verwenden.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 01.05.2009, 19:38    Titel: Antworten mit Zitat

Wenn Du schon nach Kryptografie-Expertenmeinungen fragst: Lerne am besten erst einmal die Grundlagen für Kryptografie! Als Einstiegshilfe einige Wikipedia-Artikel:

http://de.wikipedia.org/wiki/Kerckhoffs%E2%80%99_Prinzip

Ist so ziemlich der fundamental wichtigste Grundsatz: Algorithmus musst Du bedenkenlos als Open Source veröffentlichen können. Als Geheimnis wird von den beiden Parteien nur ein Schlüssel als Datenblock festgelegt, der jederzeit durch einen neu gewählten ausgetauscht werden kann, sobald er einmal dem Feind bekannt werden sollte.

http://de.wikipedia.org/wiki/Security_by_Obscurity

Exakt so sollte man es möglichst nie machen!

Speziell auf das Codebeispiel von MOD bezogen:

http://de.wikipedia.org/wiki/Buchstabenh%C3%A4ufigkeit
http://de.wikipedia.org/wiki/H%C3%A4ufigkeitsanalyse

d.h. bei grossen Umfang an verschlüsselt zu übertragendem Text reicht eine Häufigkeitsanalyse bereits aus, weil Dein Verfahren nur eine einfache monoalphabetische Verschlüsselung darstellt.

http://en.wikipedia.org/wiki/Category:Cryptographic_attacks

Zum Grundlagenwissen über Verschlüsselung gehört auch, dass Du Dich mit dem Thema Angriff auf eine verschlüsselte Übertragung auseinandersetzst.

Als ausgewähltes Beispiel:

http://en.wikipedia.org/wiki/Known-plaintext_attack

=> soll zeigen, dass komplett alles mit dem selben Verfahren verschlüsseln zu wollen, sogar schnell einmal kontraproduktiv werden kann. Beispiele:
- WLAN-Verschlüsselung: TCP/IP-Header und Paketaufbau gängiger Netzwerknachrichten sind bekannt, womit bei einem übertragenen Paket häufig aufgrund der Länge auf den Inhalt geschlossen werden kann
- exakt dieser Fehler machte Deutschland im zweiten Weltkrieg: Wetterdienstmeldungen wurden mit derselben Enigma-Verschlüsselung gefunkt wie wichtige Truppenkommandos.
- Festplattenverschlüsselung auf Sektorebene: Der Aufbau vom Master Boot Record, NTFS-Grundstrukturen sowie Inhalt der Windows-Systemdateien ist bekannt, was dort ebenfalls diese Angriffsart ermöglicht
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 04.05.2009, 08:21    Titel: Antworten mit Zitat

[KEIN SCHERZ (obwohl lustig)]
Ich hatte mal ein verschlüsselungsprogramm entwickelt, das war so gut, dass ich den verschlüsselten text nicht mehr entschlüsseln konnte... Ich glaub, das lag daran, dass er den schlüssel zur laufzeit generiert hat und danach "vergessen" hat :-/ .. ein mehr als "dürftiges" projekt, wenn ich mir mich zurückerinnere..
[/KEIN SCHERZ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
neo7530



Anmeldungsdatum: 04.05.2009
Beiträge: 2

BeitragVerfasst am: 04.05.2009, 12:19    Titel: Antworten mit Zitat

Hab da auch mal ne kleinigkeit programmiert. Dient zum Dateien verschlüsseln. Nutzt einen von mir ausgespasteten Algo, und sollte relativ sicher sein. Die S-Boxen würde ich noch austauschen gegen echte s-boxen (z.B die von Rijndael) dann sollte das ganze für den Laien unknackbar sein.

verschlüsseln:
Code:

DIM tab0(255)
DIM itab0(255)

Dim saat(15)
Dim ki(15)
Dim kii(15)
Dim pt(15)
Dim temp(15)
Dim q As String *1
Dim r As String *1

RESTORE table0: FOR i = 0 TO 255: READ a%: tab0(i) = a%: NEXT
RESTORE invtable0: FOR i = 0 TO 255: READ a%: itab0(i) = a%: NEXT

Open command$ For Binary As #1
Open command$ + ".ctx" For Binary As #2

GoSub passwd
GoSub saatgen
GoSub salzen
GoSub truetrue

do Until Eof(1)
GoSub rki
GoSub einlesen
GoSub ivxorpt
GoSub encrypt
GoSub ausgabe
GoSub cbc
loop

Close #1:Close #2
Print " Datei "; Command$;" wurde erfolgreich verschluesselt."
sleep
end

Rem ------------------------------------------------SUBS------------------------------------------------------

passwd:
   DO
   PRINT "Passwort (max. 32 Zeichen):"
   LINE INPUT Password$
   LOOP UNTIL LEN(Password$) <= 32

   IF LEN(Password$) MOD 2 THEN Password$ = Password$ + CHR$(LEN(Password$))

   PasswdString1$ = LEFT$(Password$, LEN(Password$) / 2)
   PasswdString2$ = RIGHT$(Password$, LEN(Password$) / 2)

   FOR i = 0 TO LEN(Password$)
    PasswdSum% = PasswdSum% + ASC(MID$(Password$, i))
   NEXT i

   RANDOMIZE PasswdSum%

   FOR i = 0 TO (15 - (LEN(Password$) / 2))
    PasswdString1$ = PasswdString1$ + CHR$(INT(RND * 31))
    PasswdString2$ = PasswdString2$ + CHR$(INT(RND * 31))
   NEXT i

   FOR i = 0 TO 15
    CryptedByte% = ASC(MID$(PasswdString1$, i)) XOR ASC(MID$(PasswdString2$, i))
    CryptedByte% = CryptedByte% + INT(RND * 255)
    IF CryptedByte% > 255 THEN CryptedByte% = CryptedByte% - 256

   kii(i) = cryptedbyte%
   NEXT i
   GoSub rki
   GoSub keyvorbereitung
   For i = 0 To 15: kii(i) = ki(i):next
return

truetrue:
   Restore wahr : For i = 0 To 15 : Read a% : pt(i) = a% : Next
   GoSub rki : GoSub ivxorpt :GoSub encrypt : GoSub ausgabe : GoSub cbc
return

saatgen:
   randomize (-1,0)
   for i = 0 to 15 : saat(i) = Int(rnd(1)*255) : next 
return

ivxorpt:
   For i = 0 To 15: pt(i) = pt(i) Xor saat(i):next
return

cbc:
   For L = 0 To 15: saat(l) = Pt(l) : Next L
return

salzen:
   For i = 0 To 15:pt(i) = saat(i) : Next
   GoSub rki
   GoSub encrypt
   For i = 0 To 15:r = chr(pt(i)): Put #2, ,r : Next
return

einlesen:
   For i = 0 To 15 : get #1 , ,q : pt(i) = Asc(q) : Next
return

ausgabe:
   For i = 0 To 15 : r = chr(pt(i)) : Put #2, ,r : Next
return

Encrypt:
      Gosub Keyxor
   For Z = 1 To 11
      Gosub kiRor                                           
      Gosub Sboxtokey                                     
      Gosub Kiinvexp
      Gosub Pttosbox                                     
      Gosub Ptror                                         
      Gosub Ptexp
      Gosub Mix
      Gosub Keyxor
   Next Z
Return


Keyvorbereitung:
   For Z = 1 To 11
      Gosub Kiexp
      Gosub Keytosbox                        
      Gosub kiRol                            
   Next Z
Return

kiRol:                                       
   temp(0) = Ki(0)
   For K = 0 To 14
      Ki(k) = Ki(k) And &H7F
      Ki(k) = Ki(k) * 2
      S = Ki(k + 1) And &H80
      S = S / &H80
      Ki(k) = Ki(k) Or S
   Next K

   Ki(15) = Ki(15) And &H7F
   Ki(15) = Ki(15) * 2
   S = temp(0) And &H80
   S = S / &H80
   Ki(15) = Ki(15) Or S
Return


KiRor:                                       
   temp(15) = ki(15)
   For K = 15 To 1 Step -1
      Ki(k) = Ki(k) And &HFE
      Ki(k) = Ki(k) / 2
      S = Ki(k - 1) And 1
      S = S * &H80
      Ki(k) = Ki(k) Or S
   Next K

   Ki(0) = Ki(0) And &HFE
   Ki(0) = Ki(0) / 2
   S = temp(15) And 1
   S = S * &H80
   Ki(0) = Ki(0) Or S
Return


Ptror:                                       
   temp(15) = Pt(15)
   For i = 15 To 1 Step -1
      Pt(i) = Pt(i) And &HFE
      Pt(i) = Pt(i) / 2
      S = Pt(i - 1) And 1
      S = S * &H80
      Pt(i) = Pt(i) Or S
   Next i

   Pt(0) = Pt(0) And &HFE
   Pt(0) = Pt(0) / 2
   S = temp(15) And 1
   S = S * &H80
   Pt(0) = Pt(0) Or S
return


Keytosbox:
   For L = 0 To 15
      Ki(l) = tab0(ki(l))
   Next L
Return

Sboxtokey:
   For L = 0 To 15
      Ki(l) = itab0(ki(l))
   Next L
Return

Pttosbox:
   For L = 0 To 15                                       
      Pt(l) = tab0(pt(l))
   Next L
Return

Keyxor:
   For L = 0 To 15
      Pt(l) = Pt(l) Xor Ki(l)
   Next L
Return

Kiexp:
   X = tab0(ki(3))
   ki(12) = ki(12) Xor X
   X = tab0(ki(7)) Xor &h02
   ki(0) = ki(0) Xor X
   X = tab0(ki(11))
   ki(4) = ki(4) Xor X
   X = tab0(ki(15))
   ki(8) = ki(8) Xor X
   ki(1) = ki(1) Xor ki(0)
   ki(2) = ki(2) Xor ki(1)
   ki(3) = ki(3) Xor ki(2)
   ki(5) = ki(5) Xor ki(4)
   ki(6) = ki(6) Xor ki(5)
   ki(7) = ki(7) Xor ki(6)
   ki(9) = ki(9) Xor ki(8)
   ki(10) = ki(10) Xor ki(9)
   ki(11) = ki(11) Xor ki(10)
   ki(13) = ki(13) Xor ki(12)
   ki(14) = ki(14) Xor ki(13)
   ki(15) = ki(15) Xor ki(14)
Return

Kiinvexp:
   ki(15) = ki(15) Xor ki(14)
   ki(14) = ki(14) Xor ki(13)
   ki(13) = ki(13) Xor ki(12)
   ki(11) = ki(11) Xor ki(10)
   ki(10) = ki(10) Xor ki(9)
   ki(9) = ki(9) Xor ki(8)
   ki(7) = ki(7) Xor ki(6)
   ki(6) = ki(6) Xor ki(5)
   ki(5) = ki(5) Xor ki(4)
   ki(3) = ki(3) Xor ki(2)
   ki(2) = ki(2) Xor ki(1)
   ki(1) = ki(1) Xor ki(0)
   X = tab0(ki(15))
   ki(8) = ki(8) Xor X
   X = tab0(ki(11))
   ki(4) = ki(4) Xor X
   X = tab0(ki(7)) Xor &h02
   ki(0) = ki(0) Xor X
   X = tab0(ki(3))
   ki(12) = ki(12) Xor X
Return

ptexp:
   X = tab0(pt(3))
   pt(12) = pt(12) Xor X
   X = tab0(pt(7))
   pt(0) = pt(0) Xor X
   X = tab0(pt(11))
   pt(4) = pt(4) Xor X
   X = tab0(pt(15))
   pt(8) = pt(8) Xor X
   pt(1) = pt(1) Xor pt(0)
   pt(2) = pt(2) Xor pt(1)
   pt(3) = pt(3) Xor pt(2)
   pt(5) = pt(5) Xor pt(4)
   pt(6) = pt(6) Xor pt(5)
   pt(7) = pt(7) Xor pt(6)
   pt(9) = pt(9) Xor pt(8)
   pt(10) = pt(10) Xor pt(9)
   pt(11) = pt(11) Xor pt(10)
   pt(13) = pt(13) Xor pt(12)
   pt(14) = pt(14) Xor pt(13)
   pt(15) = pt(15) Xor pt(14)
Return

Mix:
For L = 0 To 15
   Temp(l) = Pt(l)
Next L
   Pt(1) = Temp(5)
   Pt(2) = Temp(10)
   Pt(3) = Temp(15)
   Pt(5) = Temp(9)
   Pt(6) = Temp(14)
   Pt(7) = Temp(3)
   Pt(9) = Temp(13)
   Pt(10) = Temp(2)
   Pt(11) = Temp(7)
   Pt(13) = Temp(1)
   Pt(14) = Temp(6)
   Pt(15) = Temp(11)
Return

rki:
For i = 0 To 15: ki(i) = kii(i): next
Return


Rem ------------------------------------------------DATAS----------------------------------------------------------

wahr:
Data &h74 , &h72 , &h75 , &h65 , &h74 , &h72 , &h75 , &h65 ,&h74 , &h72 , &h75 , &h65 ,&h74 , &h72 , &h75 , &h65

table0:
data &hFF , &hFE , &hFD , &hFC , &hFB , &hFA , &hF9 , &hF8 , &hF7 , &hF6 , &hF5 , &hF4 , &hF3 , &hF2 , &hF1 , &hF0
data &hEF , &hEE , &hED , &hEC , &hEB , &hEA , &hE9 , &hE8 , &hE7 , &hE6 , &hE5 , &hE4 , &hE3 , &hE2 , &hE1 , &hE0
data &hDF , &hDE , &hDD , &hDC , &hDB , &hDA , &hD9 , &hD8 , &hD7 , &hD6 , &hD5 , &hD4 , &hD3 , &hD2 , &hD1 , &hD0
data &hCF , &hCE , &hCD , &hCC , &hCB , &hCA , &hC9 , &hC8 , &hC7 , &hC6 , &hC5 , &hC4 , &hC3 , &hC2 , &hC1 , &hC0
data &hBF , &hBE , &hBD , &hBC , &hBB , &hBA , &hB9 , &hB8 , &hB7 , &hB6 , &hB5 , &hB4 , &hB3 , &hB2 , &hB1 , &hB0
data &hAF , &hAE , &hAD , &hAC , &hAB , &hAA , &hA9 , &hA8 , &hA7 , &hA6 , &hA5 , &hA4 , &hA3 , &hA2 , &hA1 , &hA0
data &h9F , &h9E , &h9D , &h9C , &h9B , &h9A , &h99 , &h98 , &h97 , &h96 , &h95 , &h94 , &h93 , &h92 , &h91 , &h90
data &h8F , &h8E , &h8D , &h8C , &h8B , &h8A , &h89 , &h88 , &h87 , &h86 , &h85 , &h84 , &h83 , &h82 , &h81 , &h80
data &h7F , &h7E , &h7D , &h7C , &h7B , &h7A , &h79 , &h78 , &h77 , &h76 , &h75 , &h74 , &h73 , &h72 , &h71 , &h70
data &h6F , &h6E , &h6D , &h6C , &h6B , &h6A , &h69 , &h68 , &h67 , &h66 , &h65 , &h64 , &h63 , &h62 , &h61 , &h60
data &h5F , &h5E , &h5D , &h5C , &h5B , &h5A , &h59 , &h58 , &h57 , &h56 , &h55 , &h54 , &h53 , &h52 , &h51 , &h50
data &h4F , &h4E , &h4D , &h4C , &h4B , &h4A , &h49 , &h48 , &h47 , &h46 , &h45 , &h44 , &h43 , &h42 , &h41 , &h40
data &h3F , &h3E , &h3D , &h3C , &h3B , &h3A , &h39 , &h38 , &h37 , &h36 , &h35 , &h34 , &h33 , &h32 , &h31 , &h30
data &h2F , &h2E , &h2D , &h2C , &h2B , &h2A , &h29 , &h28 , &h27 , &h26 , &h25 , &h24 , &h23 , &h22 , &h21 , &h20
data &h1F , &h1E , &h1D , &h1C , &h1B , &h1A , &h19 , &h18 , &h17 , &h16 , &h15 , &h14 , &h13 , &h12 , &h11 , &h10
data &h0F , &h0E , &h0D , &h0C , &h0B , &h0A , &h09 , &h08 , &h07 , &h06 , &h05 , &h04 , &h03 , &h02 , &h01 , &h00

invtable0:
data &hFF , &hFE , &hFD , &hFC , &hFB , &hFA , &hF9 , &hF8 , &hF7 , &hF6 , &hF5 , &hF4 , &hF3 , &hF2 , &hF1 , &hF0
data &hEF , &hEE , &hED , &hEC , &hEB , &hEA , &hE9 , &hE8 , &hE7 , &hE6 , &hE5 , &hE4 , &hE3 , &hE2 , &hE1 , &hE0
data &hDF , &hDE , &hDD , &hDC , &hDB , &hDA , &hD9 , &hD8 , &hD7 , &hD6 , &hD5 , &hD4 , &hD3 , &hD2 , &hD1 , &hD0
data &hCF , &hCE , &hCD , &hCC , &hCB , &hCA , &hC9 , &hC8 , &hC7 , &hC6 , &hC5 , &hC4 , &hC3 , &hC2 , &hC1 , &hC0
data &hBF , &hBE , &hBD , &hBC , &hBB , &hBA , &hB9 , &hB8 , &hB7 , &hB6 , &hB5 , &hB4 , &hB3 , &hB2 , &hB1 , &hB0
data &hAF , &hAE , &hAD , &hAC , &hAB , &hAA , &hA9 , &hA8 , &hA7 , &hA6 , &hA5 , &hA4 , &hA3 , &hA2 , &hA1 , &hA0
data &h9F , &h9E , &h9D , &h9C , &h9B , &h9A , &h99 , &h98 , &h97 , &h96 , &h95 , &h94 , &h93 , &h92 , &h91 , &h90
data &h8F , &h8E , &h8D , &h8C , &h8B , &h8A , &h89 , &h88 , &h87 , &h86 , &h85 , &h84 , &h83 , &h82 , &h81 , &h80
data &h7F , &h7E , &h7D , &h7C , &h7B , &h7A , &h79 , &h78 , &h77 , &h76 , &h75 , &h74 , &h73 , &h72 , &h71 , &h70
data &h6F , &h6E , &h6D , &h6C , &h6B , &h6A , &h69 , &h68 , &h67 , &h66 , &h65 , &h64 , &h63 , &h62 , &h61 , &h60
data &h5F , &h5E , &h5D , &h5C , &h5B , &h5A , &h59 , &h58 , &h57 , &h56 , &h55 , &h54 , &h53 , &h52 , &h51 , &h50
data &h4F , &h4E , &h4D , &h4C , &h4B , &h4A , &h49 , &h48 , &h47 , &h46 , &h45 , &h44 , &h43 , &h42 , &h41 , &h40
data &h3F , &h3E , &h3D , &h3C , &h3B , &h3A , &h39 , &h38 , &h37 , &h36 , &h35 , &h34 , &h33 , &h32 , &h31 , &h30
data &h2F , &h2E , &h2D , &h2C , &h2B , &h2A , &h29 , &h28 , &h27 , &h26 , &h25 , &h24 , &h23 , &h22 , &h21 , &h20
data &h1F , &h1E , &h1D , &h1C , &h1B , &h1A , &h19 , &h18 , &h17 , &h16 , &h15 , &h14 , &h13 , &h12 , &h11 , &h10
data &h0F , &h0E , &h0D , &h0C , &h0B , &h0A , &h09 , &h08 , &h07 , &h06 , &h05 , &h04 , &h03 , &h02 , &h01 , &h00


Entschlüsseln:
Code:

DIM tab0(255)
DIM itab0(255)

Dim saatcurr(15)
Dim saatnext(15)
Dim ki(15)
Dim kii(15)
Dim pt(15)
Dim temp(15)
Dim q As String *1
Dim r As String *1

RESTORE table0: FOR i = 0 TO 255: READ a%: tab0(i) = a%: NEXT
RESTORE invtable0: FOR i = 0 TO 255: READ a%: itab0(i) = a%: NEXT
randomize (-1,0)

Open command$ For Binary As #1

GoSub passwd
GoSub saatregen
GoSub salzen
GoSub truetrue
Open command$ + ".clear" For Binary As #2

do Until Eof(1)
GoSub rki
GoSub einlesen
GoSub cbc
GoSub decrypt
GoSub ivxorpt
GoSub ausgabe
GoSub saat_next
loop

Close #1:Close #2
Print " Datei "; Command$;" wurde erfolgreich entschluesselt."
sleep
end

Rem ------------------------------------------------SUBS------------------------------------------------------

truetrue:
   GoSub rki
   GoSub einlesen
   GoSub cbc
   GoSub decrypt
   GoSub ivxorpt
   Restore wahr: For i = 0 To 15 : Read a% : temp(i) = a% : Next
   For i = 0 To 15 : temp(i) = temp(i) Xor pt(i) : Next
   For i = 0 To 14 : x = temp(i) Xor temp(i+1) : Next
   If x <> 0 Then GoTo fehler
   GoSub saat_next
Return

fehler:
   Print " passwort falsch !!! "
   Sleep
end

 
passwd:
   DO
   PRINT "Passwort (max. 32 Zeichen):"
   LINE INPUT Password$
   LOOP UNTIL LEN(Password$) <= 32

   IF LEN(Password$) MOD 2 THEN Password$ = Password$ + CHR$(LEN(Password$))

   PasswdString1$ = LEFT$(Password$, LEN(Password$) / 2)
   PasswdString2$ = RIGHT$(Password$, LEN(Password$) / 2)

   FOR i = 0 TO LEN(Password$)
    PasswdSum% = PasswdSum% + ASC(MID$(Password$, i))
   NEXT i

   RANDOMIZE PasswdSum%

   FOR i = 0 TO (15 - (LEN(Password$) / 2))
    PasswdString1$ = PasswdString1$ + CHR$(INT(RND * 31))
    PasswdString2$ = PasswdString2$ + CHR$(INT(RND * 31))
   NEXT i

   FOR i = 0 TO 15
    CryptedByte% = ASC(MID$(PasswdString1$, i)) XOR ASC(MID$(PasswdString2$, i))
    CryptedByte% = CryptedByte% + INT(RND * 255)
    IF CryptedByte% > 255 THEN CryptedByte% = CryptedByte% - 256

   kii(i) = cryptedbyte%
   NEXT i
Return

saatregen:
   For i = 0 To 15: get #1 , ,q:   saatcurr(i) = Asc(q): Next
return

saat_next:
   For i = 0 To 15 : saatcurr(i) = saatnext(i):next
return


ivxorpt:
   For i = 0 To 15: pt(i) = pt(i) Xor saatcurr(i):next
return

cbc:
   For L = 0 To 15: saatnext(l) = Pt(l) : Next L
return

salzen:
   For i = 0 To 15: pt(i) = saatcurr(i):Next
   GoSub rki
   GoSub decrypt
   For i = 0 To 15: saatcurr(i) = pt(i) : Next
return

einlesen:
   For i = 0 To 15 : get #1 , ,q : pt(i) = Asc(q) : Next
return

ausgabe:
For i = 0 To 15 : r = chr(pt(i)) : Put #2, ,r : Next
return

Decrypt:
   For Z = 1 To 11
      Gosub Keyxor
      Gosub Demix
      Gosub Ptinvexp
      Gosub Ptrol
      Gosub Sboxtopt                                     
      Gosub Kiexp
      Gosub Keytosbox                                     
      Gosub kiRol                                           
   Next Z
      Gosub Keyxor
Return

kiRol:                                       
   temp(0) = Ki(0)

   For K = 0 To 14
      Ki(k) = Ki(k) And &H7F
      Ki(k) = Ki(k) * 2
      S = Ki(k + 1) And &H80
      S = S / &H80
      Ki(k) = Ki(k) Or S
   Next K

   Ki(15) = Ki(15) And &H7F
   Ki(15) = Ki(15) * 2
   S = temp(0) And &H80
   S = S / &H80
   Ki(15) = Ki(15) Or S
Return

Ptrol:                                       
   temp(0) = Pt(0)

   For K = 0 To 14
      Pt(k) = Pt(k) And &H7F
      Pt(k) = Pt(k) * 2
      S = Pt(k + 1) And &H80
      S = S / &H80
      Pt(k) = Pt(k) Or S
   Next K

   Pt(15) = Pt(15) And &H7F
   Pt(15) = Pt(15) * 2
   S = temp(0) And &H80
   S = S / &H80
   Pt(15) = Pt(15) Or S
Return


Keytosbox:
   For L = 0 To 15 : Ki(l) = tab0(ki(l)) : Next L
Return

Sboxtopt:
   For L = 0 To 15 : Pt(l) = itab0(pt(l)) : Next L
Return


Keyxor:
   For L = 0 To 15 : Pt(l) = Pt(l) Xor Ki(l) : Next L
Return

Kiexp:
   X = tab0(ki(3))
   ki(12) = ki(12) Xor X
   X = tab0(ki(7)) Xor &h02
   ki(0) = ki(0) Xor X
   X = tab0(ki(11))
   ki(4) = ki(4) Xor X
   X = tab0(ki(15))
   ki(8) = ki(8) Xor X
   ki(1) = ki(1) Xor ki(0)
   ki(2) = ki(2) Xor ki(1)
   ki(3) = ki(3) Xor ki(2)
   ki(5) = ki(5) Xor ki(4)
   ki(6) = ki(6) Xor ki(5)
   ki(7) = ki(7) Xor ki(6)
   ki(9) = ki(9) Xor ki(8)
   ki(10) = ki(10) Xor ki(9)
   ki(11) = ki(11) Xor ki(10)
   ki(13) = ki(13) Xor ki(12)
   ki(14) = ki(14) Xor ki(13)
   ki(15) = ki(15) Xor ki(14)
Return

ptinvexp:
   pt(15) = pt(15) Xor pt(14)
   pt(14) = pt(14) Xor pt(13)
   pt(13) = pt(13) Xor pt(12)
   pt(11) = pt(11) Xor pt(10)
   pt(10) = pt(10) Xor pt(9)
   pt(9) = pt(9) Xor pt(8)
   pt(7) = pt(7) Xor pt(6)
   pt(6) = pt(6) Xor pt(5)
   pt(5) = pt(5) Xor pt(4)
   pt(3) = pt(3) Xor pt(2)
   pt(2) = pt(2) Xor pt(1)
   pt(1) = pt(1) Xor pt(0)
   X = tab0(pt(15))
   pt(8) = pt(8) Xor X
   X = tab0(pt(11))
   pt(4) = pt(4) Xor X
   X = tab0(pt(7))
   pt(0) = pt(0) Xor X
   X = tab0(pt(3))
   pt(12) = pt(12) Xor X
Return

Demix:
For L = 0 To 15
   Temp(l) = Pt(l)
Next L
   Pt(5) = Temp(1)
   Pt(10) = Temp(2)
   Pt(15) = Temp(3)
   Pt(9) = Temp(5)
   Pt(14) = Temp(6)
   Pt(3) = Temp(7)
   Pt(13) = Temp(9)
   Pt(2) = Temp(10)
   Pt(7) = Temp(11)
   Pt(1) = Temp(13)
   Pt(6) = Temp(14)
   Pt(11) = Temp(15)
Return

rki:
For i = 0 To 15: ki(i) = kii(i): next
Return


Rem ------------------------------------------------DATAS----------------------------------------------------------

wahr:
Data &h74 , &h72 , &h75 , &h65 , &h74 , &h72 , &h75 , &h65 ,&h74 , &h72 , &h75 , &h65 ,&h74 , &h72 , &h75 , &h65

table0:
data &hFF , &hFE , &hFD , &hFC , &hFB , &hFA , &hF9 , &hF8 , &hF7 , &hF6 , &hF5 , &hF4 , &hF3 , &hF2 , &hF1 , &hF0
data &hEF , &hEE , &hED , &hEC , &hEB , &hEA , &hE9 , &hE8 , &hE7 , &hE6 , &hE5 , &hE4 , &hE3 , &hE2 , &hE1 , &hE0
data &hDF , &hDE , &hDD , &hDC , &hDB , &hDA , &hD9 , &hD8 , &hD7 , &hD6 , &hD5 , &hD4 , &hD3 , &hD2 , &hD1 , &hD0
data &hCF , &hCE , &hCD , &hCC , &hCB , &hCA , &hC9 , &hC8 , &hC7 , &hC6 , &hC5 , &hC4 , &hC3 , &hC2 , &hC1 , &hC0
data &hBF , &hBE , &hBD , &hBC , &hBB , &hBA , &hB9 , &hB8 , &hB7 , &hB6 , &hB5 , &hB4 , &hB3 , &hB2 , &hB1 , &hB0
data &hAF , &hAE , &hAD , &hAC , &hAB , &hAA , &hA9 , &hA8 , &hA7 , &hA6 , &hA5 , &hA4 , &hA3 , &hA2 , &hA1 , &hA0
data &h9F , &h9E , &h9D , &h9C , &h9B , &h9A , &h99 , &h98 , &h97 , &h96 , &h95 , &h94 , &h93 , &h92 , &h91 , &h90
data &h8F , &h8E , &h8D , &h8C , &h8B , &h8A , &h89 , &h88 , &h87 , &h86 , &h85 , &h84 , &h83 , &h82 , &h81 , &h80
data &h7F , &h7E , &h7D , &h7C , &h7B , &h7A , &h79 , &h78 , &h77 , &h76 , &h75 , &h74 , &h73 , &h72 , &h71 , &h70
data &h6F , &h6E , &h6D , &h6C , &h6B , &h6A , &h69 , &h68 , &h67 , &h66 , &h65 , &h64 , &h63 , &h62 , &h61 , &h60
data &h5F , &h5E , &h5D , &h5C , &h5B , &h5A , &h59 , &h58 , &h57 , &h56 , &h55 , &h54 , &h53 , &h52 , &h51 , &h50
data &h4F , &h4E , &h4D , &h4C , &h4B , &h4A , &h49 , &h48 , &h47 , &h46 , &h45 , &h44 , &h43 , &h42 , &h41 , &h40
data &h3F , &h3E , &h3D , &h3C , &h3B , &h3A , &h39 , &h38 , &h37 , &h36 , &h35 , &h34 , &h33 , &h32 , &h31 , &h30
data &h2F , &h2E , &h2D , &h2C , &h2B , &h2A , &h29 , &h28 , &h27 , &h26 , &h25 , &h24 , &h23 , &h22 , &h21 , &h20
data &h1F , &h1E , &h1D , &h1C , &h1B , &h1A , &h19 , &h18 , &h17 , &h16 , &h15 , &h14 , &h13 , &h12 , &h11 , &h10
data &h0F , &h0E , &h0D , &h0C , &h0B , &h0A , &h09 , &h08 , &h07 , &h06 , &h05 , &h04 , &h03 , &h02 , &h01 , &h00

invtable0:
data &hFF , &hFE , &hFD , &hFC , &hFB , &hFA , &hF9 , &hF8 , &hF7 , &hF6 , &hF5 , &hF4 , &hF3 , &hF2 , &hF1 , &hF0
data &hEF , &hEE , &hED , &hEC , &hEB , &hEA , &hE9 , &hE8 , &hE7 , &hE6 , &hE5 , &hE4 , &hE3 , &hE2 , &hE1 , &hE0
data &hDF , &hDE , &hDD , &hDC , &hDB , &hDA , &hD9 , &hD8 , &hD7 , &hD6 , &hD5 , &hD4 , &hD3 , &hD2 , &hD1 , &hD0
data &hCF , &hCE , &hCD , &hCC , &hCB , &hCA , &hC9 , &hC8 , &hC7 , &hC6 , &hC5 , &hC4 , &hC3 , &hC2 , &hC1 , &hC0
data &hBF , &hBE , &hBD , &hBC , &hBB , &hBA , &hB9 , &hB8 , &hB7 , &hB6 , &hB5 , &hB4 , &hB3 , &hB2 , &hB1 , &hB0
data &hAF , &hAE , &hAD , &hAC , &hAB , &hAA , &hA9 , &hA8 , &hA7 , &hA6 , &hA5 , &hA4 , &hA3 , &hA2 , &hA1 , &hA0
data &h9F , &h9E , &h9D , &h9C , &h9B , &h9A , &h99 , &h98 , &h97 , &h96 , &h95 , &h94 , &h93 , &h92 , &h91 , &h90
data &h8F , &h8E , &h8D , &h8C , &h8B , &h8A , &h89 , &h88 , &h87 , &h86 , &h85 , &h84 , &h83 , &h82 , &h81 , &h80
data &h7F , &h7E , &h7D , &h7C , &h7B , &h7A , &h79 , &h78 , &h77 , &h76 , &h75 , &h74 , &h73 , &h72 , &h71 , &h70
data &h6F , &h6E , &h6D , &h6C , &h6B , &h6A , &h69 , &h68 , &h67 , &h66 , &h65 , &h64 , &h63 , &h62 , &h61 , &h60
data &h5F , &h5E , &h5D , &h5C , &h5B , &h5A , &h59 , &h58 , &h57 , &h56 , &h55 , &h54 , &h53 , &h52 , &h51 , &h50
data &h4F , &h4E , &h4D , &h4C , &h4B , &h4A , &h49 , &h48 , &h47 , &h46 , &h45 , &h44 , &h43 , &h42 , &h41 , &h40
data &h3F , &h3E , &h3D , &h3C , &h3B , &h3A , &h39 , &h38 , &h37 , &h36 , &h35 , &h34 , &h33 , &h32 , &h31 , &h30
data &h2F , &h2E , &h2D , &h2C , &h2B , &h2A , &h29 , &h28 , &h27 , &h26 , &h25 , &h24 , &h23 , &h22 , &h21 , &h20
data &h1F , &h1E , &h1D , &h1C , &h1B , &h1A , &h19 , &h18 , &h17 , &h16 , &h15 , &h14 , &h13 , &h12 , &h11 , &h10
data &h0F , &h0E , &h0D , &h0C , &h0B , &h0A , &h09 , &h08 , &h07 , &h06 , &h05 , &h04 , &h03 , &h02 , &h01 , &h00


Habe bewusst viele GOSUBs eingebaut, damit jeder nach lust und laune den Algo verändern kann und sich evtl. nen eigenen zusammenschustern kann. Hoffe ich habe einige Anregungen geben können.

Viel Spaß damit.

P.S.: Einfach den Code in FreeBasic reinkopieren, und mit option -lang qb compellieren.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 04.05.2009, 14:38    Titel: Antworten mit Zitat

Ganz ganz langsam!

Mit aussagen wie "sollte relativ sicher sein" oder "für den Laien unknackbar" würde ich ganz vorsichtig sein!

Sei dir ganz sicher, dass dein Algo zu nix taugt, denn an einem richtigen Algo sitzen viele viele Experten durchaus mehrere Jahre lang.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
neo7530



Anmeldungsdatum: 04.05.2009
Beiträge: 2

BeitragVerfasst am: 04.05.2009, 14:47    Titel: Antworten mit Zitat

Wenn mir jemand eine Abkürzung des Algos über auch nur 3 Runden berechnen kann, dann nehme ich das mit dem Relativ sicher zurück und sage, dass der Algo zu nix taugt zwinkern

Beispiel:
Plaintext:

54 45 53 54 74 65 73 74 54 45 53 54 74 65 73 74 = TESTtestTESTtest

Crypt:
AB 30 70 9B CE E7 AD 9F 23 AE 47 87 C9 1C 2C 74 = «0p›Îç­Ÿ#®G‡É.,t

Selber Plaintext erneute Verschlüsselung mit selben Passwort:

08 0E 89 B3 D1 F5 16 2B 6F 90 8B 13 1B 7F A5 E7 = ..‰³Ñõ.+o‹..¥ç

Errechne den IV und das Passwort. Benutzt wurden die (nichtlinearen) S-Boxen von Rijndael.

Das soll jetzt nicht zum Wettbewerb ausarten, ist nur ein kleines Beispiel, was dieses stückchen Code kann...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Andy19312



Anmeldungsdatum: 22.10.2005
Beiträge: 428

BeitragVerfasst am: 04.05.2009, 20:45    Titel: Antworten mit Zitat

Hab auch mal eine Verschlüsselung auf die Beine gestellt.
Was haltet ihr von dieser Verschlüsselung?
Natürlich kann man es ausbauen.

Cu Andy

Der Code zum generieren des Codes:
Code:

kill "C:\verschlüsselungAndy19312.txt"

redim puffer (1 to 10000000) as integer
redim text1  (1 to 10000000) as integer
puffer(1) = 112
puffer(2) = 8
puffer(3) = 10
puffer(4) = 110
puffer(5) = 200
puffer(6) = 11
puffer(7) = 4
puffer(8) = 289
puffer(9) = 666
'.
'.
'.
'usw........

dim text as string
dim laenge as ulongint
dim i as ulongint
dim mitte as string

'Hier den Text eingeben
text = "Andy19312"
laenge = len(text)
locate 1,1
print "Alter Code:"
locate 1,40
print "Neuer Code:"


for i = 1 to laenge
mitte = mid(text,i,1)
text1(i) =  ASC(mitte)
locate i+2,1
print text1(i)
text1(i) = text1(i) + puffer(i)
locate i+2,20
print "+ ";puffer(i)
locate i+2,40
print text1(i)
next
print
print "Der Text war:", text
open "C:\verschlüsselungAndy19312.txt" for append as #1
for i = 1 to laenge
print #1, text1(i)
next
close #1

sleep


Der Code zum wieder herstellen des Textes:


Code:

redim puffer (1 to 10000000) as integer
redim text1  (1 to 10000000) as integer
dim a as ulongint
dim text as string
puffer(1) = 112
puffer(2) = 8
puffer(3) = 10
puffer(4) = 110
puffer(5) = 200
puffer(6) = 11
puffer(7) = 4
puffer(8) = 289
puffer(9) = 666

dim i as ulongint
open "C:\verschlüsselungAndy19312.txt" for input as #1
do
a = a + 1
input #1, text1(a)
loop until eof (1)
close #1
print

for i = 1 to a
text1(i) = text1(i) - puffer(i)
text = CHR(text1(i))
locate 1,i
print text

next
sleep


war wiegesagt nur ein Vorschlag von mir gewesen, wenn man es aber ausbaut, ist es sicherlich nicht zu knacken "denke ich mal"

Wenn man den Schlüssel nicht weiss, machts keinen heiss;)
Achso, das puffer Array kann man beliebig weit ausbauen, damit man auch mehr Text verschlüsseln kann.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Nitrosio



Anmeldungsdatum: 11.04.2009
Beiträge: 8

BeitragVerfasst am: 06.05.2009, 09:26    Titel: Antworten mit Zitat

Ich hab da auch mal was gebastelt:

Code:

SCREEN 0
COLOR 4, 0
dim as string pw
dim as integer x
x = 0
DO
CLS
LOCATE 10, 20: COLOR 4, 0: PRINT "Bitte Passwort eingeben:": COLOR 0, 0: LOCATE 10, 44: INPUT "", pw: COLOR 4, 0
IF pw = "0815" THEN EXIT DO ELSE x = x + 1: IF x = 3 THEN beep:end
LOOP

Dim shared As Integer WinXMode, VollBild, WinBreite, WinHoehe, FarbTiefe
ScreenInfo WinBreite, WinHoehe 

If WinBreite >= 512 Then WinXMode = 16
If WinBreite >= 640 Then WinXMode = 17
If WinHoehe  >= 480 Then WinXMode = 18
If WinBreite >= 800 Then WinXMode = 19
If WinBreite >= 1024 Then WinXMode = 20
If WinHoehe  >=1280 then WinXMode = 21

If VollBild = 1 Then
    Screen WinXMode+1,,,1
    Else
    Screen WinXMode,,,1
End If

If ScreenPtr = 0 Then
    Print "Programmabbruch beim initialisieren des Bildschirmmodus!"
    End 1
    End if
? WinBreite & " x " & WinHoehe & " , " & FarbTiefe &"bpp"

color 1,2
cls
print ""
print "Taste 1: Codieren    Taste 2: Entziffern"
sleep
if inkey$="" then beep:end

IF 2 = INP(&H60) THEN
beep
cls   

do
IF 1 = INP(&H60) THEN beep:end

'"1****0"

'1
IF 2 = INP(&H60) THEN print "110100";
'2
IF 3 = INP(&H60) THEN print "110010";
'3
IF 4 = INP(&H60) THEN print "110000";
'4
IF 5 = INP(&H60) THEN print "101110";
'5
IF 6 = INP(&H60) THEN print "101010";
'6
IF 7 = INP(&H60) THEN print "101000";
'7
IF 8 = INP(&H60) THEN print "100110";
'8
IF 9 = INP(&H60) THEN print "100100";
'9
IF 10 = INP(&H60) THEN print "100010";
'0
IF 11 = INP(&H60) THEN print "100000";

'"0****1"

'A
IF 30 = INP(&H60) THEN print "010101";
'B
IF 48 = INP(&H60) THEN print "010011";
'C
IF 46 = INP(&H60) THEN print "010001";
'D
IF 32 = INP(&H60) THEN print "001111";
'E
IF 18 = INP(&H60) THEN print "001101";
'F
IF 33 = INP(&H60) THEN print "001011";
'G
IF 34 = INP(&H60) THEN print "001001";
'H
IF 35 = INP(&H60) THEN print "000111";
'I
IF 23 = INP(&H60) THEN print "000101";
'J
IF 36 = INP(&H60) THEN print "000011";

'"1****1"

'K
IF 37 = INP(&H60) THEN print "111111";
'L
IF 38 = INP(&H60) THEN print "111101";
'M
IF 50 = INP(&H60) THEN print "111011";
'N
IF 49 = INP(&H60) THEN print "111001";
'O
IF 24 = INP(&H60) THEN print "110111";
'P
IF 25 = INP(&H60) THEN print "110101";
'Q
IF 16 = INP(&H60) THEN print "110011";
'R
IF 19 = INP(&H60) THEN print "110001";
'S
IF 31 = INP(&H60) THEN print "101111";
'T
IF 20 = INP(&H60) THEN print "101101";
'U
IF 22 = INP(&H60) THEN print "101011";
'V
IF 47 = INP(&H60) THEN print "101001";
'W
IF 17 = INP(&H60) THEN print "100111";
'X
IF 45 = INP(&H60) THEN print "100101";
'Y
IF 21 = INP(&H60) THEN print "100011";
'Z
IF 44 = INP(&H60) THEN print "100001";

sleep
loop
end if

IF 3 = INP(&H60) THEN
   
beep
cls   

dim as string taste

do
input "",taste
if taste="" then beep:end

'1
if taste="110100" THEN print "1";
'2
if taste="110010" THEN print "2";
'3
if taste="110000" THEN print "3";
'4
if taste="101110" THEN print "4";
'5
if taste="101010" THEN print "5";
'6
if taste="101000" THEN print "6";
'7
if taste="100110" THEN print "7";
'8
if taste="100100" THEN print "8";
'9
if taste="100010" THEN print "9";
'0
if taste="100000" THEN print "0";

'A
if taste="010101" THEN print "A";
'B
if taste="010011" THEN print "B";
'C
if taste="010001" THEN print "C";
'D
if taste="001111" THEN print "D";
'E
if taste="001101" THEN print "E";
'F
if taste="001011" THEN print "F";
'G
if taste="001001" THEN print "G";
'H
if taste="000111" THEN print "H";
'I
if taste="000101" THEN print "I";
'J
if taste="000011" THEN print "J";
'K
if taste="111111" THEN print "K";
'L
if taste="111101" THEN print "L";
'M
if taste="111011" THEN print "M";
'N
if taste="111001" THEN print "N";
'O
if taste="110111" THEN print "O";
'P
if taste="110101" THEN print "P";
'Q
if taste="110011" THEN print "Q";
'R
if taste="110001" THEN print "R";
'S
if taste="101111" THEN print "S";
'T
if taste="101101" THEN print "T";
'U
if taste="101011" THEN print "U";
'V
if taste="101001" THEN print "V";
'W
if taste="100111" THEN print "W";
'X
if taste="100101" THEN print "X";
'Y
if taste="100011" THEN print "Y";
'Z
if taste="100001" THEN print "Z";

sleep
print ""
loop
end if


Ja, ich weiss: INP ist doof. Sollte aber auch nur mal so eine Idee sein. Wenn man alle Einsen und Nullen am Stück schreibt (ist eigentlich immer gut, wenn man nicht weiss, wo ein Buchstabe aufhört und der nächste anfängt; so zumindest meine Überlegung) und die Selbstlaute auslässt, dazu noch irre Abkürzungen verwendet und alles (den Binärcode)möglichst asymetrisch aufbaut etc., dann sollte das auch relativ sicher sein, oder?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 06.05.2009, 13:48    Titel: Antworten mit Zitat

Jetzt kommen wieder alle mit ihren Verschlüsselungen raus...

Das hat doch eh keinen Sinn, heutzutage werden Verschlüsselungen geknackt, die von zig Wissenschaftlern entwickelt wurden und als Sicher galten. Die hausgemachten Verschlüsselungen hier haben da keine Chance. Und wer nur Nachrichten vor seinen kleinen Geschwistern schützen will, dem reicht die Umwandlung in Binärzahlen.

btw. Nitrosio, wenn du alles einfach nur in Binär umwandelst, dann kann man schon drauf kommen, dass immer sechs Zahlen einem Buchstaben entsprechen. Wenn d die Leute verwirren willst, dann setz eine zufällig erstellte Binärzahl mit etwa fünf Stellen vor den eigentlichen Code. Nicht gerade sicherer, aber dürfte für Fragen sorgen, bei einfachen Entschlüsselungsversuchen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4702
Wohnort: ~/

BeitragVerfasst am: 06.05.2009, 16:35    Titel: Antworten mit Zitat

Code:
dim as string nachricht = "zu verschluesselnder Text", verschluesselt
randomize timer
for i as integer = 0 to len(nachricht)-1
  verschluesselt &= chr((nachricht[i] + rnd*256) and 255)
next

wohl nicht so leicht entschlüsselbar durchgeknallt
(obwohl ich auch da nicht zu 100% sicher bin, weil sich auch RND nachträglich berechnen lässt; aber wenn man ganz sicher gehen will, dann kann man die Verschlüsselung noch unabhängig von der Originalnachricht machen. durchgeknallt durchgeknallt )
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 06.05.2009, 16:42    Titel: Antworten mit Zitat

RND lässt sich nachrechnen, du musst nur den wert von TIMER zur programmausführung kennen und du kriegst die ganzen selben zahlen von vorne raus.

und ziel einer verschlüsselung ist es _nicht_, nicht entschlüsselbar zu sein, sondern nicht knackbar zu sein, entschlüsselbar ist sogar eine voraussetzung, was bringt dir verschlüsselung wenn du deinen originaltext nicht wieder rauskriegst? dafür gibts dann hash-funktionen, und die haben wiederum die voraussetzung, dass sie immer das selbe ergebnis produzieren wenn man den selben input verschlüsselt, selbst dafür ist dein code da nicht zu gebrauchen

was also schreibst du für nen schwachsinn da? o_O

Nitrosio hat Folgendes geschrieben:
Ja, ich weiss: INP ist doof. Sollte aber auch nur mal so eine Idee sein. Wenn man alle Einsen und Nullen am Stück schreibt (ist eigentlich immer gut, wenn man nicht weiss, wo ein Buchstabe aufhört und der nächste anfängt; so zumindest meine Überlegung) und die Selbstlaute auslässt, dazu noch irre Abkürzungen verwendet und alles (den Binärcode)möglichst asymetrisch aufbaut etc., dann sollte das auch relativ sicher sein, oder?


bloß weil mans auf den ersten blick nicht lesen kann ists nicht verschlüsselt, wie blöd wäre das denn? da kannst dus auch auf französisch übersetzen und wem unter die nase halten der nur deutsch kann und sagen "guck ma, verschlüsselt, toll oder?" - jeder idiot der bis fünf zählen kann kann die rückersetzung durchführen, wo ist da das problem?

also auch für dich: was für nen schwachsinn schreibst du da? o_O
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra


Zuletzt bearbeitet von MisterD am 06.05.2009, 16:45, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Andy19312



Anmeldungsdatum: 22.10.2005
Beiträge: 428

BeitragVerfasst am: 06.05.2009, 16:43    Titel: Antworten mit Zitat

Ich denke mal, dass meine Verschlüsselung "wahrscheinlich auch die Verschlüsselung von anderen hier im Forum" von nur 0,01 % der Weltbevölkerung knackbar ist.
Wenn nicht sogar noch weniger
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 06.05.2009, 16:46    Titel: Antworten mit Zitat

na und? sie ist knackbar also untauglich. es gibt nämlich vieleicht noch 0,00001% leute, die tatsächlich das ganze knacken wollten, und die sind entweder selbst teil der 0,01% dies können oder kennen jemanden aus den 0,01% oO
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4702
Wohnort: ~/

BeitragVerfasst am: 06.05.2009, 16:55    Titel: Antworten mit Zitat

Zitat:
ziel einer verschlüsselung ist es _nicht_, nicht entschlüsselbar zu sein, sondern nicht knackbar zu sein, entschlüsselbar ist sogar eine voraussetzung, was bringt dir verschlüsselung wenn du deinen originaltext nicht wieder rauskriegst?

Sicher, ist mir schon klar. Dachte aber, dass das durch die durchgeknallt -Smilies klar wäre ...
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 06.05.2009, 17:07    Titel: Antworten mit Zitat

sorry aber bei dem IQ durschschnitt der sich hier im forum letztlich aufzeigt gehe ich inzwischen davon aus, dass leute den durchgeknallt benutzen um cool auszusehen peinlich
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 07.05.2009, 02:39    Titel: Antworten mit Zitat

wie wärs denn mit dem wohl sichersten algo? .. onetimepad mit na gekoppelten germaniumdiode. Beide datenströme aufzeichnen, den einen per brief den anderen per mail verschicken und fertig is das nahezu (aktuell und wohl auch noch in naher zukunft) sichere ver-entschlüsselungskonzept.


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 07.05.2009, 18:26    Titel: Antworten mit Zitat

Es ist sowieso alles Müll was ein einzelner entwickelt hat, sowas GAB es früher, HEUTE nicht mehr.
Der einzige Algo, der von einem entwickelt wurde, und der einigermaßen sicher ist, ist RC4 (6 ist ja der Nachfolger)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Lutz Ifer
Grillmeister


Anmeldungsdatum: 23.09.2005
Beiträge: 555

BeitragVerfasst am: 07.05.2009, 19:41    Titel: Antworten mit Zitat

[OT]
Pauschalisierungen sind generell falsch.

(Und alle Kreter lügen zwinkern)
[/OT]
_________________
Wahnsinn ist nur die Antwort einer gesunden Psyche auf eine kranke Gesellschaft.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz