T
twilight
Dit kwam ik net tegen en vond het wel leuk voor de newbies...
Bit, sleutel en wiskundige algoritme.
Wat betekenen deze termen nou eigenlijk binnen de encryptie? In het onderstaande voorbeeld worden deze termen verder uitgelegd.
Bits en bytes
Vaak wordt wel een gezegd "computers werken met eenen en nullen", ook wel digitale signalen genoemd, of bits. Een bit is dus een waarde van 1 of 0. Het standaard aantal karakters, gebruikt door de computer, is opgenomen in de ASCII (American Standard Code for Information Interchange) tabel en bestaat uit 256 karakters.
In bitvorm loopt dit van 00000000 t/m 11111111.
MSB............................ LSB => Most en Least significant bit.
128 64 32 16 8 4 2 1 => Waarde van de betreffende bit.
1 0 1 0 1 1 0 1 => 128+32+8+4+1 = 173
0 0 0 0 0 0 0 0 => =0
1 1 1 1 1 1 1 1 => 128+64+32+16+8+4+2+1 = 255
0 1 0 1 0 0 1 1 => 64+16+2+1 = 83
Op deze manier heeft ieder karakter een eigen bitreeks. De laatste reeks met de waarde 83 geeft volgens de ASCII tabel het karakter 'S'. Een byte is een samenvoeging van meerdere bits die samen een karakter vormen. 1 byte bestaat dus uit 8 bits.
De sleutel
Een verkoper zegt; "Dit encryptie programma gebruikt een sleutel van 128 bits". Nu bekend is wat een bit is, wordt ook duidelijk wat nu eigenlijk een '128 bit sleutel' is. 128 bits delen door 8 geeft 16 bytes. De sleutel wordt dus samengesteld uit 16 karakters met ieder een verschillende bitreeks. Door nu verschillende karakters achter elkaar te zetten is iedere bitreeks te maken. Echter zijn de eerste 32 karakters in de ASCII tabel niet afdrukbaar, en zijn dus niet bruikbaar om een sleutel te vormen. Zo blijven er nog 225 karakters over en geven bij een 128 bit sleutel 4,3exp37 mogelijkheden.
Wiskundige algoritme
De wiskundige algoritme is niks meer dan een vastgestelde berekening waarmee de originele code wordt versleuteld door middel van de sleutel. Stel we hebben het karakter 'g', met als decimale waarde 103 en een bitreeks van 01100111, dat versleuteld moet worden. We stellen nu vast, als wiskundige algoritme, dat iedere 1 in de bitreeks van de sleutel het bijbehorende bit van het originele karakter veranderd. De sleutel bestaat uit de karakters % (00100101) en k (01101011) Dus;
g = > 01100111 = origineel
% => 00100101 = eerste 8 bits van de sleutel
---------------
01000010 = tussen resultaat
k => 01101011 = volgende 8 bits van de sleutel
---------------
00101001 = resultaat => karakter ')'
In het versleutelde bestand zal het karakter 'g' omgezet zijn naar het karakter ')'. Door nu de wiskundige algoritme te gebruiken met de bijbehorende sleutel kan het originele karakter weer teruggevonden worden. Het mag dus duidelijk zijn dat je een bestand pas kan decrypten als je de beschikking hebt over de sleutel en de wiskundige algoritme. Anders is het eigenlijk onbegonnen werk. Dit voorbeeld gebruikt een zeer eenvoudige algoritme. De programma's die tegenwoordig in de handel te verkrijgen zijn maken gebruik van zeer complexe algoritme, maar de basis blijft hetzelfde.
Gr Fred.
Bit, sleutel en wiskundige algoritme.
Wat betekenen deze termen nou eigenlijk binnen de encryptie? In het onderstaande voorbeeld worden deze termen verder uitgelegd.
Bits en bytes
Vaak wordt wel een gezegd "computers werken met eenen en nullen", ook wel digitale signalen genoemd, of bits. Een bit is dus een waarde van 1 of 0. Het standaard aantal karakters, gebruikt door de computer, is opgenomen in de ASCII (American Standard Code for Information Interchange) tabel en bestaat uit 256 karakters.
In bitvorm loopt dit van 00000000 t/m 11111111.
MSB............................ LSB => Most en Least significant bit.
128 64 32 16 8 4 2 1 => Waarde van de betreffende bit.
1 0 1 0 1 1 0 1 => 128+32+8+4+1 = 173
0 0 0 0 0 0 0 0 => =0
1 1 1 1 1 1 1 1 => 128+64+32+16+8+4+2+1 = 255
0 1 0 1 0 0 1 1 => 64+16+2+1 = 83
Op deze manier heeft ieder karakter een eigen bitreeks. De laatste reeks met de waarde 83 geeft volgens de ASCII tabel het karakter 'S'. Een byte is een samenvoeging van meerdere bits die samen een karakter vormen. 1 byte bestaat dus uit 8 bits.
De sleutel
Een verkoper zegt; "Dit encryptie programma gebruikt een sleutel van 128 bits". Nu bekend is wat een bit is, wordt ook duidelijk wat nu eigenlijk een '128 bit sleutel' is. 128 bits delen door 8 geeft 16 bytes. De sleutel wordt dus samengesteld uit 16 karakters met ieder een verschillende bitreeks. Door nu verschillende karakters achter elkaar te zetten is iedere bitreeks te maken. Echter zijn de eerste 32 karakters in de ASCII tabel niet afdrukbaar, en zijn dus niet bruikbaar om een sleutel te vormen. Zo blijven er nog 225 karakters over en geven bij een 128 bit sleutel 4,3exp37 mogelijkheden.
Wiskundige algoritme
De wiskundige algoritme is niks meer dan een vastgestelde berekening waarmee de originele code wordt versleuteld door middel van de sleutel. Stel we hebben het karakter 'g', met als decimale waarde 103 en een bitreeks van 01100111, dat versleuteld moet worden. We stellen nu vast, als wiskundige algoritme, dat iedere 1 in de bitreeks van de sleutel het bijbehorende bit van het originele karakter veranderd. De sleutel bestaat uit de karakters % (00100101) en k (01101011) Dus;
g = > 01100111 = origineel
% => 00100101 = eerste 8 bits van de sleutel
---------------
01000010 = tussen resultaat
k => 01101011 = volgende 8 bits van de sleutel
---------------
00101001 = resultaat => karakter ')'
In het versleutelde bestand zal het karakter 'g' omgezet zijn naar het karakter ')'. Door nu de wiskundige algoritme te gebruiken met de bijbehorende sleutel kan het originele karakter weer teruggevonden worden. Het mag dus duidelijk zijn dat je een bestand pas kan decrypten als je de beschikking hebt over de sleutel en de wiskundige algoritme. Anders is het eigenlijk onbegonnen werk. Dit voorbeeld gebruikt een zeer eenvoudige algoritme. De programma's die tegenwoordig in de handel te verkrijgen zijn maken gebruik van zeer complexe algoritme, maar de basis blijft hetzelfde.
Gr Fred.