Voor de newbies.

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.
 
Deze had ik nog in het archief, komt ook van het net weet alleen niet meer wie de auteur is.

Wat zijn Bits & Bytes?

Als je weleens een computer hebt gebruikt, dan heb je waarschijnlijk wel van bits en bytes gehoord. Beide RAM en harde schijf capaciteit zijn verdeeld in bytes, file groottes zijn ook zo verdeeld wanneer je de grootte bekijkt. Je hebt ook vast weleens een reclame gezien in een krant of ander tijdschrift wat door de brievenbus komt waarin staat, "Deze comuter heeft een 32-bit Pentuim processor met 256 megabytes RAM en 40 gigabyess harde schijf." Hier ga ik alles uitleggen over die bits en bytes.

Decimale getallen.

Er is een makkelijke manier om bits te begrijpen is om ze te vergelijken met iets wat je wel begrijpt en dat is het tientalligstelsel. Het tientalligstelsel heeft tien verschillende getallen van 0 tot en met 9. Ze worden in een groep gezet om een groot getal te maken.Een manier is om 10^3 (10 tot de macht 3). Dus 100 wordt geschreven als 10^3. Hier een voorbeeld:

(6 * 10^3) + (3 * 10^2) + (5 * 10^1) + (7 * 10^0) = 6000 + 300 + 50 + 7 = 6357

Bits.

Computers werken met het binaire stelsel. De reden dat de computers met het binaire stelsel werkt is, omdat het makkelijker gaat met de huidige elektronica technology. Je kan computers gaan bouwen die met het decimaal stelsel werken, maar ze zouden op dit moment erg duur zijn. Aan de andere kant zijn computers die met het binaire getallenstelsel werken goedkoop.

Dus gebruiken computers binaire getallen in plaats van decimale getallen. Het woord bit is een verkorting van het engelse woorden "Binary digIT" . Decimale getallen kunnen 10 verschillende waarden hebben tussen de 0 en de 9. Bits hebben maar twee mogelijke waarden: 0 en 1. Daarom heeft een binair getal alleen enen en nullen, zoals deze: 1001. Hoe kom je er achter wat de waarde is van het getal 1001? je doet gewoon hetzelfde als met de decimale getallen zoals het met 6357 is gegaan, maar nu gebruik je in plaats van een 10 een 2:

(1 * 2^3) + (0 * 2^2) + (0 * 2^1) + (1 * 2^0) = 8 + 0 + 0 + 1 = 9

Van 0 tot 20 tellen in het binaire stelsel gaat zo:

0 = 0
1 = 1
2 = 10
3 = 11
4 = 100
5 = 101
6 = 110
7 = 111
8 = 1000
9 = 1001
10 = 1010
11 = 1011
12 = 1100
13 = 1101
14 = 1110
15 = 1111
16 = 10000
17 = 10001
18 = 10010
19 = 10011
20 = 10100


Het binaire en decimale stelsel zijn niet erg anders als je goed kijkt. Als een bit 1 is en je doet er een bit bij dan wordt de bit dat eerst 1 was 0. Net als bij het binaire stelsel als je 9 hebt dan moet er een bij en dat wordt een 1 en de eerste wordt een 0. Van 15 naar 16 zie je dat 15 is 1111 en 16 is 10000 al de vorige zijn 0 geworden.

Bytes.

Bits in een computer zitten zelden alleen in een computer. Ze zijn bijna altijd bijelkaar gebundeld in 8-bit (dus 8 bits bijelkaar), zo`n verzameling van 8 bits bijelkaar noem je bytes. Waarom zitten er 8 bits in een byte? Een gelijke vraag is, "Waarom zitten er 12 eieren in een dozijn?" De 8-bit byte is iets wat eigenlijk vanzelf zo is gekomen.

Met 8 bits in een byte heb je 256 verschillende waardes van 0 tot en met 255, zoals hier te zien is:

0 = 00000000
1 = 00000001
2 = 00000010
.....
254 = 11111110
255 = 11111111

Bytes worden gebruikt om individuele karakters in een tekstdocument op te slaan. Elke binaire waarde tusen de 0 en de 127 is een specifieke karakter. Over het algemeen worden ze alle 256 gebruikt, maar dat is niet altijd het geval. De waarden boven de 128 worden gebruikt voor speciale tekens van de taal als dat nodig is.

Je kan de 127 codes voor de standaard karakters hieronder zien. Computers gebruiken deze codes om tekst documenten op te slaan. Bijvoorbeeld, als je Kladblok gebruikt in Windows 98/ME (of welke andere Windows dan ook). En je maakt een tekst bestand aan met de woorden, "Four score and seven years ago," dan zal Kladblok 1 byte gebruiken van het geheugen voor elk karakter die je er staat (plus 1 byte voor elke spatie tussen de woorden, 32). Als Kladblok de zin opslaat in een bestand op je harde schijf, zal dit bestand ook 1 byte per karakter en per spatie bevatten.

Probeer dit experimentje uit: Open een nieuw bestand in Kladblok en typ de tekst, "Four score and seven years ago" er in. Sla dit bestand op onder de naam getty.txt. Gebruik dan de verkenner en kijk naar de grootte van het bestand. Je zult dan zien dat het 30 bytes groot is: 1 byte voor elk karakter.

Als je naar een bestand op de computer gaat kijken zoals de computer het ziet, dan zal je zien dat elke byte niet een letter is maar een nummer. Dus op de harde schrijf zal het er zo uitzien:

F o u r a n d s e v e n
70 111 117 114 32 97 110 100 32 115 101 118 101 110


Als je naar de code hieronder kijkt dan zie je dat elk letter overeenkomt met het getal wat erachter staat.

Standaard codes van de eerste 127 standaard karakters.

De eerste 32 waarden (0 tot en met 31) hebben niks te maken met het opslaan van tekstbestanden, maar hebben een andere aparte functie. De spatie is de 33ste waarde, gevolgd door interpunctie, getallen (van tientallig stelsel), letters (hoofdletters en kleine letters).

0 NUL
1 SOH
2 STX
3 ETX
4 EOT
5 ENQ
6 ACK
7 BEL
8 BS
9 TAB
10 LF
11 VT
12 FF
13 CR
14 SO
15 SI
16 DLE
17 DC1
18 DC2
19 DC3
20 DC4
21 NAK
22 SYN
23 ETB
24 CAN
25 EM
26 SUB
27 ESC
28 FS
29 GS
30 RS
31 US
32
33 !
34 "
35 #
36 $
37 %
38 &
39 '
40 (
41 )
42 *
43 +
44 ,
45 -
46 .
47 /
48 0
49 1
50 2
51 3
52 4
53 5
54 6
55 7
56 8
57 9
58 :
59 ;
60 <
61 =
62 >
63 ?
64 @
65 A
66 B
67 C
68 D
69 E
70 F
71 G
72 H
73 I
74 J
75 K
76 L
77 M
78 N
79 O
80 P
81 Q
82 R
83 S
84 T
85 U
86 V
87 W
88 X
89 Y
90 Z
91 [
92 \
93 ]
94 ^
95 _
96 `
97 a
98 b
99 c
100 d
101 e
102 f
103 g
104 h
105 i
106 j
107 k
108 l
109 m
110 n
111 o
112 p
113 q
114 r
115 s
116 t
117 u
118 v
119 w
120 x
121 y
122 z
123 {
124 |
125 }
126 ~
127 DEL


Heel veel bytes.

Als je gaat praten over heel veel bytes, kom je bij kilo, mega en giga, zoals kilobyte, megabyte en gigabyte/gigahertz (ook bekend als K, M en G, zoals Kbytes,Mbytes en Gbytes of KB, MB en GB). de volgende tabel laat ook een aantal hogere zien en wat de precise waarde ervan is:

Naam Afk. Grootte
Kilo K 2^10 = 1.024
Mega M 2^20 = 1.048.576
Giga G 2^30 = 1.073.741.824
Tera T 2^40 = 1.099.511.627.776
Peta P 2^50 = 1.125.899.906.842.624
Exa E 2^60 = 1.152.921.504.606.846.976
Zetta Z 2^70 = 1.180.591.620.717.411.303.424
Yotta Y 2^80 = 1.208.925.819.614.629.174.706.176


Je kan in de tabel zien dat kilo ongeveer duizend is, mega ongeveer een miljoen, giga ongeveer een miljard, en zo verder. Als iemand zegt, "deze computer heeft 40 gig harde schijf," dan bedoelt diegene dat zijn harde schijf 40 gigabytes of ongeveer 2 miljard bytes of precies 42.949.672.960 bytes. Er zijn nu al databases van 1 Terabyte en in het Pentagon in Amerika zijn waarschijnlijk al databases met een ruimte van een aantal Petabyte.

Binair rekenen.

Binair rekenene werkt precies hetzelfde als decimaal rekenen, behalve dan dat elke bit alleen 0 of 1 kan zijn. Om binair te kunnen rekenen moet je eerst weten hoe decimaal rekenen nu precies gaat. We willen 452 optrekken bij 751:

452
+ 751
-----
1203

Om deze nummers bijelkaar op te tellen beginnen we aan de rechterkant 2 + 1 = 3. Volgende, 5 + 5 = 10, dus heb je een nul en gaat de 1 naar de volgende plaats (naar links). Daarna, 4 + 7 + 1 = 12, dus heb je hier 2 en de 1 gaat weer naar de volgende plaats (weer naar links). Uiteindelijk, 0 + 0 + 1 = 1. Dus het antwoord is 1203.

Binair rekenen gaat precies hetzelfde:

010
+ 111
-----
1001

We beginnen aan de rechterkant, 0 + 1 = 1. De volgende, 1 + 1 = 10, dus blijft de 0 staan en gaat de 1 naar de volgende (wedereom naar links). Als derde 0 + 1 + 1 = 10, dus hetzelfde als de voorgaande 0 blijft staan 1 gaat door naar de volgende. De laatste, 0 + 0 + 1 = 1. Dus is het antwoord 1001.

De natuurkundige processen.

Een bit is eigenlijk stroompje dat door een draadje heenloopt. Je kan een 1 zien als wel een stroompje en 0 als geen stroompje, maar dat is een vereenvoudiging. Vooral in het gebied van internet worden er zoveel mogelijk enen en nullen verstuurd om zo meer snelheid te krijgen. Als je bits zo bekijkt als stroompjes in plaats van nullen en enen zou je ze onder hardware kunnen zetten, maar ik heb er voor gekozen om ze onder software te zetten, omdat ik hier vooral in ga op het rekenen.
 
Ehe.... tja maar ff opslaan en op een wat donkere eenzame avond beter bekijken.

Nu ff niet dus.

Gr. Lagos
 

Hosting Fun

Terug
Bovenaan Onderaan