Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

Encoder & Decoder für Textdateien (nutzt Zahlensystem-Konverter)


  • Please log in to reply
19 replies to this topic
Alibaba
  • Members
  • 435 posts
  • Last active: Nov 19 2014 04:21 PM
  • Joined: 01 Nov 2012

Der Zahlensystem-Konverter von Dr_Holle hat mich dazu inspiriert ein kleines Verschlüsselungssystem für Text zu basteln.

 

Achtung:

Dieser selbst gebastelte Algorithmus ist NICHT sicher und das behaupte ich auch nirgends. Wenn hier also jemand nach einem sicheren Weg sucht irgendwelche Informationen in seinem Script oder sonstwo zu verschlüsseln, dann ist er eindeutig im falschen Thread!

Es gibt kostenlose professionelle Verschlüsselungen wie z.B. AES256, auf die man zurückgreifen sollte, wenn man echte Sicherheit erzielen möchte.

Im Thread Encrypt & Decrypt Text von jNizM, sieht man, wie man die bekanntesten Verschlüsselungsalgorithmen auf einfache Art und Weise in AHK nutzen kann.

 

Dieser Thread hier ist bloß entstanden, weil ich die Leistungsfähigkeit der Convert()-Funktion von Dr_Holle austesten wollte.

 

Edit:

So, ich habe jetzt nochmal dran weitergearbeitet und das System um einige Schritte erweitert.

Den genauen Ablauf zu erklären würde zu lange dauern, aber die Verschlüsselung wird jetzt durch 7 Faktoren bestimmt. Die 3 Grundfaktoren "Zielbase", "Multiplikation" und "Addition" und 4 weitere Manipulationsfaktoren, welche Störfaktoren in die verschlüsselte zeichenkette einbauen. Im letzten Schritt werden alle Zeichen der verschlüsselten Kette mithilfe des 4. Manipulationsfaktors, welcher einen Array aus 10 Zahlen darstellt zu Unicode-Zeichen transformiert.

 

Diese 7 Faktoren werden aus dem Passwort generiert indem aus dem SHA1-Hash (Script nutzt Bentschis Hash-Funktion) mit Convert() eine dezimale Zahlenkette erzeugt wird. Diese wird dann geparst und die 7 Faktoren werden in vielen Einzelschritten zusammengesetzt.

 

Außerdem habe ich diesmal alles in ein Programm gepackt.

 

So sieht's jetzt aus:

 

encoder_decoder.PNG

 

 

Hier das Script:

 

Spoiler

 

Sorry, dass das Script noch ein bisschen unordentlich ist...


Edited by QaMarath, 15 March 2013 - 10:26 PM.

Find the recent autohotkey version here: ahkscript.org


SAPlayer
  • Members
  • 403 posts
  • Last active: Apr 11 2014 04:45 PM
  • Joined: 06 Nov 2012

Schönes Programm, aber ich schätze mal, wenn man ein paar Zeichen weiß (z.B. 1. Wort: "AHK_L") und sich etwas genauer mit dem Programm befasst, kann man die 3 Werte herausfinden und den Text damit entschlüsseln. Vielleicht geht das sogar mit einer geschulten Textanalyse (z.B. Leerzeichen kommt in bestimmten Abständen vor, jedoch normalerweise nicht zweimal hintereinander, hat einen niedrigen Wert; Sonderzeichen wie ä haben hohe Werte und kommen meistens recht selten vor; auch Folgen wie z.B. bei dir oben dreimal "80P" kann man erkennen). Wenn man also ein Analyseprogramm laufen lässt, das zum Bespiel ermittelt, wie häufig ein bestimmter Wert vorkommt, kann man damit vielleicht auch was anfangen (natürlich muss man sich dann auch auf die Sprache festlegen und der Text darf nicht allzu kurz sein).

 

Außerdem wäre es schön, wenn man für das Kodieren und dekodieren ein Programm verwenden könnte - einfach die Buttons nebeneinander setzen, die Schlüssel bleiben ja gleich.

 

Und noch was: Man sollte vielleicht auch ein Wort als Schlüssel nehmen können, die sind ja bekanntlich leichter zu merken.



jNizM
  • Members
  • 928 posts
  • Last active: Jan 12 2018 09:23 AM
  • Joined: 01 Aug 2012
Meinst du sowas SAPlayer?
Encrypt & Decrypt Text
[AHK] 1.1.27.04 x64 Unicode | [WIN] 10 Pro (Version 1709)
My GitHub Profile | Donations are appreciated if I could help you

SAPlayer
  • Members
  • 403 posts
  • Last active: Apr 11 2014 04:45 PM
  • Joined: 06 Nov 2012

Ja so meine ich das mit dem Ein-Programm-statt-zwei. Aber ich selbst brauche ein solches Programm gar nicht, ich wollte nur meine Kritik äußern^^



Alibaba
  • Members
  • 435 posts
  • Last active: Nov 19 2014 04:21 PM
  • Joined: 01 Nov 2012

Hab mal dran weitergearbeitet und deine Vorschläge umgesetzt, SAPlayer.


Find the recent autohotkey version here: ahkscript.org


SAPlayer
  • Members
  • 403 posts
  • Last active: Apr 11 2014 04:45 PM
  • Joined: 06 Nov 2012

Hmm, das sieht mir schon deutlich sicherer aus (keine Muster mehr zu erkennen) wink.png

 

Obwohl ich glaube, dass man statt Unicode-Zeichen auch ANSI-Zeichen nehmen könnte :D



Alibaba
  • Members
  • 435 posts
  • Last active: Nov 19 2014 04:21 PM
  • Joined: 01 Nov 2012

Nein. Unicode schreckt viel stärker ab... wink.png


Find the recent autohotkey version here: ahkscript.org


nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Trotztdem ist das ganze noch etwas unsicher ich hatte schon ein Paar Ideen für Filter die in Abhängigkeit zu einem Passwort stehen.

Jedoch sind die noch nicht perfekt ausgereift. z.B. bekomm ich relativ schnell Probleme mit der Rechenkapazität meinens Rechners Da sich der Algorythmus häufig mit n! (nte Fakultät) erhöht (ab 13 übersteigt die Information einen 32 bit Integer). Ich habe die Lösung für das Problem schon fast fertig. Jedoch muss ich noch in der Praxis ausprobieren wie es klappt.

 

Mit den Filtern würdest du das ganze noch sicherer machen.


Visit the new forum ahkscript.org.

http://ahkscript.org


nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012
Filter1(arr,modvar=0xFFFFFFFF)
{
	arr2:=[]
	buf:=0
	For each,num in Arr
	{
		Loop % each-1
		    buf:=mod((buf+1)*(arr[A_index]+(A_index)+(each)),modvar) ;Hier wird über eine nicht umkehrbare Berechnung, der von vielen Faktoren abhängt
	arr2[each]:=mod(buf+num,modvar) ;der Wert verändert.
	}
return arr2
}

Filter1Remove(arr,modvar=0xFFFFFFFF)
{
	buf:=0
	For each,num in Arr
	{
		Loop % each-1
		    buf:=mod((buf+1)*(arr[A_index]+(A_index)+(each)),modvar) 
	arr[each]:=MIN(mod(num-buf,modvar),modvar) ;andere Berechnung da auch negative Werte entstehen können
	}
return arr
}

min(val,modvar=0xFFFFFFFF)
{
while val<0
	val+=modvar
return val
}


showarr(arr)
{
str2:="["
For each,key in	arr
	str2.=key "`,"
StringTrimright,str2,str2,1
str2.="]"
return str2
}

modvar:=16 ;Rechensystem in, diesem Fall Hex
var1:=[7,15,1,2,3]
showarr(var1)
showarr(var1:=Filter1(var1,modvar)
showarr(var1:=Filter1Remove(var1,modvar)



Visit the new forum ahkscript.org.

http://ahkscript.org


nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012
Bei diesem Filter hängen alle späteren Werte von den vorderen ab, sie enthalten jedoch nur sehr wenig Information über diese.
Ich hab mir halt dabei gedacht, das das Passwort vorne an den Stribg drangehängt wird zur Berechnung und, dass es danach wieder entfernen kann.
E.G.
PW: [7,15]
String:[1,2,3]
Mix:[7,15,1,2,3]
ErgebnisString:[1,6,9] ; nicht gleich wie die anderen
ErgebnisMix:[7,9,9,2,13] ;das Ergebnis von PW und string zusammen
ErgebnisPW:[7,9] ;das Ergebnis von PW alleine dasselbe wie die ersten Zahlen oben.
EndErgebins:[9,2,13] ;da man das Ergebnis von PW berrechnen kann braucht man es nicht für das entschlüssen.

Visit the new forum ahkscript.org.

http://ahkscript.org


Alibaba
  • Members
  • 435 posts
  • Last active: Nov 19 2014 04:21 PM
  • Joined: 01 Nov 2012

Ok, das System scheint mir ja ziemlich sicher zu sein, aber wie und wo ich die Filter einbauen soll, verstehe ich leider noch nicht ganz. Vorallem woher ich "modvar" nehmen soll..?
Aber trotzdem würde ich deinen Filter Algorithmus gerne einbauen, brauche nur eine genaue Erklärung. happy.png


Find the recent autohotkey version here: ahkscript.org


nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Das ganze ist sehr sehr schwierig umzusetzen. Ausserdem ist dein Code mittlerweile sicher genug.

Für die Leute die nicht nur Text haben schreib ich dann selber ein Encoder/Decoder.


Visit the new forum ahkscript.org.

http://ahkscript.org


Alibaba
  • Members
  • 435 posts
  • Last active: Nov 19 2014 04:21 PM
  • Joined: 01 Nov 2012

Ok.


Find the recent autohotkey version here: ahkscript.org


IsNull
  • Moderators
  • 990 posts
  • Last active: May 15 2014 11:56 AM
  • Joined: 10 May 2007

Folgendes bitte nicht falsch verstehen. Ich finde das Skript cool, und habe so etwas früher auch oft gemacht.

Ausserdem ist dein Code mittlerweile sicher genug.

Und warum? Nur weil du nicht weist wie man das knackt? tongue.png 
 
Ein selber entwickelter Verschlüsselungsalgo ist kaum sicher.
 
Ich fand es auch immer sehr cool selber an solchen Verschlüsselungen zu arbeiten, aber "sicher" können die nicht sein. (Selbst mit einigen Kryptographie Modulen im Rücken)
 
 
 
Warum diese Verschlüsselung sicherlich nicht sicher sein kann, kann man leicht beweisen (ohne irgendwelche Mathematischen Kunststücke):
Hello World          mPvRLoOuO>K̽b<k>vUËIqOO<|9Ðt_<mQ tb7zO
Hello Worla          mNvRLoOuO>K̽b<k>vUËIqOO<|9Ðt_<mQ tb7zO
 
Wie man sehen kann ist der Kryptotext bei ähnlichen Eingaben selber genau so ähnlich dies ist ein klares Indiz für eine sehr schwache Verschlüsselung.

Also bei selber entwickelten Algorithmen bitte nicht von sicher sprechen. Das kann gefährlich sein, für Leute die den Code verwenden und wirklich denken dass es sicher ist.



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Nun ja aber meine beiden Filter sind da leicht anders:

Filter1:

Status: Schon gepostet

Der Wert wird aufgrund aller vorhergehenden Werte modifiziert.

D.h. sollte er mehr Sicherheit bieten.

 

 

Filter2:

Status: Zurückgehaten da er noch sehr Arbeitsspeicher konsumierend ist(Und ich mich Frage wie man mit AHK mit Werte grösser als 1 UInt rechnet(Ich rede hier von sehr sehr grossen Int Werten))

Er setzt nach Filter1 ein und benutzt dessen Ergebnisse.

Der Wert wird aufgrund des Passworts und der Addition aller anderen Werte verschoben.

Diese Verschiebung ist für jeden Wert einzigartig.


Visit the new forum ahkscript.org.

http://ahkscript.org