| Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme. |
Diskussion: Bitweise Permutation in Java im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hallo.Ich hätte eine simple Frage:Weiß vielleicht jemand, wie ich eine bitweise Permutation in Java verwirklichen könnte?Meine Wunsch-Permutation würde folgendermaßen ...
![]() |
| | #1 (permalink) |
| Registriert seit: 29.04.07 ![]() Likes: 0 | Bitweise Permutation in Java Anzeige Hallo.Ich hätte eine simple Frage:Weiß vielleicht jemand, wie ich eine bitweise Permutation in Java verwirklichen könnte?Meine Wunsch-Permutation würde folgendermaßen funktionieren: zB: k={1,1,0,0,0,0,1,0} // Klartext s={4,5,6,3,2,1,0,7} //Schlüssel daraus würde folgen: c={1,0,0,0,1,1,0,0} //Chiffre umkehren kann man das ganze mit dem gleichen Algorithmus, nur mit dem aus dem Schlüssel generierten Gegenschlüssel: In diesem Fall: sgegen={6,5,4,3,0,1,2,7} Eine nähere Beschreibung findet sich unter:http://www.matheprisma.de/teachTool/Module/Sources/DES/ ->Permutation Ich mache gerade einen Verschlüsselungsalgorithmus, hab aber bis jetzt die Permutation nur Byteweise, was nicht besonders sicher ist... . |
| | |
| | #2 (permalink) |
| Moderator ![]() Registriert seit: 30.03.04 ![]() Likes: 14 | Hallo, und du glaubst, dass eine Bit-Weise Permutation sicherer ist als eine Byteweise? Warum verwendest du nicht einen sicheren Algorithmus wie z.B. Blowfish? Und auf deiner Seite sehe ich leider keinen Link zu 'Permutation', wobei DES sowieso blöde zum Programmieren ist, da dieser Algorithmus eher für die Hardware-Imp. ausgelegt ist und nicht für Software-Imp. Lieber Algorithmen wie Blowfish, XTEA oder AES benutzen, diese sind deutlich sicherer als (Standard) DES, leichter zu programmieren und als Software-Imp. auch schneller als eine Software-DES-Implementierung. Außerdem sind die festen Permutationen in DES am Anfang und am Ende des Algorithmus kein Sicherheitsgewinn und viele Software-Implementierungen lassen diesen Schritt weg. Per Software dieses zu realisieren ist unnötig aufwendig und erhöht nicht die Sicherheit, allerdings entspricht der Algorithmus nicht mehr dem Standard. Wie gesagt, DES wurde designt um per Hardware zu implementiert zu werden. AES sollte man z.B. leicht per Software und per Hardware implementieren können. PS: Falsches Forum, passt eher in die Code Kitchen |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Themenstarter Registriert seit: 29.04.07 ![]() Likes: 0 | Klar glaub ich das.Wenn die ganzen Bytes verschoben werden sind sie ja immer noch dieselben Bytes.Bei bitweise Permutation ist das (logischerweise) nicht so. Nunja, es ist so, ich mache mir im moment selbst einen Algorithmus. Also einen völlig eigenen. Ja , sry, auf der Seite muss man den halben Kurs durchegehen um Permutation zu finden. Irgendwie finde ich jetzt sogar reichlich wenig davon.Tut mir leid. |
| | |
| | #4 (permalink) |
| Moderator ![]() Registriert seit: 30.03.04 ![]() Likes: 14 | Hallo, also einzelne Bits zu manipulieren ist Software mäßig schwer, da das Byte nunmal die kleinste addressierbare Einheit ist. Des Weiteren ist sowas relativ langsam, und wie gesagt, erhöht dies nicht wirklich die Sicherheit. Wenn es eine Feste ist, also nicht vom Key abhängt, sowieso nicht. Darum verwenden moderne Algorithmen soetwas sogut wie nie. Guck dir z.B. Blowfish an, dieser verwendet auch eine P-Box (eine Permutationsbox) mit 32-Bit Wörtern. Und naja von eigenen Algorithmen im (produktiven) Einsatz halte ich nicht viel, dann doch lieber Algorithmen die als sicher gelten verwenden. |
| | |
| | #5 (permalink) |
| Moderator ![]() Registriert seit: 20.07.05 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 202 | Es gibt http://java.sun.com/j2se/1.4.2/docs/...til/BitSet.htm oder auch Bitweise Operatoren. Allerdings bringt die Fummelei nicht wirklich was - nicht umsonst hat (wenn ich mich recht entsinne) AES nur die XOR Verknüpfung als "Bitmanipulation".
__________________ Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf! Selig, wer nichts zu sagen hat und trotzdem schweigt. |
| | |
| | #6 (permalink) |
| Themenstarter Registriert seit: 29.04.07 ![]() Likes: 0 | Nett für eure Beiträge-erstmal danke. Hab mich heute an diesem schönen Vormittag mal hingesetzt und selbst gemacht, was ich wollte,es geht nämlich in Java. Mit ein paar << und >> Operationen kann man sehr gut bitweise permutieren .Es ist ziemlich schnell (1 Milliarden Byte in ner for-Schleife in 31 sec). Wenn man es richtig macht, erhöht Permutation die Sicherheit erheblich (ich hoffe ich schaffe es richtig).Siehe Algorithmus "Serpent". Wenn ihr wollt könnt ihr den Code haben, aber den schick ich euch lieber privat (email). |
| | |
| | #7 (permalink) |
| Moderator ![]() Registriert seit: 30.03.04 ![]() Likes: 14 | Hallo, hoffentlich glaubst du doch nicht wirklich, dass einzelne Methoden die Sicherheit deines Algorithmus erhöhen? Das wäre genauso, als ob ich sagen würde, meine Haustüre besitzt jetzt das neuste Sicherheitsschloss. Dies sagt nix darüber aus, ob mein Haus nun sicherer ist als zuvor, denn wenn ich die Hintertüre immer offen lasse, kann ich mir das beste Sicherheitsschloss der Welt kaufen, vor Einbrechern schütz dieses dennoch nicht. Zu sagen, ich verschiebe ein paar Bits, weil Serpent dies auch benutzt, woraus folgt, dass mein Algo. jetzt sicher ist, ist leider falsch. Denn bei der Cäser-Methode werden die Buchstaben auch verschoben. Wenn man also kein Experte der Kryptoanalyse ist, kann man nie sagen, ob ein Algorithmus jetzt vielleicht sicher ist, oder ob er unsicher ist. Selbst die wenigen Experten sind darauf angewiesen, dass möglichst viele ihren Algorithmus betrachten und bewerten. Und wie gesagt, vertrau lieber auf geprüfte Algorithmen anstatt dir selber einen zu basteln. |
| | |
| | #8 (permalink) |
| Senior Member Registriert seit: 07.01.03 ![]() Likes: 19 | ich weiß nicht, ob du die zahlen nachher auch als solche interpretierst, aber pass bei bitshifts aufs vorzeichen auf. dieses wird nämlich erhalten, und negative zahlen im 2er-komplement repräsentiert. |
| | |
| | #9 (permalink) |
| Themenstarter Registriert seit: 29.04.07 ![]() Likes: 0 | @ terrorbyte - ja mach ich, danke! @Elderan- ich denke, ich weiß schon , wie ich das anstelle.Wenn ich mal fertig bin kann ich den code ja mal uppen.Die Permutation soll nicht unbedingt direkt dazu dienen, die Sicherheit zu erhöhen, die Sicherheit soll eher im Xor-Schlüssel liegen.Ich werde , so stell ich mir das momentan vor, 2 Modi machen- bei einem ist der P-Schlüssel sogar fix im Code.Sie soll aber dazu dienen, dass ein geringfügig anderer Schlüssel ein ganz anderes Ergebnis bringt.Zusammen mit Substitution und Xor-Verknüpfung hoffe ich ein gutes Ergebnis zu erzielen. |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| bitweise UND / bitweise ODER | _fux_ | Code Kitchen | 5 | 10.03.09 15:08 |
| Java | sw33tlull4by | Code Kitchen | 26 | 08.07.07 11:20 |
| JAVA! gibts soziale java fachleute? | yakuza | Code Kitchen | 4 | 03.05.04 00:53 |
| Java und Java script | paya | Code Kitchen | 2 | 29.05.03 09:37 |