Stap 6: Ontwikkeling blijft (planning uit het algoritme)
Ik ben heel blij met de resultaten tot nu toe. Ik heb altijd geïnteresseerd geweest in een coderingsmethode die afdrukbare cipher-tekst in plaats van binaire vuilnis produceren zou. Deze methode lijkt alsof het voor een fijne e-mail encryptie hulpprogramma zorgen zou.
XOR is een heel mooi begin, maar als ik echt wil een sterke algoritme ik moet maken van een cryptografische hash-functie en ik nodig om het te binden allemaal samen in een bepaalde vorm van een stream of block cipher. Er zijn tal van middelen die er dus ik ga lenen sommige ideeën hier. Niet omdat ik lui ben en kan niet wat mezelf bedenken. Het is meer dat ik ben niet gekwalificeerd als een cryptograaf.
Ik zou willen gebruiken van de methoden die worden geaccepteerd als veilige of ten minste nemen soortgelijke methodologie en hoop dat ik niet een slechte keuze te maken (d.w.z. Vermijd methoden al bewezen onveilig). Een goed algoritme moet openstaan voor iedereen te zien en nog steeds opstaan om aan te vallen. Er is een Gemeenschap van "testers" out there die kwetsbaarheden in elk algoritme openbaar zult vinden.
Aangezien mijn visie tekst naar tekst om tekst is 'm I gonna stick met 7-bits afdrukbare ASCII als mijn alfabet. Ik ben beslissen dat een blok 80-karakters lang (zoals in een lijn) met een willekeurig aantal rijen is. Ik zal alles dus baseren op dit blok van de 80 karakter met inbegrip van de hash-functie. Voor alle puristen in het publiek is dit equivalent aan ergens tussen 546 en 547 binaire bits.
Dus wat doet een hash-functie doen precies? Een willekeurige hoeveelheid gegevens verwerkt en produceert een vaste lengte uitgang een hash genoemd. Er zijn een paar vereisten voor een hash veilig te zijn.
1) minuscule verandering in invoer moet weerspiegelen een enorme verandering uit
2) uitgang is onvoorspelbaar t.o.v. input (d.w.z. irreversibel)
3) uitgang moet worden willekeurig in de natuur (dwz luidruchtig)
4) dezelfde input moet altijd produceren dezelfde output
.