Avatar billede pissemyre Nybegynder
29. april 2003 - 18:41 Der er 25 kommentarer og
1 løsning

blowfish forklaring

Hej hej.... ja her er problemet:


1. KEY EXPANSION converts a key of up to 448 bytes into several subkey 32-bit arrays: the permutation-array, denoted Pi (i=1,...18); and the string-array, denoted Si,j (i=1,...4) and (j=0,...255).
2. DATA ENCRYPTION consists of a FEISTEL FUNCTION, F(), iterated for 16 rounds.
To encrypt, divide the initial plaintext into a left and right half, 32 bits apiece, denoted L0 and R0. Then for each i, i=1,...16:
let Li be set equal to Li-1 ^ Pi; let Ri be set equal to F(Li) ^ Pi; then swap Li and Ri.
Finally, swap Li and Ri (i.e., undo the 16th swap). Then:
Let Rfinal be set equal to R16^P17; Let Lfinal be set equal to L16^P18;
Finally, rejoin the right and left halves, denoted Lfinal and Rfinal.
      Decryption is the same as encryption, except that P1,... P18 are used in reverse order.
      Subkeys are calculated as follows:

1. Initialize P'1,... P'18, and then S'1,0,... S'4,255, in order, using the hexadecimal expansion of pi.
2. Obtain the secret-permutation array, P1,... P18, by letting Pi be set equal to P'i ^ Ki.
3.
4.

Er der nogen der kan oversætte eller rettere forklare?
På forhånd tak!
Avatar billede arne_v Ekspert
29. april 2003 - 19:29 #1
Hvor meget kender du til moderne kryptering ?
Avatar billede pissemyre Nybegynder
30. april 2003 - 15:03 #2
Ikke det helt store... faktisk er det hovedsaglig fagudtrykkene jeg gerne vil habe gjort lidt mere forståelige, selvom jeg generelt godt kunne tænke mig en gennemløbbende forklaring...
Avatar billede pissemyre Nybegynder
30. april 2003 - 15:04 #3
Jeg vil ikke sige at jeg stiller mig totalt uforstående overfor indholdet, det er bare... øh... mindre klart >:)... det er til dels også fordi jeg ikke har tid til at sætte mig ind i dette, så jeg vælger den nemme (håber jeg) løsning...
Avatar billede arne_v Ekspert
30. april 2003 - 15:06 #4
Jeg vil godt prøve at læse lidt og se om jeg kan komme
med en god forklaring.

Hvis jeg får tid i aften !
Avatar billede arne_v Ekspert
30. april 2003 - 20:12 #5
OK jeg læser lidt i Bruce Schneiers "Applied Cryptography" 2nd Ed.
afsnit 14.3 om Blowfish.

Fremragende bog hvis du skal arbejde med kryptering.

Og kapitlet om Blowfish bør være god, da det jo er ham der
har opfundet algoritmen.
Avatar billede pissemyre Nybegynder
30. april 2003 - 20:16 #6
Det lyder alletiders, og jeg er meget taknemmelig for du har lyst til at hjælpe mig... ofte springer folk bare et spørgsmål over hvis de ikke lige kan det på fingerspidserne (hvilket også er helt i orden det er ikke det)...
Avatar billede arne_v Ekspert
30. april 2003 - 20:24 #7
Det ser altså meget langhåret ud.

:-(

Men lad os komme igang.

Blowfish består faktisk af 2 separate dele:

1)  Selve Blowfish algoritmen der bruges til
    at konvertere key til noget der skal bruges
    under kryptering

    en op til 448 bit key bliver konverteret til
    18 + 4 x 256 integers

2)  selve krypteringen som er et Feistel netværk
    konverterer 8 byte til 8 byte (block cipher)
Avatar billede pissemyre Nybegynder
30. april 2003 - 20:26 #8
Hvad er et Feistel netværk? >:).. det er måske basal kryptografi?
Avatar billede arne_v Ekspert
30. april 2003 - 20:27 #9
Navngivning:

de 18 integers kaldes P 1 ... P 18
de 4 x 256 integers kaldes S 1,0 ... S 4,255
de 8 byte opdeles i 2 integers X L og X R
Avatar billede arne_v Ekspert
30. april 2003 - 20:41 #10
Det er beskrevet i sektion 14.10 i bogen.

Et Feistel netværk består af et antal runder hvor man behandler et lige
antal bytes.

Lad os kalde dem L og R.

Formlem er:

L(i) = R(i-1)
R(i) = L(i-1) XOR f(R(i-1),K(i))

i = nummer på nuværende runde
K = key
f = en vilkårlig funktion (som selvfølgelig er specifik for en bestemt algoritme)

Feistel netværk har nogle gode egenskaber og bruges i DES, Blowfish og mange
andre krypterings algoritmer.
Avatar billede pissemyre Nybegynder
30. april 2003 - 20:44 #11
ja jeg tænkte nemlig også på at spørge om det er det DES bruger... det kan jeg så høre det er...
Avatar billede arne_v Ekspert
30. april 2003 - 21:31 #12
Selve krypteringen er så:

split X i X L og X R
for i = 1 to 16 {
  X L = X L xor P i
  X R = F(X L) xor X R
  swap X L og X R
}
swap X L og X R
X R = X R xor P 17
X L = X L xor P 18
combine X L og X R til X
Avatar billede arne_v Ekspert
30. april 2003 - 21:33 #13
Hvor Funktionen F er:

split X i 4 bytes a, b, c og d
F(X) = ((S 1,a + S 2,b mod 2^32) xor S 3,c) + S 4,d mod 2^32
Avatar billede arne_v Ekspert
30. april 2003 - 21:34 #14
Jeg har så sprunget over de finere detaljer i key konverteringen.

Men ellers håber jeg at dette har hjulpet.
Avatar billede arne_v Ekspert
30. april 2003 - 21:34 #15
Og et svar.
Avatar billede pissemyre Nybegynder
02. maj 2003 - 09:55 #16
Jeg kigger på det i løbbet af idag og imorgen... tak for hjælpen...

Jeg må dog med det samme indrømme at jeg ikke er helt med på xor funktionen... kan godt huske at ha´læst om den, men det er vidst et stykke tid siden...
Avatar billede arne_v Ekspert
02. maj 2003 - 09:58 #17
XOR = eXclusive OR = præcis en er sand

binært betyder det:

0 XOR 0 = 0
1 XOR 0 = 1
0 XOR 1 = 1
1 XOR 1 = 0

og på 32 bit integers laves det bare for hver enkelt bit separat.
Avatar billede arne_v Ekspert
02. maj 2003 - 09:59 #18
I C/C++ er XOR:
  c = a ^ b;
Avatar billede brhino Nybegynder
07. maj 2003 - 04:04 #19
Hej Pissemyre

Jeg ved ikke helt hvad du skal bruge Blowfish krypteringen til (?), men jeg kan fortælle dig at det er en af de mest sikre krypteringer der findes. Hvilket den 448 bit key jo siger en hel del om. Så vidt jeg ved er Blowfish også copyright'et. Så hvis jeg var dig ville jeg bruge TEA som kryptering. TEA (Tiny Encryption Algoritm) er public domain. TEA bruger en 128 bit key hvilket giver 2^128 (340282366900000000000000000000000000000000000000) muligheder for at finde den rigtige key. Det burde være rigeligt til hvad du nu skal have krypteret. Selve algoritmen kan du finde på nettet. Jeg har også hørt om TEA med en 256 bit key men den er jeg endnu ikke stødt på.

Iøvrigt kan man lave en meget simpel og temmlig svær kryptering ved hjælp af alm. XOR og nogle SHR og SHL. Håber det gav lidt mere hjælp ud over arne v's udemærkede forklaringer :-) 

BRhino
Avatar billede arne_v Ekspert
07. maj 2003 - 07:18 #20
Blowfish er ikke patenteret.

Bruce Schneier har releaset en C implentation til public domain.
Avatar billede brhino Nybegynder
07. maj 2003 - 14:25 #21
Tak ! Det var jeg ikke klar over. Jeg mener at have læst at den var patenteret. Du skulle vel ikke have et link til kilde koden ???
Avatar billede arne_v Ekspert
07. maj 2003 - 15:53 #22
Bruce skriver selv i hans bog at den ikke er patenteret. Han må
være nærmest til at vide det.
Avatar billede arne_v Ekspert
07. maj 2003 - 15:54 #23
Avatar billede brhino Nybegynder
07. maj 2003 - 15:58 #24
Takker igen ... :-)
Avatar billede arne_v Ekspert
10. maj 2003 - 00:02 #25
myre>

Er du kommet videre ?
Avatar billede pissemyre Nybegynder
13. maj 2003 - 12:04 #26
Undskyld det to så lang tid... men fik lige lidt travlt >:)

brhino > det var bare til et HTX teknologi projekt. Jeg havde fra starten af kigge lidt på RSA algoritmen, men det fortrød jeg hurtigt. Både fordi den med public key systemet ikke passede til mit behov, men også fordi den ærlig talt ikke var helt nem. Princippet forstod jeg godt, men koden var lidt træls.
Så var det jo jeg faldt over Blowfish, som så lidt mere tilgængelig ud.
Men ja nu er jeg sådan se færdig...

Så jeg vil bare sige tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

Seneste spørgsmål Seneste aktivitet
55 min siden Excel Makroer programmering bit32 - bit64 Af bhh i Excel
I går 21:13 Samsung tv Af life53@live.dk i Andre styresystemer
I går 21:03 Mount kommando Af Uvanga i Windows
I går 20:40 Eliminer kendte Af andershl i Excel
I går 18:22 Repeater. Af Bit i Mobilnetværk