Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme.

Bitweise Permutation in Java

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 ...

Antwort
Alt 03.05.07, 17:56   #1 (permalink)
 
Registriert seit: 29.04.07
pi() Leistung: Facit NTK
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... .

__________________
Seht euch das bitte einmal an.Hab mir echt Mühe gegeben:
Hier: www.gutinmathe.at
pi() ist offline   Mit Zitat antworten
Alt 03.05.07, 19:43   #2 (permalink)
Moderator
 
Benutzerbild von Elderan
 
Registriert seit: 30.03.04
Elderan Leistung: 8086
Likes: 14
Standard

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
Elderan ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 03.05.07, 21:59   #3 (permalink)
Themenstarter
 
Registriert seit: 29.04.07
pi() Leistung: Facit NTK
Likes: 0
Standard RE: Bitweise Permutation in Java

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.
__________________
Seht euch das bitte einmal an.Hab mir echt Mühe gegeben:
Hier: www.gutinmathe.at
pi() ist offline   Mit Zitat antworten
Alt 03.05.07, 22:50   #4 (permalink)
Moderator
 
Benutzerbild von Elderan
 
Registriert seit: 30.03.04
Elderan Leistung: 8086
Likes: 14
Standard

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.
Elderan ist offline   Mit Zitat antworten
Alt 04.05.07, 00:54   #5 (permalink)
CDW
Moderator
 
Benutzerbild von CDW
 
Registriert seit: 20.07.05
CDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: Opteron
Likes: 202
Standard

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.
CDW ist offline   Mit Zitat antworten
Alt 05.05.07, 16:06   #6 (permalink)
Themenstarter
 
Registriert seit: 29.04.07
pi() Leistung: Facit NTK
Likes: 0
Standard

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).
__________________
Seht euch das bitte einmal an.Hab mir echt Mühe gegeben:
Hier: www.gutinmathe.at
pi() ist offline   Mit Zitat antworten
Alt 05.05.07, 16:40   #7 (permalink)
Moderator
 
Benutzerbild von Elderan
 
Registriert seit: 30.03.04
Elderan Leistung: 8086
Likes: 14
Standard

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.
Elderan ist offline   Mit Zitat antworten
Alt 05.05.07, 17:27   #8 (permalink)
Senior Member
 
Benutzerbild von t3rr0r.bYt3
 
Registriert seit: 07.01.03
t3rr0r.bYt3 Leistung: Z3
Likes: 19
Standard

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.
t3rr0r.bYt3 ist offline   Mit Zitat antworten
Alt 07.05.07, 22:43   #9 (permalink)
Themenstarter
 
Registriert seit: 29.04.07
pi() Leistung: Facit NTK
Likes: 0
Standard

@ 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.
__________________
Seht euch das bitte einmal an.Hab mir echt Mühe gegeben:
Hier: www.gutinmathe.at
pi() ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Code Kitchen » Bitweise Permutation in Java
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ä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


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61