160
ĐỒ ÁN BẢO MẬT THÔNG TIN Ã DES NGÔ THỊ TUYẾT HÀ – T012825 Đề tài: “Tìm hi ểu hệ mã chuẩn cài đặt des và thám mã 3 vòng”

thám mã des

  • Upload
    tam

  • View
    21

  • Download
    2

Embed Size (px)

DESCRIPTION

thám mã des

Citation preview

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    ti:

    Tm hiu h m chun ci t des v

    thm m 3 vng

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    MC LC

    I .1 Gii thiu........................................................................................................ 4

    I.2 Cc H M Thng Dng: ................................................................................... 5

    e. Phng php Affine ............................................................................................ 7

    f. Phng php Vigenere ........................................................................................ 8

    I.2 LP M DES ................................................................................................. 22

    I. 3 THM M DES ............................................................................................ 27

    I.3.1. Thm m h DES - 3 vng ................................................................... 32

    II.3.2. Thm m h DES 6-vng........................................................................ 38

    II.3. 3 Cc thm m vi sai khc ........................................................................ 44

    III. CI T THM M DES 3 VNG ....................................................... 45

    III.1 Giao Din . .................................................................................................... 45

    III.2 X L .............................................................................................................

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    LI NI U

    Hin nay, nc ta ang trong giai on tin hnh cng nghip ha, hin i ha t nc.

    Tin hc c xem l mt trong nhng ngnh mi nhn. Tin hc v ang ng gp rt nhiu

    cho x hi trong mi kha cnh ca cuc sng.

    M ha thng tin l mt ngnh quan trng v c nhiu ng dng trong i sng x hi.

    Ngy nay, cc ng dng m ha v bo mt thng tin ang c s dng ngy cng ph bin

    hn trong cc lnh vc khc nhau trn Th gii, t cc lnh vc an ninh, qun s, quc

    phng, cho n cc lnh vc dn s nh thng mi in t, ngn hng

    ng dng m ha v bo mt thng tin trong cc h thng thng mi in t, giao dch

    chng khn, tr nn ph bin trn th gii v s ngy cng tr nn quen thuc vi ngi

    dn Vit Nam. Thng 7/2000, th trng chng khn ln u tin c hnh thnh ti Vit

    Nam; cc th tn dng bt u c s dng, cc ng dng h thng thng mi in t ang

    bc u c quan tm v xy dng. Do , nhu cu v cc ng dng m ha v bo mt

    thng tin tr nn rt cn thit.

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    I. MT S PHNG PHP M HA

    I .1 Gii thiu

    nh ngha 1.1: Mt h m mt (cryptosystem) l mt b-nm (P, C, K, E, D) tha mn

    cc iu kin sau:

    1. P l khng gian bn r. tp hp hu hn tt c cc mu tin ngun cn m ha c th c

    2. C l khng gian bn m. tp hp hu hn tt c cc mu tin c th c sau khi m ha

    3. K l khng gian kh. tp hp hu hn cc kha c th c s dng

    4. Vi mi kha kK, tn ti lut m ha ekE v lut gii m dkD tng ng. Lut m

    ha ek: P C v lut gii m ek: C P l hai nh x tha mn ,k kd e x x x P

    Tnh cht 4. l tnh cht chnh v quan trng ca mt h thng m ha. Tnh cht ny bo

    m vic m ha mt mu tin xP bng lut m ha ekE c th c gii m chnh xc

    bng lut dkD.

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    nh ngha 1.2: Zm c nh ngha l tp hp {0, 1, ..., m-1}, c trang b php cng (k

    hiu +) v php nhn (k hiu l ). Php cng v php nhn trong Zm c thc hin tng

    t nh trong Z, ngoi tr kt qu tnh theo modulo m

    V d: Gi s ta cn tnh gi tr 11 13 trong Z16. Trong Z, ta c kt qu ca php nhn

    1113=143. Do 14315 (mod 16) nn 1113=15 trong Z16.

    Mt s tnh cht ca Zm

    1. Php cng ng trong Zm, i.e., a, b Zm, a+b Zm

    2. Tnh giao hn ca php cng trong Zm, i.e., a, b Zm, a+b =b+a

    3. Tnh kt hp ca php cng trong Zm, i.e., a, b, c Zm, (a+b)+c =a+(b+c)

    4. Zm c phn t trung ha l 0, i.e., a Zm, a+0=0+a=a

    5. Mi phn t a trong Zm u c phn t i l m a

    6. Php nhn ng trong Zm, i.e., a, b Zm, ab Zm

    7. Tnh giao hn ca php cng trong Zm, i.e., a, b Zm, ab=ba

    8. Tnh kt hp ca php cng trong Zm, i.e., a, b, c Zm, (ab)c =a(bc)

    9. Zm c phn t n v l 1, i.e., a Zm, a1=1a=a

    10. Tnh phn phi ca php nhn i vi php cng, i.e., a, b, c Zm, (a+b)c

    =(ac)+(bc)

    11. Zm c cc tnh cht 1, 3 5 nn to thnh 1 nhm. Do Zm c tnh cht 2 nn to thnh

    nhm Abel. Zm c cc tnh cht (1) (10) nn to thnh 1 vnh

    I.2 Cc H M Thng Dng:

    a. H M y (Shift Cipher )

    Shift Cipher l mt trong nhng phng php lu i nht c s dng m

    ha. Thng ip c m ha bng cch dch chuyn (xoay vng) tng k t i k v tr trong

    bng ch ci.

    Phng php Shift Cipher

    Cho P = C = K = Z26. Vi 0 K 25, ta nh ngha

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    eK = x + K mod 26

    v

    dK = y - K mod 26

    (x,y Z26)

    trong 26 l s k t trong bng ch ci La tinh, mt cch tng t cng c th

    nh ngha cho mt bng ch ci bt k. ng thi ta d dng thy rng m y l mt h mt

    m v dK(eK(x)) = x vi mi xZ26.

    b. H KEYWORD-CEASAR

    Trong h m ny kha l mt t no c chn trc, v d PLAIN. T ny xc

    nh dy s nguyn trong Z26 (15,11,0,8,13) tng ng vi v tr cc ch ci ca cc ch

    c chn trong bng ch ci. By gi bn r s c m ha bng cch dng cc hm lp

    m theo th t:

    e15, e11, e0, e8, e13, e15, e11, e0, e8, e,...

    vi eK l hm lp m trong h m chuyn.

    c. H M Vung (SQUARE)

    Trong h ny cc t kha c dng theo mt cch khc hn. Ta dng bng ch ci

    ting Anh (c th b i ch Q, nu mun tng s cc ch s l mt s chnh phng) v i

    hi mi ch trong t kha phi khc nhau. By gi mi ch ca bng ch ci c vit

    di dng mt hnh vung, bt u bng t kha v tip theo l nhng ch ci cn li theo

    th t ca bng ch.

    d. M th v

    Mt h m khc kh ni ting . H m ny c s dng hng trm nm nay.

    Phng php :

    Cho P = C = Z26. K gm tt c cc hn v c th c ca 26 k hiu 0,...,25.

    Vi mi hn v K, ta nh ngha:

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    e(x) = (x)

    v nh ngha d(y) = -1(y)

    vi -1 l hn v ngc ca hn v .

    Trong m th v ta c th ly P v C l cc bng ch ci La tinh. Ta s dng Z26 trong

    m y v lp m v gii m u l cc php tn i s.

    e. Phng php Affine

    Cho P = C = Z26 v cho

    K = {(a,b) Z26 Z26 : gcd(a,26) = 1}

    Vi K = (a,b) K, ta xc nh

    eK(x) = ax+b mod 26

    v

    dK = a-1(y-b) mod 26

    (x,y Z26)

    Phng php Affine li l mt trng hp c bit khc ca Substitution Cipher.

    c th gii m chnh xc thng tin c m ha bng hm ek E th ek phi l mt

    song nh. Nh vy, vi mi gi tr yZ26, phng trnh ax+by (mod 26) phi c nghim

    duy nht xZ26.

    Phng trnh ax+by (mod 26) tng ng vi ax(yb ) (mod 26). Vy, ta ch cn kho

    st phng trnh ax(yb ) (mod 26)

    nh l1.1: Phng trnh ax+by (mod 26) c nghim duy nht xZ26 vi mi gi tr bZ26 khi

    v ch khi a v 26 nguyn t cng nhau.

    Vy, iu kin a v 26 nguyn t cng nhau bo m thng tin c m ha bng hm ek c

    th c gii m v gii m mt cch chnh xc.

    Gi (26) l s lng phn t thuc Z26 v nguyn t cng nhau vi 26.

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    nh l 1.2: Nu

    m

    i

    ei

    ipn1

    vi pi l cc s nguyn t khc nhau v ei Z+, 1 i m th

    m

    i

    ei

    ei

    ii ppn1

    1

    Trong phng php m ha Affine , ta c 26 kh nng chn gi tr b, (26) kh nng chn gi

    tr a. Vy, khng gian kha K c tt c n(26) phn t.

    Vn t ra cho phng php m ha Affine Cipher l c th gii m c thng tin

    c m ha cn phi tnh gi tr phn t nghch o a1 Z26.

    f. Phng php Vigenere

    phng php m ha Vigenere s dng mt t kha (keyword) c di m. C th xem

    nh phng php m ha Vigenere Cipher bao gm m php m ha Shift Cipher c p dng

    lun phin nhau theo chu k.

    Khng gian kha K ca phng php Vigenere c s phn t l 26, ln hn hn phng

    php s lng phn t ca khng gian kha K trong phng php Shift Cipher. Do , vic tm

    ra m kha k gii m thng ip c m ha s kh khn hn i vi phng php Shift

    Cipher.

    Phng php m ha Vigenere Cipher

    Chn s nguyn dng m. nh ngha P = C = K = (Z26)m

    K = { (k0, k1, ..., kr-1) (Z26)r}

    Vi mi kha k = (k0, k1, ..., kr-1) K, nh ngha:

    ek(x1, x2, ..., xm) = ((x1+k1) mod 26, (x2+k2) mod n, ..., (xm+km) mod 26)

    dk(y1, y2, ..., ym) = ((y1k1) mod n, (y2k2) mod n, ..., (ymkm) mod 26)

    vi x, y (Z26)m

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    g. H m Hill

    Phng php Hill Cipher c Lester S. Hill cng b nm 1929: Cho s nguyn dng m,

    nh ngha P = C = (Z26)m. Mi phn t xP l mt b m thnh phn, mi thnh phn thuc Z26.

    tng chnh ca phng php ny l s dng m t hp tuyn tnh ca m thnh phn trong

    mi phn t xP pht sinh ra m thnh phn to thnh phn t yC.

    Phng php m ha Hill Cipher

    Chn s nguyn dng m. nh ngha:

    P = C = (Z26)m v K l tp hp cc ma trn mm kh nghch

    Vi mi kha K

    kkk

    kkkkk

    k

    mmmm

    m

    m

    ,2,1,

    ,21,2

    ,12,11,1

    , nh ngha:

    mmmm

    m

    m

    mk

    kkk

    kkkkk

    xxxxkxe

    ,2,1,

    ,21,2

    ,12,11,1

    21 ,...,,

    vi x=(x1, x2, ..., xm) P

    v dk(y) = yk1 vi y C

    Mi php tn s hc u c thc hin trn Zn

    h. M hn v

    Nhng phng php m ha nu trn u da trn tng chung: thay th mi k t trong

    thng ip ngun bng mt k t khc to thnh thng ip c m ha. tng chnh

    ca phng php m hn v l vn gi nguyn cc k t trong thng ip ngun m ch thay

    i v tr cc k t; ni cch khc thng ip ngun c m ha bng cch sp xp li cc k

    t trong .

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    Phng php m ha m hn v

    Chn s nguyn dng m. nh ngha:

    P = C = (Z26)m v K l tp hp cc hn v ca m phn t {1, 2, ..., m}

    Vi mi kha K, nh ngha:

    mm xxxxxxe ,...,,...,, 2121 v

    mm yyyyyyd 111 ,...,,...,, 2121

    vi 1 hn v ngc ca

    Phng php m hn v chnh l mt trng hp c bit ca phng php Hill. Vi mi

    hn v ca tp hp {1, 2, ..., m} , ta xc nh ma trn k = (ki, j ) theo cng thc sau:

    lai ngc hptrng trong

    neu,0,1

    ,ji

    k ji

    Ma trn k l ma trn m mi dng v mi ct c ng mt phn t mang gi tr 1, cc phn

    t cn li trong ma trn u bng 0. Ma trn ny c th thu c bng cch hn v cc hng hay

    cc ct ca ma trn n v Im nn k l ma trn kh nghch. R rng, m ha bng phng php

    Hill vi ma trn k hn tn tng ng vi m ha bng phng php m hn v vi hn v .

    d. M vng

    Trong cc h trc u cng mt cch thc l cc phn t k tip nhau ca bn r u

    c m ha vi cng mt kha K. Nh vy xu m y s c dng sau:

    y = y1y2... = eK(x1) eK(x2)...

    Cc h m loi ny thng c gi l m khi (block cipher).

    Cn i vi cc h m dng. tng y l sinh ra mt chui kha z = z1z2..., v s

    dng n m ha xu bn r x = x1x2...theo qui tc sau:

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    )...()(... 2121 21 xexeyyy zz

    I.3 Quy trnh thm m:

    C mi phng php m h ta li c mt phng php thm m tng ng nhng

    nguyn tc chung vic thm m c thnh cng th yu cu ngi thm m phi

    bit h m no c dng h. Ngi ra ta cn phi bit c bn m v bn r ng.

    nhn chung cc h m i xng l d ci t vi tc thc thi nhanh.

    Tnh an tn ca n ph thuc vo cc yu t :

    Khng gian kh phi ln

    vi cc php trn thch hp cc h m i xng c th to ra c mt h m

    mi c tnh an tn cao.

    bo mt cho vic truyn kha cng cn c x l mt cch nghim tc.

    V mt h m h d liu ra i (DES). DES c xem nh l chun m ha d liu

    cho cc ng dng t ngy 15 thng 1 nm 1977 do y ban Quc gia v Tiu chun ca M

    xc nhn v c 5 nm mt ln li c chnh sa, b sung.

    DES l mt h m c trn bi cc php th v hn v. vi php trn thch hp th

    vic gii m n li l mt bi tn kh kh. ng thi vic ci t h m ny cho nhng ng

    dng thc t li kh thun li. Chnh nhng l do n c ng dng rng ri ca DES

    trong sut hn 20 nm qua, khng nhng ti M m cn l hu nh trn khp th gii. Mc

    d theo cng b mi nht (nm 1998) th mi h DES, vi nhng kh nng ca my tnh hin

    nay, u c th b kha trong hn 2 gi. Tuy nhin DES cho n nay vn l mt m hnh

    chun cho nhng ng dng bo mt trong thc t.

    II. H M CHUN DES (Data Encryption Standard)

    II.1 c t DES

    Phng php DES m ha t x c 64 bit vi kha k c 56 bit thnh mt t c y 64 bit.

    Thut tn m ha bao gm 3 giai on:

    1. Vi t cn m ha x c di 64 bit, to ra t x0 (cng c di 64 bit) bng cch hn

    v cc bit trong t x theo mt hn v cho trc IP (Initial Permutation). Biu din x0 = IP(x)

    = L0R0, L0 gm 32 bit bn tri ca x0, R0 gm 32 bit bn phi ca x0

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    L0 R0

    x0

    Hnh.1 Biu din dy 64 bit x thnh 2 thnh phn L v R

    2. Xc nh cc cp t 32 bit Li, Ri vi 1 i 16theo quy tc sau:

    Li = Ri-1

    Ri = Li-1 f (Ri-1, Ki)

    vi biu din php tn XOR trn hai dy bit, K1, K2, ..., K16 l cc dy 48 bit pht sinh

    t kha K cho trc (Trn thc t, mi kha Ki c pht sinh bng cch hn v cc bit

    trong kha K cho trc).

    L i-1 Ri-1

    f Ki

    L i Ri

    Hnh.2 Quy trnh pht sinh dy 64 bit LiRi t dy 64 bit Li-1Ri-1v kha Ki

    3. p dng hn v ngc IP-1 i vi dy bit R16L16, thu c t y gm 64 bit. Nh vy, y

    = IP-1 (R16L16)

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    Hm f c s dng bc 2 l

    A

    B1 B2 B3 B4 B5 B6 B7 B8

    J

    E(A)

    E

    +

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    Hm f c gm 2 tham s: Tham s th nht A l mt dy 32 bit, tham s th hai J l mt

    dy 48 bit. Kt qu ca hm f l mt dy 32 bit. Cc bc x l ca hm f(A, J)nh sau:

    Tham s th nht A (32 bit) c m rng thnh dy 48 bit bng hm m rng E. Kt qu

    ca hm E(A) l mt dy 48 bit c pht sinh t A bng cch hn v theo mt th t

    nht nh 32 bit ca A, trong c 16 bit ca A c lp li 2 ln trong E(A).

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    Thc hin php tn XOR cho 2 dy 48 bit E(A) v J, ta thu c mt dy 48 bit B. Biu

    din B thnh tng nhm 6 bit nh sau:B = B1B2B3B4B5B6B7B8

    S dng 8 ma trn S1, S2,..., S8, mi ma trn Si c kch thc 416 v mi dng ca ma trn

    nhn 16 gi tr t 0 n 15. Xt dy gm 6 bit Bj = b1b2b3b4b5b6, Sj(Bj)

    c xc nh bng gi tr ca phn t ti dng r ct c ca Sj, trong , ch s dng r c

    biu din nh phn l b1b6, ch s ct c c biu din nh phn l b2b3b4b5. Bng cch

    ny, ta xc nh c cc dy 4 bit Cj = Sj(Bj), 1 j 8.

    Tp hp cc dy 4 bit Cj li. ta c c dy 32 bit C = C1C2C3C4C5C6C7C8. Dy 32 bit thu

    c bng cch hn v C theo mt quy lut P nht nh chnh l kt qu ca hm F(A,

    J)

    cc hm c s dng trong DES.

    Hn v khi to IP s nh sau:

    IP

    58 50 42 34 26 18 10 2

    60 52 44 36 28 20 12 4

    62 54 46 38 30 22 14 6

    64 56 48 40 32 24 16 8

    57 49 41 33 25 17 9 1

    59 51 43 35 27 19 11 3

    61 53 45 37 29 21 13 5

    63 55 47 39 31 23 15 7

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    iu ny c ngha l bit th 58 ca x l bit u tin ca IP(x); bit th 50 ca x l bit

    th hai ca IP(x) v.v.

    Hn v ngc IP-1 s l:

    IP-1

    40

    39

    38

    37

    36

    35

    34

    33

    8

    7

    6

    5

    4

    3

    2

    1

    48

    47

    46

    45

    44

    43

    42

    41

    16

    15

    14

    13

    12

    11

    10

    9

    56

    55

    54

    53

    52

    51

    50

    49

    24

    23

    22

    21

    20

    19

    18

    17

    64

    63

    62

    61

    60

    59

    58

    57

    32

    31

    30

    29

    28

    27

    26

    25

    Hm m rng E c c t theo bng sau:

    E bng chn bit

    32

    4

    8

    12

    1

    5

    9

    13

    2

    6

    10

    14

    3

    7

    11

    15

    4

    8

    12

    16

    5

    9

    13

    17

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    16

    20

    24

    28

    17

    21

    25

    29

    18

    22

    26

    30

    19

    23

    27

    31

    20

    24

    28

    32

    21

    25

    29

    1

    Tm S-hp v hn v P s c biu din nh sau:

    S1

    14

    0

    4

    15

    4

    15

    1

    12

    13

    7

    14

    8

    1

    4

    8

    2

    2

    14

    13

    4

    15

    2

    6

    9

    11

    13

    2

    1

    8

    1

    11

    7

    3

    10

    15

    5

    10

    6

    12

    11

    6

    12

    9

    3

    12

    11

    7

    14

    5

    9

    3

    10

    9

    5

    10

    0

    0

    3

    5

    6

    7

    8

    0

    13

    S2

    15

    3

    0

    13

    1

    13

    14

    8

    8

    4

    7

    10

    14

    7

    11

    1

    6

    15

    10

    3

    11

    2

    4

    15

    3

    8

    13

    4

    4

    14

    1

    2

    9

    12

    5

    11

    7

    0

    8

    6

    2

    1

    12

    7

    13

    10

    6

    12

    12

    6

    9

    0

    0

    9

    3

    5

    5

    11

    2

    14

    10

    5

    15

    9

    S3

    10

    13

    0

    7

    9

    0

    14

    9

    6

    3

    3

    4

    15

    6

    5

    10

    1

    2

    13

    8

    12

    5

    7

    14

    11

    12

    4

    11

    2

    15

    8

    1

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    13

    1

    6

    10

    4

    13

    9

    0

    8

    6

    15

    9

    3

    8

    0

    7

    11

    4

    1

    15

    2

    14

    12

    3

    5

    11

    10

    5

    14

    2

    7

    12

    S4

    7

    13

    10

    3

    13

    8

    6

    15

    14

    11

    9

    0

    3

    5

    0

    6

    0

    6

    12

    10

    6

    15

    11

    1

    9

    0

    7

    13

    10

    3

    13

    8

    1

    4

    15

    9

    2

    7

    1

    4

    8

    2

    3

    5

    5

    12

    14

    11

    11

    1

    5

    12

    12

    10

    2

    7

    4

    14

    8

    2

    15

    9

    4

    14

    S5

    2

    14

    4

    11

    12

    11

    2

    8

    4

    2

    1

    12

    1

    12

    11

    7

    7

    4

    10

    0

    10

    7

    13

    14

    11

    13

    7

    2

    6

    1

    8

    13

    8

    5

    15

    6

    5

    0

    9

    15

    3

    15

    12

    0

    15

    10

    5

    9

    13

    3

    6

    10

    0

    9

    3

    4

    14

    8

    0

    5

    9

    6

    14

    3

    S6

    12

    10

    9

    4

    1

    15

    14

    3

    10

    4

    15

    2

    15

    2

    5

    12

    9

    7

    2

    9

    2

    12

    8

    5

    6

    9

    12

    15

    8

    5

    3

    10

    0

    6

    7

    11

    13

    1

    0

    14

    3

    13

    4

    1

    4

    14

    10

    7

    14

    0

    1

    6

    7

    11

    13

    0

    5

    3

    11

    8

    11

    8

    6

    13

    S7

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    4

    13

    1

    6

    11

    0

    4

    11

    2

    11

    11

    13

    14

    7

    13

    8

    15

    4

    12

    1

    0

    9

    3

    4

    8

    1

    7

    10

    13

    10

    14

    7

    3

    14

    10

    9

    12

    3

    15

    5

    9

    5

    6

    0

    7

    12

    8

    15

    5

    2

    0

    14

    10

    15

    5

    2

    6

    8

    9

    3

    1

    6

    2

    12

    S8

    13

    1

    7

    2

    2

    15

    11

    1

    8

    13

    4

    14

    4

    8

    1

    7

    6

    10

    9

    4

    15

    3

    12

    10

    11

    7

    14

    8

    1

    4

    2

    13

    10

    12

    0

    15

    9

    5

    6

    12

    3

    6

    10

    9

    14

    11

    13

    0

    5

    0

    15

    3

    0

    14

    3

    5

    12

    9

    5

    6

    7

    2

    8

    11

    P

    16

    29

    1

    5

    2

    32

    19

    22

    7

    12

    15

    18

    8

    27

    13

    11

    20

    28

    23

    31

    24

    3

    30

    4

    21

    17

    26

    10

    14

    9

    6

    25

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    K l xu c di 64 bit, trong c 56 bit dng lm kha v 8 bit dng kim tra

    s bng nhau ( pht hin li). Cc bit cc v tr 8, 16, ..., 64 c xc nh, sao cho mi

    byte cha s l cc s 1. V vy, tng li c th c pht hin trong mi 8 bit. Cc bit kim

    tra s bng nhau l c b qua khi tnh lch kha.

    1. Cho kha 64 bit K, loi b cc bit kim tra v hn v cc bit cn li ca K tng

    ng vi hn v (c nh) PC-1. Ta vit PC-1(K) = C0D0, vi C0 bao gm 28 bit u tin ca

    PC-1(K) v D0 l 28 bit cn li.

    2. Vi i nm trong khong t 1 n 16, ta tnh

    Ci = LSi(Ci-1)

    Di = LSi(Di-1)

    v Ki = PC-2(CiDi), LSi biu din php chuyn chu trnh (cyclic shift) sang tri hoc ca mt

    hoc ca hai v tr ty thuc vo tr ca i; y mt v tr nu i = 1, 2, 9 hoc 16 v y 2 v tr

    trong nhng trng hp cn li. PC-2 l mt hn v c nh khc.

    Vic tnh lch kha c minh ha nh hnh v sau:

    K

    PC-1

    C0 D0

    C1 D1 PC-2 K1

    LS1LS1

    LS2 LS2

    ...

    LS16 LS16

    C16 D16 PC-2 K16

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    Cc hn v PC-1 v PC-2 c s dng trong vic tnh lch kha l nh sau:

    PC-1

    57

    1

    10

    19

    63

    7

    14

    21

    49

    58

    2

    11

    55

    62

    6

    13

    41

    50

    59

    34

    7

    54

    61

    5

    33

    42

    51

    60

    39

    46

    53

    28

    25

    34

    43

    52

    31

    38

    45

    20

    17

    26

    35

    44

    23

    30

    37

    12

    9

    18

    27

    36

    15

    22

    29

    4

    PC-2

    14

    3

    23

    17

    28

    19

    11

    15

    12

    24

    6

    4

    1

    21

    26

    5

    10

    8

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    16

    41

    30

    44

    46

    7

    50

    40

    49

    42

    27

    31

    51

    39

    50

    20

    37

    45

    56

    36

    13

    47

    33

    34

    29

    2

    55

    48

    53

    32

    By gi ta s hin th kt qu vic tnh lch kha. Nh nhn xt trn, mi vng s

    dng kha 48 bit tng ng vi 48 bit trong K. Cc thnh phn trong cc bng sau s ch ra

    cc bit trong K c s dng trong cc vng khc nhau.

    I.2 LP M DES

    y l v d v vic lp m s dng DES. Gi s ta m ha bn r sau trong dng thp

    lc phn (Hexadecimal)

    0123456789ABCDEF

    s dng kha thp lc phn

    133457799BBCDFF1

    Kha trong dng nh phn khng c cc bit kim tra s l:

    00010010011010010101101111001001101101111011011111111000.

    Ap dng IP, ta nhn c L0 v R0 (trong dng nh phn) :

    L0

    L1 = R0

    =

    =

    11001100000000001100110011111111

    11110000101010101111000010101010

    16 vng lp m c th hin nh sau:

    E(R0)

    K1

    =

    =

    011110100001010101010101011110100001010101010101

    000110110000001011101111111111000111000001110010

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    E(R0) K1

    Output S-hp

    f(R0,K1)

    L2 = R1

    =

    =

    =

    =

    011000010001011110111010100001100110010100100111

    01011100100000101011010110010111

    00100011010010101010100110111011

    11101111010010100110010101000100

    E(R1)

    K2

    E(R1) K2

    Output S-hp

    f(R1, K2)

    L3 = R2

    =

    =

    =

    =

    =

    =

    011101011110101001010100001100001010101000001001

    011110011010111011011001110110111100100111100101

    000011000100010010001101111010110110001111101100

    11111000110100000011101010101110

    00111100101010111000011110100011

    11001100000000010111011100001001

    E(R2)

    K3

    E(R2) K3

    S-box output

    f(R2, K3)

    L4 = R3

    =

    =

    =

    =

    =

    =

    111001011000000000000010101110101110100001010011

    010101011111110010001010010000101100111110011001

    101100000111110010001000111110000010011111001010

    00100111000100001110000101101111

    01001101000101100110111010110000

    10100010010111000000101111110100

    E(R3)

    K4

    E(R3) K4

    S-box output

    f(R3, K4)

    =

    =

    =

    =

    =

    010100000100001011111000000001010111111110101001

    011100101010110111010110110110110011010100011101

    001000101110111100101110110111100100101010110100

    00100001111011011001111100111010

    10111011001000110111011101001100

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    L5 = R4 = 011101110

    E(R4)

    K5

    E(R4) K5

    Xut S-hp

    f(R4, K5)

    L6 = R5

    =

    =

    =

    =

    =

    =

    101110101110100100000100000000000000001000001010

    011111001110110000000111111010110101001110101000

    110001100000010100000011111010110101000110100010

    01010000110010000011000111101011

    00101000000100111010110111000011

    10001010010011111010011000110111

    E(R5)

    K6

    E(R5) K6

    S-box output

    f(R5, K6)

    L7 = R6

    =

    =

    =

    =

    =

    =

    110001010100001001011111110100001100000110101111

    011000111010010100111110010100000111101100101111

    101001101110011101100001100000001011101010000000

    01000001111100110100110000111101

    10011110010001011100110100101100

    11101001011001111100110101101001

    E(R6)

    K7

    E(R6) K7

    S-box output

    f(R6, K7)

    L8 = R7

    =

    =

    =

    =

    =

    =

    111101010010101100001111111001011010101101010011

    111011001000010010110111111101100001100010111100

    000110011010111110111000000100111011001111101111

    00010000011101010100000010101101

    10001100000001010001110000100111

    00000110010010101011101000010000

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    E(R7)

    K8

    E(R7) K8

    S-box output

    f(R7, K8)

    L9 = R8

    =

    =

    =

    =

    =

    =

    000000001100001001010101010111110100000010100000

    111101111000101000111010110000010011101111111011

    111101110100100001101111100111100111101101011011

    01101100000110000111110010101110

    00111100000011101000011011111001

    11010101011010010100101110010000

    E(R8)

    K9

    E(R8) K9

    S-box output

    f(R8, K9)

    L10 = R9

    =

    =

    =

    =

    =

    =

    011010101010101101010010101001010111110010100001

    111000001101101111101011111011011110011110000001

    100010100111000010111001010010001001101100100000

    00010001000011000101011101110111

    00100010001101100111110001101010

    00100100011111001100011001111010

    E(R9)

    K10

    E(R9) K10

    S-box output

    f(R9, K10)

    L11 = R10

    =

    =

    =

    =

    =

    =

    000100001000001111111001011000001100001111110100

    101100011111001101000111101110100100011001001111

    101000010111000010111110110110101000010110111011

    11011010000001000101001001110101

    01100010101111001001110000100010

    10110111110101011101011110110010

    E(R10)

    K11

    E(R10) K11

    S-box output

    =

    =

    =

    =

    010110101111111010101011111010101111110110100101

    001000010101111111010011110111101101001110000110

    011110111010000101111000001101000010111000100011

    01110011000001011101000100000001

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    f(R10, K11)

    L12 = R11

    =

    =

    11100001000001001111101000000010

    11000101011110000011110001111000

    E(R11)

    K12

    E(R11) K12

    S-box output

    f(R11, K12)

    L13 = R12

    011000001010101111110000000111111000001111110001

    011101010111000111110101100101000110011111101001

    000101011101101000000101100010111110010000011000

    01111011100010110010011000110101

    11000010011010001100111111101010

    01110101101111010001100001011000

    E(R12)

    K13

    E(R12) K13

    S-box output

    f(R12, K13)

    L14 = R13

    =

    =

    =

    =

    =

    =

    001110101011110111111010100011110000001011110000

    100101111100010111010001111110101011101001000001

    101011010111100000101011011101011011100010110001

    10011010110100011000101101001111

    11011101101110110010100100100010

    00011000110000110001010101011010

    E(R13)

    K14

    E(R13) K14

    S-box output

    f(R13, K14)

    L15 = R14

    =

    =

    =

    =

    =

    =

    000011110001011000000110100010101010101011110100

    010111110100001110110111111100101110011100111010

    010100000101010110110001011110000100110111001110

    01100100011110011001101011110001

    10110111001100011000111001010101

    11000010100011001001011000001101

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    E(R14)

    K15

    E(R14) K15

    S-box output

    f(R14, K15)

    L16 = R15

    =

    =

    =

    =

    =

    =

    111000000101010001011001010010101100000001011011

    101111111001000110001101001111010011111100001010

    010111111100010111010100011101111111111101010001

    10110010111010001000110100111100

    01011011100000010010011101101110

    01000011010000100011001000110100

    E(R15)

    K16

    E(R15) K16

    S-box output

    f(R15, K16)

    R16

    =

    =

    =

    =

    =

    =

    001000000110101000000100000110100100000110101000

    110010110011110110001011000011100001011111110101

    111010110101011110001111000101000101011001011101

    10100111100000110010010000101001

    11001000110000000100111110011000

    00001010010011001101100110010101

    Cui cng, p dng IP-1 cho R16L16 ta nhn c bn m trong dng thp lc phn

    nh sau:

    85E813540F0AB405

    I. 3 THM M DES

    Mt phng php rt ni ting trong thm m DES l thm m vi sai (differential

    cryptanalysic) do Biham v Shamir xut. l phng php thm vi bn r c chn.

    N khng c s dng trong thc t thm m DES 16 vng, m ch c s dng

    thm cc h DES c t vng hn.

    By gi ta s m t nhng tng c bn ca k thut ny. t mc ch thm

    m, ta c th b qua hn v khi to IP v hn v o ca n (bi v iu khng cn thit

    cho vic thm m). Nh nhn xt trn, ta xt cc h DES n vng, vi n 16. Trong ci

    t ta c th coi L0R0 l bn r v LnRn nh l bn m.

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    Thm m vi sai i hi phi so snh x-or (exclusive-or) ca hai bn r vi x-or ca

    hai bn m tng ng. Ni chung, ta s quan st hai bn r L0R0 v L0*R0* vi tr x-or c

    c t L0R0 = L0R0 L0*R0*. Trong nhng tho lun sau ta s s dng k hiu () ch x-

    or ca hai xu bit.

    nh ngha 3.1: Cho Sj l mt S-hp (1 j 8). Xt mt cp xu 6-bit l (Bj,Bj* ). Ta

    ni rng, xu nhp x-or (ca Sj) l Bj Bj* v xu xut x-or (ca Sj) l Sj(Bj) Sj(Bj*).

    Ch l xu nhp x-or l xu bit c di 6, cn xu xut x-or c di 4.

    nh ngha 3.2: Vi bt k Bj (Z2) 6, ta nh ngha tp (Bj) gm cc cp (Bj,Bj*)

    c x-or nhp l Bj.

    D dng thy rng, bt k tp (Bj) no cng c 26 = 64 cp, v do

    (Bj) = {(Bj, Bj Bj) : Bj (Z2) 6 }

    Vi mi cp trong (Bj), ta c th tnh xu x-or xut ca Sj v lp c phn b kt

    qu. C 64 xu xut x-or, c phn b trong 24 = 16 gi tr c th c. Tnh khng ng u

    ca cc phn b l c s m thm.

    V d 3.1: Gi s ta xt S1 l S-hp u tin v xu nhp x-or l 110100. Khi

    (110100) = {(000000, 110100), (000001, 110101), ..., (111111, 001011)}

    Vi mi cp trong tp (110100), ta tnh xu xut x-or ca S1. Chng hn,

    S1(000000) = E16 = 1110, S1(110100) = 1001,

    nh vy xu xut x-or cho cp (000000,110100) l 0111.

    Nu thc hin iu cho 64 cp trong (110100) th ta nhn c phn b ca cc

    xu x-or xut sau:

    0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

    0 8 16 6 2 0 0 12 6 0 0 0 0 8 0 6

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    Trong v d 3.1, ch c 8 trong s 16 xu x-or xut c th c xut hin tht s. V d

    c th ny ch ra s phn b rt khng u ca cc xu x-or xut. Ni chung, nu ta c

    nh S-hp Sj v xu nhp x-or Bj, th trung bnh c khong 75 - 80% cc xu x-or xut c

    th c xut hin thc s.

    m t cc phn b ta a ra nh ngha sau.

    nh ngha 3.3: Vi 1 j 8 v vi cc xu bit Bj di 6 v Cj di 4, ta nh

    ngha:

    INj(Bj,Cj) = {Bj (Z2)6 : Sj(Bj) Sj(Bj Bj) = Cj}

    v

    Nj(Bj, Cj) = INj(Bj, Cj)

    Bng sau s cho cc xu nhp c th c vi xu x-or nhp 110100

    Xu xut x-or Cc xu nhp c th c

    0000

    0001 000011, 001111, 011110, 011111

    101010, 101011, 110111, 111011

    0010

    000100, 000101, 001110, 010001

    010010, 010100, 011010, 011011

    100000, 100101, 010110, 101110

    101111, 110000, 110001, 111010

    0011 000001, 000010, 010101, 100001

    110101, 110110

    0100 010011, 100111

    0101

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    0110

    0111

    000000, 001000, 001101, 010111

    011000, 011101, 100011, 101001

    101100, 110100, 111001, 111100

    1000 001001, 001100, 011001, 101101

    111000, 111101

    1001

    1010

    1011

    1100

    1101 000110, 010000, 010110, 011100

    110010, 100100, 101000, 110010

    1110

    1111 000111, 001010, 001011, 110011

    111110, 111111

    Nj(Bj, Cj) tnh s cc cp vi xu nhp x-or bng Bj c xu xut x-or bng Cj vi

    S-hp Sj. Cc cp c cc xu nhp x-or c c t v a ra cch tnh cc xu xut x-or

    c th nhn c t tp INj(Bj, Cj). rng, tp ny c th phn thnh Nj(Bj, Cj) /2 cp,

    mi cp c xu x-or nhp bng Bj.

    Phn b trong v d 3.1 cha cc tr N1(110100, C1), C1 (Z2)4. Trong bng trn

    cha cc tp IN(110100, C1).

    Vi mi tm S-hp, c 64 xu nhp x-or c th c. Nh vy, c 512 phn b c th

    tnh c. Nhc li l, xu nhp cho S-hp vng th i l B= E J, vi E = E(Ri-1) l m

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    rng ca Ri-1 v J = Ki gm cc bit kha ca vng i. By gi xu nhp x-or (cho tt c tm S-

    hp) c th tnh c nh sau:

    B B* = (E J) (E* J) = E E*

    iu ny rt quan trng thy rng, xu nhp x-or khng ph thuc vo cc bit kha

    J. (Do , xu xut x-or cng khng ph thuc vo cc bit kha.)

    Ta s vit mi B, E v J nh l ni ca tm xu 6-bit:

    B = B1B2B3B4B5B6B7B8

    E = E1E2E3E4E5E6E7E8

    J = J1J2J3J4J5J6J7J8

    v ta cng s vit B* v E* nh vy. By gi gi s l ta bit cc tr Ej v Ej* vi mt j no

    , 1 j 8, v tr ca xu xut x-or cho Sj, Cj = Sj(Bj) Sj(Bj* ). Khi s l:

    Ej Jj INj(Ej, Cj),

    vi Ej = Ej Ej*.

    nh ngha 3.4: Gi s Ej v Ej* l cc xu bit di 6, v Cj l xu bit di 4. Ta nh

    ngha:

    testj(Ej, Ej*, Cj) = { Bj Ej : Bj INj(Ej, Cj) },

    vi Ej = Ej Ej*.

    nh l 3.1:

    Gi s Ej v Ej* l hai xu nhp cho S-hp Sj, v xu xut x-or cho Sj l Cj. K hiu

    Ej = Ej Ej* . Khi cc bit kha Jj c trong tp testj(Ej, Ej*, Cj).

    , chnh l cc xu bit Nj(Ej, Cj) di 6 trong tp testj(Ej, Ej*, Cj); gi tr

    chnh xc ca Jj phi l mt trong s .

    V d 3.2:

    Gi s E1 = 000001, E1*= 110101 v C1= 1101. Do N1(110101,1101) = 8, ng bng 8

    xu bit trong tp test1(000001, 110101, 1101). T bng trn ta thy rng

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    IN1(110100, 1101) = {000110, 010000, 010110, 011100, 100010, 100100, 101000, 110010}

    Cho nn

    test1(000001, 110101,1101) = {000111, 010001, 010111, 011101, 100011, 100101, 101001,

    110011}

    Nu ta c mt b ba th hai nh th E1, E1*, C1, khi ta s nhn c tp th hai

    test1 ca cc tr cho cc bit kha trong J1. Tr ng ca J1 cn phi nm trong giao ca cc S-

    hp. Nu ta c mt vi b ba nh vy, khi ta c th mau chng tm c cc bit kha

    trong J1. Mt cch r rng hn thc hin iu l lp mt bng ca 64 b m biu din

    cho 64 kh nng ca ca 6 kha bit trong J1. B m s tng mi ln, tng ng vi s xut

    hin ca cc bit kha trong tp test1 cho mt b ba c th. Cho t b ba, ta hy vng tm c

    duy nht mt b m c tr t; tr s tng ng vi tr ng ca cc bit kha trong J1.

    I.3.1. Thm m h DES - 3 vng

    By gi ta s xt tng va trnh by cho vic thm m h DES - ba vng. Ta s bt

    u vi cp bn r v cc bn m tng ng: L0R0, L0*R0*, L3R3 v L3*R3*. Ta c th biu

    din R3 nh sau:

    R3 = L2 f(R2, K3)

    = R1 f(R2, K3)

    = L0 f(R0, K1) f(R2, K3)

    R3* c th biu din mt cch tng t , do vy:

    R3 = L0 f(R0, K1) f(R0*, K1) f(R2, K3) f(R2*, K3)

    By gi, gi s ta chn c cc bn r sao cho R0 = R0*, chng hn:

    R0 = 00...0

    Khi f(R0, K1) = f(R0*, K1), v do :

    R3 = L0 f(R2, K3) f(R2*, K3)

    im ny R3 l c bit khi n c th tnh c t hai bn m, v L0 l bit c

    khi n c th tnh c t hai bn r. Ngha l ta c th tnh c f(R2,K3)f(R2*,K3) t

    phng trnh:

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    f(R2, K3) f(R2*, K3) = R3 L0

    By gi f(R2, K3) = P(C) v f(R2*, K3) = P(C*), vi C v C* tng ng l k hiu

    ca hai xu xut ca tm S-hp (nhc li, P l c nh, l hn v c bit cng khai). Nn:

    P(C) P(C*) = R3 L0

    v kt qu l:

    C = C C* = P-1(R3 L0) (1)

    l xu xut x-or cho tm S-hp trong vng ba.

    By gi, R2 = L3 v R2* = L3* l bit (chng l mt phn ca cc bn m). T

    y ta c th tnh:

    E = E(L3) (2)

    v

    E* = E(L3*) (3)

    s dng hm m rng E c bit cng khai. Chng l nhng xu nhp cho cc S-hp cho

    vng ba. Nh vy gi ta bit E, E*, v C cho vng ba v ta c th tip tc xy dng cc

    tp test1, ..., test8 ca cc tr c th c cho cc bit kha trong J1, ..., J8.

    Gii thut va xt c th biu din bi cc m sau:

    Input: L0R0, L0*R0*, L3R3 v L3*R3*, vi R0 = R0*

    1. Tnh C = P-1(R3 L0)

    2. Tnh E = E(L3) v E* = E(L*)

    3. for j = 1 to 8 do

    compute testj(Ej, Ej*, Cj)

    Vic m thm s s dng mt s b ba E, E*, C nh vy. Ta s lp tm bng cc b

    m v do xc nh c 48 bit trong K3, l kha cho vng ba. 56 bit trong kha khi c

    th tm c hn tn t 28 = 256 kh nng cho 8 bit kha.

    By gi ta s minh ha iu qua v d sau.

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    V d 3.3

    Gi s ta c ba cp bn r v bn m, vi cc bn m cng c cc xu x-or c m

    ha bi cng mt kha. ngn gn ta s dng h thp lc phn:

    Bn r Bn m

    748502CD38451097

    3874756438451097

    03C70306D8A09F10

    78560A0960E6D4CB

    486911026ACDFF31

    375BD31F6ACDFF31

    45FA285BE5ADC730

    134F7915AC253457

    357418DA013FEC86

    12549847013FEC86

    D8A31B2F28BBC5CF

    0F317AC2B23CB944

    T cp u tin ta tnh cc xu nhp ca S-hp (cho vng 3) t cc phng trnh (2)

    v (3). Chng l:

    E = 000000000111111000001110100000000110100000001100

    E* = 101111110000001010101100000001010100000001010010

    Xu xut x-or ca S-hp c tnh bng phng trnh (1) s l:

    C = 10010110010111010101101101100111

    T cp th hai, ta tnh c cc xu nhp cho S-hp l:

    E = 101000001011111111110100000101010000001011110110

    E* = 100010100110101001011110101111110010100010101001

    v xu xut x-or ca S-hp l:

    C = 10011100100111000001111101010110

    T cp th ba, cc xu nhp cho S-hp s l:

    E = 111011110001010100000110100011110110100101011111

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    E* = 000001011110100110100010101111110101011000000100

    v xu xut x-or ca S-hp l:

    C = 11010101011101011101101100101011

    Tip theo, ta lp bng cc tr trong tm mng b m cho mi cp. Ta s minh ha th

    tc vi cc mng m cho J1 t cp u tin. Trong cp ny, ta c E1= 101111 v C1 =

    1001. Tp:

    IN1(101111, 1001) = {000000, 000111, 101000, 101111}

    Do E1 = 000000 ta c:

    J1 test1(000000, 101111, 1001) = {000000, 000111, 101000, 101111}

    Do ta tng cc tr 0, 7, 40 v 47 trong cc mng m cho J1.

    Cui cng ta s trnh by cc bng. Nu ta xem cc xu bit di 6 nh l biu din

    ca cc s nguyn trong khong 0-63, th 64 tr s tng ng vi 0, 1, ..., 63. Cc mng m

    s l nh sau:

    J1

    1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0

    0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0

    0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 3

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

    J2

    0 0 0 1 0 3 0 0 1 0 0 1 0 0 0 0

    0 1 0 0 0 2 0 0 0 0 0 0 1 0 0 0

    0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    0 0 1 1 0 0 0 0 1 0 1 0 2 0 0 0

    J3

    0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0

    0 0 0 3 0 0 0 0 0 0 0 0 0 0 1 1

    0 2 0 0 0 0 0 0 0 0 0 0 1 1 0 0

    0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0

    J4

    3 1 0 0 0 0 0 0 0 0 2 2 0 0 0 0

    0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 1

    1 1 1 0 1 0 0 0 0 1 1 1 0 0 1 0

    0 0 0 0 1 1 0 0 0 0 0 0 0 0 2 1

    J5

    0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0

    0 0 0 0 2 0 0 0 3 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    0 0 2 0 0 0 0 0 0 1 0 0 0 0 2 0

    J6

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    1 0 0 1 1 0 0 3 0 0 0 0 1 0 0 1

    0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0

    0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0

    1 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0

    J7

    0 0 2 1 0 1 0 3 0 0 0 1 1 0 0 0

    0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1

    0 0 2 0 0 0 2 0 0 0 0 1 2 1 1 0

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1

    J8

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1

    0 3 0 0 0 0 1 0 0 0 0 0 0 0 0 0

    Trong mi tm mng m, c duy nht mt b m c tr l 3. V tr ca cc b m

    xc nh cc bit kha trong J1, ..., J8. Cc v tr l: 47, 5, 19, 0, 24, 7, 7, 49. Chuyn cc

    s nguyn sang dng nh phn, ta nhn c J1, ..., J8:

    J1 = 101111

    J2 = 000101

    J3 = 010011

    J4 = 000000

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    J5 = 011000

    J6 = 000111

    J7 = 000111

    J8 = 110001

    By gi ta c th to ra 48 bit kha, bng cch quan st lch kha cho vng ba. Suy ra

    l K c dng:

    0001101 0110001 01?01?0 1?00100

    0101001 0000??0 111?11? ?100011

    vi cc bit kim tra c loi b v ? k hiu bit kha cha bit. Kha y (trong

    dng thp lc phn, gm c bit kim tra) s l:

    1A624C89520DEC46

    II.3.2. Thm m h DES 6-vng

    By gi ta s m t vic m rng tng trn cho vic thm m trn h DES 6-vng.

    tng y l la chn mt cch cn thn cp bn r vi xu x-or c th v sau xc nh

    cc xc sut ca cc dy c th ca cc xu x-or qua cc vng lp m. By gi ta cn nh

    ngha mt khi nim quan trng sau.

    nh ngha 3.5: Cho n 1 l s nguyn. c trng ca vng th n l mt danh sch cc dng

    L0, R0, L1, R1, p1, ..., Ln, Rn, pn

    tha mn cc iu kin sau:

    1. Li = Ri-1 vi 1 i n

    2. Cho 1 i n v Li-1, Ri-1 v L*i-1, R*i-1 l c chn sao cho Li-1 L*i-1 = Li-1 v Ri-1

    R*i-1 = Ri-1. Gi s Li, Ri v Li* , Ri* l tnh c nh vic p dng mt vng lp m

    DES. Khi xc sut Li L*i = Li v Ri R*i = Ri chnh xc bng pi. (Ch l, xc

    sut ny c tnh trn tt c cc b c th c ca J = J1...J8) .

    Xc sut c trng c nh ngha bng tch p = p1 ... pn.

    Nhn xt: Gi s ta chn L0, R0 v L0*, R0* sao cho L0 L0* = L0 v R0 R0*= R0 v ta

    p dng n vng lp m ca DES, nhn c L1. ..., Ln v R1, ..., Rn. Khi ta khng th i

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    hi xc sut Li Li* = Li v Ri Ri* = Ri cho tt c i ( 1 i n) l p1 ... pn. Bi v

    cc b -48 trong lch kha K1, ..., Kn khng phi l c lp ln nhau. (Nu n b-48 ny uc

    chn c lp mt cch ngu nhin, th iu xc nhn l ng). Nhng ta s coi rng p1 ...

    pn chnh xc l xc xut .

    Ta cn cn xc nhn l, cc xc sut pi trong c trng l cc cp bn r c xc nh ty

    (nhng c nh) c c t bng xu x-or, vi 48 bit kha cho mt vng lp m DES l c

    248 kh nng. Do vic thm m s nhm vo vic xc nh kha c nh (nhng cha bit).

    Do cn c chn cc bn m ngu nhin (nhng chng c cc xu x-or c c t), hy

    vng rng cc xc sut cc xu x-or trong n vng lp m trng hp vi cc xu x-or, c

    c t trong c trng, tng i mt p1, ..., pn tng ng.

    Trong v d sau y, ta s trnh by c trng vng 1 lm c s cho vic thm m DES ba

    vng trong hnh sau (nh trn, ta s s dng cch biu din theo h thp lc phn).

    L0 = bt k R0 = 0000000016

    L1 = 0000000016 R1 = L0 p = 1

    Ta cng s m t mt c trng vng 1 khc nh sau

    L0 = 0000000016 R0 = 6000000016

    L1 = 6000000016 R1 = 0080820016 p = 14/64

    Ta hy xt c trng sau mt cch chi tit hn. Khi f(R0, K1) v f(R0*, K1) c tnh, bc

    u tin l m rng R0 v R0*. Xu x-or kt qu ca hai m rng l:

    001100...0

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    Tc l xu x-or nhp cho S1 l 001100 v cc xu x-or cho by S-hp khc u l 000000.

    Cc xu xut x-or cho S2 n S8 u l 0000. Xu xut x-or cho S1 l 1110 vi xc sut 14/64

    (do N1(001100, 1110) = 14). Nn ta nhn c:

    C = 11100000000000000000000000000000

    vi xc sut 14/64. Ap dng P, ta nhn c:

    P(C) P(C*) = 00000000100000001000001000000000

    trong dng thp lc phn s l 0080820016. Khi xu ny cng x-or vi L0, ta nhn c R1

    vi xc sut 14/64. Do L1 = R0.

    Vic thm m DES su vng da trn c trng ba vng c cho trong hnh sau.

    Trong thm m 6-vng, ta bt u vi L0R0. L0*R0*, L6R6 v L6*R6*, m ta phi chn bn r

    sao cho L0= 4008000016 v R.0= 0400000016, ta c th biu din R0 nh sau:

    L0

    L1

    L2

    L3

    =

    =

    =

    =

    4008000016

    0400000016

    0000000016

    0400000016

    R0

    R1

    R2

    R3

    =

    =

    =

    =

    0400000016

    0000000016

    0400000016

    4008000016

    p = 1/4

    p = 1

    p = 1/4

    R6 = L5 f(R5, K6)

    = R4 f(R5, K6)

    = L3 f(R3, K4) f(R5, K6)

    R6* cng c th biu din tng t, ta c

    R0 = L3 f(R3, K4) f(R3*, K4) f(R5, K6) f(R5*, K6) (4)

    ( l tng t nh thm m 3-vng)

    R6 l c bit. T c trng ta tnh L3 = 0400000016 v R3 = 4008000016 vi xc sut

    1/16. Nu nh vy, th xu nhp x-or cho S-hp trong vng 4 c th tnh c nh hm m

    rng phi l:

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    001000000000000001010000...0

    Cc xu x-or cho S2, S5, S6, S7 v S8 tt c u bng 000000, v v th xu xut x-or l 0000

    cho tt c nm S-hp trong vng 4. iu ny c ngha l, ta c th tnh c cc xu xut

    x-or cho nm S-hp trong vng 6 nh phng trnh (4). Do gi s ta tnh:

    C1C2C3C4C5C6C7C8 = P-1(R6 04000000)

    mi Ci l xu bit c di 4. Khi vi xc sut 1/16, th s dn n l C2, C5, C6, C7 v

    C8 tng ng l cc xu x-or xut ca S2, S5, S6, S7 v S8 trong vng 6. Cc xu nhp cho

    cc S-hp trong vng 6 c th tnh c l E2, E5, E6, E7 v E8; v E2*, E5*, E6*, E7* v E8*,

    vi

    E1E2E3E4E5E6E7E8 = E(R5) = E(L6)

    v

    E1*E2*E3*E4*E5*E6*E7*E8* = E(R5*) = E(L6*)

    c th tnh c t cc bn r nh sau:

    Input: L0R0, L0*R0*, L6R6 v L6*R6*; vi L0 = 4008000016

    v R0 = 0400000016.

    1. Tnh C = P-1(R6 0400000016)

    2. Tnh E = E(L6) v E* = E(L6*)

    3. for j {2,5,6,7,8} do

    tnh testj( Ej, Ej*, Cj)

    Ta cng s xc nh 30 bit kha trong J2, J5, J6, J7 v J8 nh trong thm m 3-vng.

    Bi tn, xu xut x-or gi nh cho vng 6 l chnh xc ch vi xc sut 1/16. Cn 15/16

    phn cn li ta s thng nhn c nhng xu v dng ngu nhin hn l cc bit kha.

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    nh ngha 3.6: Gi s L0 L0* = L0 v R0 R0*= R0. Ta ni rng, cp bn r L0R0 v L0*

    R0* l ng (right) ng vi c trng nu Li Li* = Li v Ri Ri*= Ri cho mi i, 1 i n.

    Cp tri vi cp c nh ngha gi l cp sai (wrong).

    Ta mong rng, khong 1/16 s cp ca ta l ng, cn cc cp cn li l cp sai ng vi c

    trng vng ba ca ta.

    Chin lc ca ta l tnh Ej. Ej* v Cjnh m t trn v sau xc nh testj(Ej, Ej*, Cj)

    vi j = 2,5,6,7,8. Nu ta bt u vi mt cp ng, th th cc bit kha chnh xc cho mi Jj s

    nm trong tp testj. Nu cp l sai, th tr Cj s khng ng, v l nguyn do gi nh

    rng, mi tp testj thc cht l ngu nhin.

    Ta c th nhn ra cp ng theo phng php sau: Nu testj= 0, vi bt k j {2,5,6,7,8},

    khi ta tt yu c c cp ng. By gi cho mt cp sai, ta c th hy vng rng, xc sut

    testj= 0 cho mt j c th l xp x 1/5. l l do gi nh l, Nj(Ej, Cj) = testj v

    nh nhn xt t trc, xc sut Nj(Ej, Cj) = 0 l xp x 1/5. Xc sut c nm testj

    u dng l vo khong 0.85 0.33, qu vy xc sut t nht mt testj bng 0 l vo

    khong 0.67. Nn ta c khong 2/3 s cp l sai, nh vo mt nhn xt n gin, c gi l

    php lc (filtering operation). T s ca cc cp ng trn cc cp cn li sau php lc l vo

    khong:

    61311615161

    161

    V d 3.4: Gi s ta c cp bn r - bn m sau:

    Bn r Bn m

    86FA1C2B1F51D3BE

    C6F21C2B1B51D3BE

    1E23ED7F2F553971

    296DE2B687AC6340

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    Ch l, L0 = 4008000016 v R0 = 0400000016. Xu nhp v xu xut ca S-hp cho vng 6

    c tnh nh sau:

    j Ej Ej* Cj

    2

    5

    6

    7

    8

    111100

    111101

    011010

    101111

    111110

    010010

    111100

    000101

    010110

    101100

    1101

    0001

    0010

    1100

    1101

    Khi cc tp testj s l nh sau:

    j testj

    2 14, 15,26, 30, 32, 33, 48, 52

    5

    6 7, 24, 36, 41, 54, 59

    7

    8 34, 35, 48, 49

    Ta thy rng, hai tp test5 v test7 l rng , nn cp ny l cp sai v n b loi b bng php

    lc.

    By gi gi s ta c cp sao cho testj> 0 vi j = 2,5,6,7,8 l nhng tp cn li sau php

    lc.(Bi v ta khng bit c l cp no ng, cp no sai.) Ta ni rng, xu bit J2J5J6J7J8

    di 30 l c xut bi cp nu Jj testj vi j = 2,5,6,7,8. S cc cp c xut l:

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    8,7,6,5,2j

    jtest

    l bnh thng vi s xu bit c xut l kh ln. (Chng hn. ln hn 80000)

    Gi s, ta lp bng cho tt c cc xu c xut nhn c t N cp, m khng b loi bi

    php lc. Vi mi cp ng, th xu bit ng J2J5J6J7J8 s l xu c xut. Xu bit ng

    s c tnh khong 3N/16 ln. Xu bit sai thng xut hin t hn, bi v chng xut hin

    ngu nhin v c khong 230 kh nng. (L mt s rt ln.)

    Ta nhn c mt bng cc ln tt c cc xu c xut, nn ta s dng mt thut

    tn ch i hi mt khng gian v thi gian t nht. Ta c th m ha bt k mt tp testj no

    thnh mt vc t Tj c di 64, vi ta th i ca Tj c t bng 1 (0 i63), nu xu

    bit di 6 l biu din ca i trong tp testj; v ta th i c t bng 0 trong trng

    hp ngc li ( iu ny ging nh mng cc b m m ta s dng trong thm m DES

    ba vng).

    Vi mi cp cn li, ta xy dng cc vc t nh trn v gi chng l Tji, j=2,5,6,7,8; 1

    i N. Vi I {1, ..., N} ta ni rng I l chp nhn c (allowable) nu vi mi j

    {2,5,6,7,8} c t nht mt ta bng I trong vc t

    Ii

    ijT

    Nu cp th i l cp ng cho mi iI, th tp I l chp nhn c. Do ta cho rng

    tp chp nhn c c kch thc (xp x) 3N/16, l tp xut v ta hy vng l ch gm cc

    bit kha ng ch khng c cc xu khc. iu ny lm n gin ha cho vic xy dng tt

    c cc tp chp nhn c I bng mt thut tn qui.

    II.3. 3 Cc thm m vi sai khc

    Phng php thm m vi sai cn c th p dng thm cc h DES nhiu vng hn.

    Vi h DES 8-vng i hi 214 bn r chn v cc h 10-, 12-, 14- v 16-vng i hi c

    tng ng 224, 231, 239 v 247 bn m chn. Nn ni chung l kh phc tp.

    Cc k thut thm m vi sai c Biham v Shamir pht trin. Cc phng php thm m

    DES khc c Matsui s dng nh l thm m tuyn tnh.

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    III. H M DES 3 VNG

    Chng trnh gm hai phn:

    Phn Giao Din (cha trong th mc GiaoDien): C chc nng x l

    giao din.

    Phn X L (cha trong th mc XuLy): c chc nng h tr cc hm

    x l.

    III.1 Giao Din ( Package GiaoDien).

    a. Mn hnh chnh (Mainform.vb)

    Form lp m v gii m DES(Des.vb)

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    Source code mt s hm chnh trong form giai m Des

    Imports System.IO

    Public Class des Inherits System.Windows.Forms.Form

    khai bao bien

    Dim str As String

    Dim s(7) As DataTable

    Dim ip() As String

    'Dim iptru() As String

    Dim e() As String

    Dim p() As String

    Dim pc1() As String

    Dim pc2() As String

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    Dim daykhoa(15) As String

    Dim x As String

    Dim daynhap(29) As String

    Dim daybanma(29) As String

    khoi tao

    Sub khoitao_s0()

    Dim i As Integer

    s(0) = New DataTable

    For i = 0 To 15

    Dim col As DataColumn = New DataColumn

    s(0).Columns.Add(col)

    Next

    For i = 0 To 3

    Dim row As DataRow = s(0).NewRow

    s(0).Rows.Add(row)

    Next

    s(0).Rows(0).Item(0) = 14

    s(0).Rows(0).Item(1) = 4

    s(0).Rows(0).Item(2) = 13

    s(0).Rows(0).Item(3) = 1

    s(0).Rows(0).Item(4) = 2

    s(0).Rows(0).Item(5) = 15

    s(0).Rows(0).Item(6) = 11

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    s(0).Rows(0).Item(7) = 8

    s(0).Rows(0).Item(8) = 3

    s(0).Rows(0).Item(9) = 10

    s(0).Rows(0).Item(10) = 6

    s(0).Rows(0).Item(11) = 12

    s(0).Rows(0).Item(12) = 5

    s(0).Rows(0).Item(13) = 9

    s(0).Rows(0).Item(14) = 0

    s(0).Rows(0).Item(15) = 7

    s(0).Rows(1).Item(0) = 0

    s(0).Rows(1).Item(1) = 15

    s(0).Rows(1).Item(2) = 7

    s(0).Rows(1).Item(3) = 4

    s(0).Rows(1).Item(4) = 14

    s(0).Rows(1).Item(5) = 2

    s(0).Rows(1).Item(6) = 13

    s(0).Rows(1).Item(7) = 1

    s(0).Rows(1).Item(8) = 10

    s(0).Rows(1).Item(9) = 6

    s(0).Rows(1).Item(10) = 12

    s(0).Rows(1).Item(11) = 11

    s(0).Rows(1).Item(12) = 9

    s(0).Rows(1).Item(13) = 5

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    s(0).Rows(1).Item(14) = 3

    s(0).Rows(1).Item(15) = 8

    s(0).Rows(2).Item(0) = 4

    s(0).Rows(2).Item(1) = 1

    s(0).Rows(2).Item(2) = 14

    s(0).Rows(2).Item(3) = 8

    s(0).Rows(2).Item(4) = 13

    s(0).Rows(2).Item(5) = 6

    s(0).Rows(2).Item(6) = 2

    s(0).Rows(2).Item(7) = 11

    s(0).Rows(2).Item(8) = 15

    s(0).Rows(2).Item(9) = 12

    s(0).Rows(2).Item(10) = 9

    s(0).Rows(2).Item(11) = 7

    s(0).Rows(2).Item(12) = 3

    s(0).Rows(2).Item(13) = 10

    s(0).Rows(2).Item(14) = 5

    s(0).Rows(2).Item(15) = 0

    s(0).Rows(3).Item(0) = 15

    s(0).Rows(3).Item(1) = 12

    s(0).Rows(3).Item(2) = 8

    s(0).Rows(3).Item(3) = 2

    s(0).Rows(3).Item(4) = 4

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    s(0).Rows(3).Item(5) = 9

    s(0).Rows(3).Item(6) = 1

    s(0).Rows(3).Item(7) = 7

    s(0).Rows(3).Item(8) = 5

    s(0).Rows(3).Item(9) = 11

    s(0).Rows(3).Item(10) = 3

    s(0).Rows(3).Item(11) = 14

    s(0).Rows(3).Item(12) = 10

    s(0).Rows(3).Item(13) = 0

    s(0).Rows(3).Item(14) = 6

    s(0).Rows(3).Item(15) = 13

    dgs0.DataSource = s(0)

    End Sub

    Ham khoi tao s1

    Sub khoitao_s1()

    Dim i As Integer

    s(1) = New DataTable

    For i = 0 To 15

    Dim col As DataColumn = New DataColumn

    s(1).Columns.Add(col)

    Next

    For i = 0 To 3

    Dim row As DataRow = s(1).NewRow

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    s(1).Rows.Add(row)

    Next

    s(1).Rows(0).Item(0) = 15

    s(1).Rows(0).Item(1) = 1

    s(1).Rows(0).Item(2) = 8

    s(1).Rows(0).Item(3) = 14

    s(1).Rows(0).Item(4) = 6

    s(1).Rows(0).Item(5) = 11

    s(1).Rows(0).Item(6) = 3

    s(1).Rows(0).Item(7) = 4

    s(1).Rows(0).Item(8) = 9

    s(1).Rows(0).Item(9) = 7

    s(1).Rows(0).Item(10) = 2

    s(1).Rows(0).Item(11) = 13

    s(1).Rows(0).Item(12) = 12

    s(1).Rows(0).Item(13) = 0

    s(1).Rows(0).Item(14) = 5

    s(1).Rows(0).Item(15) = 10

    s(1).Rows(1).Item(0) = 3

    s(1).Rows(1).Item(1) = 13

    s(1).Rows(1).Item(2) = 4

    s(1).Rows(1).Item(3) = 7

    s(1).Rows(1).Item(4) = 15

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    s(1).Rows(1).Item(5) = 2

    s(1).Rows(1).Item(6) = 8

    s(1).Rows(1).Item(7) = 14

    s(1).Rows(1).Item(8) = 12

    s(1).Rows(1).Item(9) = 0

    s(1).Rows(1).Item(10) = 1

    s(1).Rows(1).Item(11) = 10

    s(1).Rows(1).Item(12) = 6

    s(1).Rows(1).Item(13) = 9

    s(1).Rows(1).Item(14) = 11

    s(1).Rows(1).Item(15) = 5

    s(1).Rows(2).Item(0) = 0

    s(1).Rows(2).Item(1) = 14

    s(1).Rows(2).Item(2) = 7

    s(1).Rows(2).Item(3) = 11

    s(1).Rows(2).Item(4) = 10

    s(1).Rows(2).Item(5) = 4

    s(1).Rows(2).Item(6) = 13

    s(1).Rows(2).Item(7) = 1

    s(1).Rows(2).Item(8) = 5

    s(1).Rows(2).Item(9) = 8

    s(1).Rows(2).Item(10) = 12

    s(1).Rows(2).Item(11) = 6

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    s(1).Rows(2).Item(12) = 9

    s(1).Rows(2).Item(13) = 3

    s(1).Rows(2).Item(14) = 2

    s(1).Rows(2).Item(15) = 15

    s(1).Rows(3).Item(0) = 13

    s(1).Rows(3).Item(1) = 8

    s(1).Rows(3).Item(2) = 10

    s(1).Rows(3).Item(3) = 1

    s(1).Rows(3).Item(4) = 3

    s(1).Rows(3).Item(5) = 15

    s(1).Rows(3).Item(6) = 4

    s(1).Rows(3).Item(7) = 2

    s(1).Rows(3).Item(8) = 11

    s(1).Rows(3).Item(9) = 6

    s(1).Rows(3).Item(10) = 7

    s(1).Rows(3).Item(11) = 12

    s(1).Rows(3).Item(12) = 0

    s(1).Rows(3).Item(13) = 5

    s(1).Rows(3).Item(14) = 14

    s(1).Rows(3).Item(15) = 9

    dgs1.DataSource = s(1)

    End Sub

    Ham khoi tao s2

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    Sub khoitao_s2()

    Dim i As Integer

    s(2) = New DataTable

    For i = 0 To 15

    Dim col As DataColumn = New DataColumn

    s(2).Columns.Add(col)

    Next

    For i = 0 To 3

    Dim row As DataRow = s(2).NewRow

    s(2).Rows.Add(row)

    Next

    s(2).Rows(0).Item(0) = 10

    s(2).Rows(0).Item(1) = 0

    s(2).Rows(0).Item(2) = 9

    s(2).Rows(0).Item(3) = 14

    s(2).Rows(0).Item(4) = 6

    s(2).Rows(0).Item(5) = 3

    s(2).Rows(0).Item(6) = 15

    s(2).Rows(0).Item(7) = 5

    s(2).Rows(0).Item(8) = 1

    s(2).Rows(0).Item(9) = 13

    s(2).Rows(0).Item(10) = 12

    s(2).Rows(0).Item(11) = 7

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    s(2).Rows(0).Item(12) = 11

    s(2).Rows(0).Item(13) = 4

    s(2).Rows(0).Item(14) = 2

    s(2).Rows(0).Item(15) = 8

    s(2).Rows(1).Item(0) = 13

    s(2).Rows(1).Item(1) = 7

    s(2).Rows(1).Item(2) = 0

    s(2).Rows(1).Item(3) = 9

    s(2).Rows(1).Item(4) = 3

    s(2).Rows(1).Item(5) = 4

    s(2).Rows(1).Item(6) = 6

    s(2).Rows(1).Item(7) = 10

    s(2).Rows(1).Item(8) = 2

    s(2).Rows(1).Item(9) = 8

    s(2).Rows(1).Item(10) = 5

    s(2).Rows(1).Item(11) = 14

    s(2).Rows(1).Item(12) = 12

    s(2).Rows(1).Item(13) = 11

    s(2).Rows(1).Item(14) = 15

    s(2).Rows(1).Item(15) = 1

    s(2).Rows(2).Item(0) = 13

    s(2).Rows(2).Item(1) = 6

    s(2).Rows(2).Item(2) = 4

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    s(2).Rows(2).Item(3) = 9

    s(2).Rows(2).Item(4) = 8

    s(2).Rows(2).Item(5) = 15

    s(2).Rows(2).Item(6) = 3

    s(2).Rows(2).Item(7) = 0

    s(2).Rows(2).Item(8) = 11

    s(2).Rows(2).Item(9) = 1

    s(2).Rows(2).Item(10) = 2

    s(2).Rows(2).Item(11) = 12

    s(2).Rows(2).Item(12) = 5

    s(2).Rows(2).Item(13) = 10

    s(2).Rows(2).Item(14) = 14

    s(2).Rows(2).Item(15) = 7

    s(2).Rows(3).Item(0) = 1

    s(2).Rows(3).Item(1) = 10

    s(2).Rows(3).Item(2) = 13

    s(2).Rows(3).Item(3) = 0

    s(2).Rows(3).Item(4) = 6

    s(2).Rows(3).Item(5) = 9

    s(2).Rows(3).Item(6) = 8

    s(2).Rows(3).Item(7) = 7

    s(2).Rows(3).Item(8) = 4

    s(2).Rows(3).Item(9) = 15

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    s(2).Rows(3).Item(10) = 14

    s(2).Rows(3).Item(11) = 3

    s(2).Rows(3).Item(12) = 11

    s(2).Rows(3).Item(13) = 5

    s(2).Rows(3).Item(14) = 3

    s(2).Rows(3).Item(15) = 12

    dgs2.DataSource = s(2)

    End Sub

    Hm khi to s3

    Sub khoitao_s3()

    Dim i As Integer

    s(3) = New DataTable

    For i = 0 To 15

    Dim col As DataColumn = New DataColumn

    s(3).Columns.Add(col)

    Next

    For i = 0 To 3

    Dim row As DataRow = s(3).NewRow

    s(3).Rows.Add(row)

    Next

    s(3).Rows(0).Item(0) = 7

    s(3).Rows(0).Item(1) = 13

    s(3).Rows(0).Item(2) = 14

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    s(3).Rows(0).Item(3) = 3

    s(3).Rows(0).Item(4) = 0

    s(3).Rows(0).Item(5) = 6

    s(3).Rows(0).Item(6) = 9

    s(3).Rows(0).Item(7) = 10

    s(3).Rows(0).Item(8) = 1

    s(3).Rows(0).Item(9) = 2

    s(3).Rows(0).Item(10) = 8

    s(3).Rows(0).Item(11) = 5

    s(3).Rows(0).Item(12) = 11

    s(3).Rows(0).Item(13) = 12

    s(3).Rows(0).Item(14) = 4

    s(3).Rows(0).Item(15) = 15

    s(3).Rows(1).Item(0) = 13

    s(3).Rows(1).Item(1) = 8

    s(3).Rows(1).Item(2) = 11

    s(3).Rows(1).Item(3) = 5

    s(3).Rows(1).Item(4) = 6

    s(3).Rows(1).Item(5) = 15

    s(3).Rows(1).Item(6) = 0

    s(3).Rows(1).Item(7) = 3

    s(3).Rows(1).Item(8) = 4

    s(3).Rows(1).Item(9) = 7

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    s(3).Rows(1).Item(10) = 2

    s(3).Rows(1).Item(11) = 12

    s(3).Rows(1).Item(12) = 1

    s(3).Rows(1).Item(13) = 10

    s(3).Rows(1).Item(14) = 14

    s(3).Rows(1).Item(15) = 9

    s(3).Rows(2).Item(0) = 10

    s(3).Rows(2).Item(1) = 6

    s(3).Rows(2).Item(2) = 9

    s(3).Rows(2).Item(3) = 0

    s(3).Rows(2).Item(4) = 12

    s(3).Rows(2).Item(5) = 11

    s(3).Rows(2).Item(6) = 7

    s(3).Rows(2).Item(7) = 13

    s(3).Rows(2).Item(8) = 15

    s(3).Rows(2).Item(9) = 1

    s(3).Rows(2).Item(10) = 3

    s(3).Rows(2).Item(11) = 14

    s(3).Rows(2).Item(12) = 5

    s(3).Rows(2).Item(13) = 2

    s(3).Rows(2).Item(14) = 8

    s(3).Rows(2).Item(15) = 4

    s(3).Rows(3).Item(0) = 3

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    s(3).Rows(3).Item(1) = 15

    s(3).Rows(3).Item(2) = 0

    s(3).Rows(3).Item(3) = 6

    s(3).Rows(3).Item(4) = 10

    s(3).Rows(3).Item(5) = 1

    s(3).Rows(3).Item(6) = 13

    s(3).Rows(3).Item(7) = 8

    s(3).Rows(3).Item(8) = 9

    s(3).Rows(3).Item(9) = 4

    s(3).Rows(3).Item(10) = 5

    s(3).Rows(3).Item(11) = 11

    s(3).Rows(3).Item(12) = 12

    s(3).Rows(3).Item(13) = 7

    s(3).Rows(3).Item(14) = 2

    s(3).Rows(3).Item(15) = 14

    dgs3.DataSource = s(3)

    End Sub

    Hm khi to s4

    Sub khoitao_s4()

    Dim i As Integer

    s(4) = New DataTable

    For i = 0 To 15

    Dim col As DataColumn = New DataColumn

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    s(4).Columns.Add(col)

    Next

    For i = 0 To 3

    Dim row As DataRow = s(4).NewRow

    s(4).Rows.Add(row)

    Next

    s(4).Rows(0).Item(0) = 2

    s(4).Rows(0).Item(1) = 12

    s(4).Rows(0).Item(2) = 4

    s(4).Rows(0).Item(3) = 1

    s(4).Rows(0).Item(4) = 7

    s(4).Rows(0).Item(5) = 10

    s(4).Rows(0).Item(6) = 11

    s(4).Rows(0).Item(7) = 6

    s(4).Rows(0).Item(8) = 8

    s(4).Rows(0).Item(9) = 5

    s(4).Rows(0).Item(10) = 3

    s(4).Rows(0).Item(11) = 15

    s(4).Rows(0).Item(12) = 13

    s(4).Rows(0).Item(13) = 0

    s(4).Rows(0).Item(14) = 14

    s(4).Rows(0).Item(15) = 9

    s(4).Rows(1).Item(0) = 14

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    s(4).Rows(1).Item(1) = 11

    s(4).Rows(1).Item(2) = 2

    s(4).Rows(1).Item(3) = 12

    s(4).Rows(1).Item(4) = 4

    s(4).Rows(1).Item(5) = 7

    s(4).Rows(1).Item(6) = 13

    s(4).Rows(1).Item(7) = 1

    s(4).Rows(1).Item(8) = 5

    s(4).Rows(1).Item(9) = 0

    s(4).Rows(1).Item(10) = 15

    s(4).Rows(1).Item(11) = 10

    s(4).Rows(1).Item(12) = 3

    s(4).Rows(1).Item(13) = 9

    s(4).Rows(1).Item(14) = 8

    s(4).Rows(1).Item(15) = 6

    s(4).Rows(2).Item(0) = 4

    s(4).Rows(2).Item(1) = 2

    s(4).Rows(2).Item(2) = 1

    s(4).Rows(2).Item(3) = 11

    s(4).Rows(2).Item(4) = 10

    s(4).Rows(2).Item(5) = 13

    s(4).Rows(2).Item(6) = 7

    s(4).Rows(2).Item(7) = 8

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    s(4).Rows(2).Item(8) = 15

    s(4).Rows(2).Item(9) = 9

    s(4).Rows(2).Item(10) = 12

    s(4).Rows(2).Item(11) = 5

    s(4).Rows(2).Item(12) = 6

    s(4).Rows(2).Item(13) = 3

    s(4).Rows(2).Item(14) = 0

    s(4).Rows(2).Item(15) = 14

    s(4).Rows(3).Item(0) = 11

    s(4).Rows(3).Item(1) = 8

    s(4).Rows(3).Item(2) = 12

    s(4).Rows(3).Item(3) = 7

    s(4).Rows(3).Item(4) = 0

    s(4).Rows(3).Item(5) = 14

    s(4).Rows(3).Item(6) = 2

    s(4).Rows(3).Item(7) = 13

    s(4).Rows(3).Item(8) = 6

    s(4).Rows(3).Item(9) = 15

    s(4).Rows(3).Item(10) = 0

    s(4).Rows(3).Item(11) = 9

    s(4).Rows(3).Item(12) = 10

    s(4).Rows(3).Item(13) = 4

    s(4).Rows(3).Item(14) = 5

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    s(4).Rows(3).Item(15) = 3

    dgs4.DataSource = s(4)

    End Sub

    Hm khi to S5

    Sub khoitao_s5()

    Dim i As Integer

    s(5) = New DataTable

    For i = 0 To 15

    Dim col As DataColumn = New DataColumn

    s(5).Columns.Add(col)

    Next

    For i = 0 To 3

    Dim row As DataRow = s(5).NewRow

    s(5).Rows.Add(row)

    Next

    s(5).Rows(0).Item(0) = 12

    s(5).Rows(0).Item(1) = 1

    s(5).Rows(0).Item(2) = 10

    s(5).Rows(0).Item(3) = 15

    s(5).Rows(0).Item(4) = 9

    s(5).Rows(0).Item(5) = 2

    s(5).Rows(0).Item(6) = 6

    s(5).Rows(0).Item(7) = 8

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    s(5).Rows(0).Item(8) = 0

    s(5).Rows(0).Item(9) = 13

    s(5).Rows(0).Item(10) = 3

    s(5).Rows(0).Item(11) = 4

    s(5).Rows(0).Item(12) = 14

    s(5).Rows(0).Item(13) = 7

    s(5).Rows(0).Item(14) = 5

    s(5).Rows(0).Item(15) = 11

    s(5).Rows(1).Item(0) = 10

    s(5).Rows(1).Item(1) = 15

    s(5).Rows(1).Item(2) = 4

    s(5).Rows(1).Item(3) = 2

    s(5).Rows(1).Item(4) = 7

    s(5).Rows(1).Item(5) = 12

    s(5).Rows(1).Item(6) = 9

    s(5).Rows(1).Item(7) = 5

    s(5).Rows(1).Item(8) = 6

    s(5).Rows(1).Item(9) = 1

    s(5).Rows(1).Item(10) = 13

    s(5).Rows(1).Item(11) = 14

    s(5).Rows(1).Item(12) = 0

    s(5).Rows(1).Item(13) = 11

    s(5).Rows(1).Item(14) = 3

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    s(5).Rows(1).Item(15) = 8

    s(5).Rows(2).Item(0) = 9

    s(5).Rows(2).Item(1) = 14

    s(5).Rows(2).Item(2) = 15

    s(5).Rows(2).Item(3) = 5

    s(5).Rows(2).Item(4) = 2

    s(5).Rows(2).Item(5) = 8

    s(5).Rows(2).Item(6) = 12

    s(5).Rows(2).Item(7) = 3

    s(5).Rows(2).Item(8) = 7

    s(5).Rows(2).Item(9) = 0

    s(5).Rows(2).Item(10) = 4

    s(5).Rows(2).Item(11) = 10

    s(5).Rows(2).Item(12) = 1

    s(5).Rows(2).Item(13) = 13

    s(5).Rows(2).Item(14) = 11

    s(5).Rows(2).Item(15) = 6

    s(5).Rows(3).Item(0) = 4

    s(5).Rows(3).Item(1) = 3

    s(5).Rows(3).Item(2) = 2

    s(5).Rows(3).Item(3) = 12

    s(5).Rows(3).Item(4) = 9

    s(5).Rows(3).Item(5) = 5

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    s(5).Rows(3).Item(6) = 15

    s(5).Rows(3).Item(7) = 10

    s(5).Rows(3).Item(8) = 11

    s(5).Rows(3).Item(9) = 14

    s(5).Rows(3).Item(10) = 1

    s(5).Rows(3).Item(11) = 7

    s(5).Rows(3).Item(12) = 6

    s(5).Rows(3).Item(13) = 0

    s(5).Rows(3).Item(14) = 8

    s(5).Rows(3).Item(15) = 13

    dgs5.DataSource = s(5)

    End Sub

    Hm khi to S6

    Sub khoitao_s6()

    Dim i As Integer

    s(6) = New DataTable

    For i = 0 To 15

    Dim col As DataColumn = New DataColumn

    s(6).Columns.Add(col)

    Next

    For i = 0 To 3

    Dim row As DataRow = s(6).NewRow

    s(6).Rows.Add(row)

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    Next

    s(6).Rows(0).Item(0) = 4

    s(6).Rows(0).Item(1) = 11

    s(6).Rows(0).Item(2) = 2

    s(6).Rows(0).Item(3) = 14

    s(6).Rows(0).Item(4) = 15

    s(6).Rows(0).Item(5) = 0

    s(6).Rows(0).Item(6) = 8

    s(6).Rows(0).Item(7) = 13

    s(6).Rows(0).Item(8) = 3

    s(6).Rows(0).Item(9) = 12

    s(6).Rows(0).Item(10) = 9

    s(6).Rows(0).Item(11) = 7

    s(6).Rows(0).Item(12) = 5

    s(6).Rows(0).Item(13) = 10

    s(6).Rows(0).Item(14) = 6

    s(6).Rows(0).Item(15) = 1

    s(6).Rows(1).Item(0) = 13

    s(6).Rows(1).Item(1) = 0

    s(6).Rows(1).Item(2) = 11

    s(6).Rows(1).Item(3) = 7

    s(6).Rows(1).Item(4) = 4

    s(6).Rows(1).Item(5) = 9

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    s(6).Rows(1).Item(6) = 1

    s(6).Rows(1).Item(7) = 10

    s(6).Rows(1).Item(8) = 14

    s(6).Rows(1).Item(9) = 3

    s(6).Rows(1).Item(10) = 5

    s(6).Rows(1).Item(11) = 12

    s(6).Rows(1).Item(12) = 2

    s(6).Rows(1).Item(13) = 15

    s(6).Rows(1).Item(14) = 8

    s(6).Rows(1).Item(15) = 6

    s(6).Rows(2).Item(0) = 1

    s(6).Rows(2).Item(1) = 4

    s(6).Rows(2).Item(2) = 11

    s(6).Rows(2).Item(3) = 13

    s(6).Rows(2).Item(4) = 12

    s(6).Rows(2).Item(5) = 3

    s(6).Rows(2).Item(6) = 7

    s(6).Rows(2).Item(7) = 14

    s(6).Rows(2).Item(8) = 10

    s(6).Rows(2).Item(9) = 15

    s(6).Rows(2).Item(10) = 6

    s(6).Rows(2).Item(11) = 8

    s(6).Rows(2).Item(12) = 0

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    s(6).Rows(2).Item(13) = 5

    s(6).Rows(2).Item(14) = 9

    s(6).Rows(2).Item(15) = 2

    s(6).Rows(3).Item(0) = 6

    s(6).Rows(3).Item(1) = 11

    s(6).Rows(3).Item(2) = 13

    s(6).Rows(3).Item(3) = 8

    s(6).Rows(3).Item(4) = 1

    s(6).Rows(3).Item(5) = 4

    s(6).Rows(3).Item(6) = 10

    s(6).Rows(3).Item(7) = 7

    s(6).Rows(3).Item(8) = 9

    s(6).Rows(3).Item(9) = 5

    s(6).Rows(3).Item(10) = 0

    s(6).Rows(3).Item(11) = 15

    s(6).Rows(3).Item(12) = 14

    s(6).Rows(3).Item(13) = 2

    s(6).Rows(3).Item(14) = 3

    s(6).Rows(3).Item(15) = 12

    dgs6.DataSource = s(6)

    End Sub

    Hm khi to S7

    Sub khoitao_s7()

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    Dim i As Integer

    s(7) = New DataTable

    For i = 0 To 15

    Dim col As DataColumn = New DataColumn

    s(7).Columns.Add(col)

    Next

    For i = 0 To 3

    Dim row As DataRow = s(7).NewRow

    s(7).Rows.Add(row)

    Next

    s(7).Rows(0).Item(0) = 13

    s(7).Rows(0).Item(1) = 2

    s(7).Rows(0).Item(2) = 8

    s(7).Rows(0).Item(3) = 4

    s(7).Rows(0).Item(4) = 6

    s(7).Rows(0).Item(5) = 15

    s(7).Rows(0).Item(6) = 11

    s(7).Rows(0).Item(7) = 1

    s(7).Rows(0).Item(8) = 10

    s(7).Rows(0).Item(9) = 9

    s(7).Rows(0).Item(10) = 3

    s(7).Rows(0).Item(11) = 14

    s(7).Rows(0).Item(12) = 5

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    s(7).Rows(0).Item(13) = 0

    s(7).Rows(0).Item(14) = 12

    s(7).Rows(0).Item(15) = 7

    s(7).Rows(1).Item(0) = 1

    s(7).Rows(1).Item(1) = 15

    s(7).Rows(1).Item(2) = 13

    s(7).Rows(1).Item(3) = 8

    s(7).Rows(1).Item(4) = 10

    s(7).Rows(1).Item(5) = 3

    s(7).Rows(1).Item(6) = 7

    s(7).Rows(1).Item(7) = 4

    s(7).Rows(1).Item(8) = 12

    s(7).Rows(1).Item(9) = 5

    s(7).Rows(1).Item(10) = 6

    s(7).Rows(1).Item(11) = 11

    s(7).Rows(1).Item(12) = 0

    s(7).Rows(1).Item(13) = 14

    s(7).Rows(1).Item(14) = 9

    s(7).Rows(1).Item(15) = 2

    s(7).Rows(2).Item(0) = 7

    s(7).Rows(2).Item(1) = 11

    s(7).Rows(2).Item(2) = 4

    s(7).Rows(2).Item(3) = 1

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    s(7).Rows(2).Item(4) = 9

    s(7).Rows(2).Item(5) = 12

    s(7).Rows(2).Item(6) = 14

    s(7).Rows(2).Item(7) = 2

    s(7).Rows(2).Item(8) = 0

    s(7).Rows(2).Item(9) = 6

    s(7).Rows(2).Item(10) = 10

    s(7).Rows(2).Item(11) = 13

    s(7).Rows(2).Item(12) = 15

    s(7).Rows(2).Item(13) = 3

    s(7).Rows(2).Item(14) = 5

    s(7).Rows(2).Item(15) = 8

    s(7).Rows(3).Item(0) = 2

    s(7).Rows(3).Item(1) = 1

    s(7).Rows(3).Item(2) = 14

    s(7).Rows(3).Item(3) = 7

    s(7).Rows(3).Item(4) = 4

    s(7).Rows(3).Item(5) = 10

    s(7).Rows(3).Item(6) = 8

    s(7).Rows(3).Item(7) = 13

    s(7).Rows(3).Item(8) = 15

    s(7).Rows(3).Item(9) = 12

    s(7).Rows(3).Item(10) = 9

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    s(7).Rows(3).Item(11) = 0

    s(7).Rows(3).Item(12) = 3

    s(7).Rows(3).Item(13) = 5

    s(7).Rows(3).Item(14) = 6

    s(7).Rows(3).Item(15) = 11

    dgs7.DataSource = s(7)

    End Sub

    Khi to gi tr bin

    Sub khoitao()

    ip = txtip.Text.Split(" ", ";", ":", ".")

    'iptru = txtiptru.Text.Split(" ", " ", ";", ":", ".")

    e = txte.Text.Split(" ", ";", ":", ".")

    p = txtp.Text.Split(" ", ";", ":", ".")

    pc1 = txtpc1.Text.Split(" ", ";", ":", ".")

    pc2 = txtpc2.Text.Split(" ", ";", ":", ".")

    khoitao_s0()

    khoitao_s1()

    khoitao_s2()

    khoitao_s3()

    khoitao_s4()

    khoitao_s5()

    khoitao_s6()

    khoitao_s7()

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    End Sub

    Ct bit cui

    Function catbitcuoi(ByVal k As String) As String 'dua vao 64 bit tra ra 56 bit

    Dim i As Integer = 0

    Dim j As Integer

    Dim tam As String

    While i < 63

    For j = i To i + 6

    tam += k.Substring(j, 1)

    Next

    i = i + 8

    End While

    Return tam

    End Function

    Function hvpc1(ByVal k As String) As String

    Dim tam(63) As Char

    Dim i As Integer

    For i = 0 To 63

    tam(i) = k.Substring(i, 1)

    Next

    tam = catbitcuoi(tam)

    For i = 0 To 55

    tam(i) = k.Substring(Integer.Parse(pc1(i) - 1), 1)

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    Next

    Return tam

    End Function

    H v pc2

    Function hvpc2(ByVal str As String) As String

    Dim tam(47) As Char

    Dim i As Integer

    For i = 0 To 47

    tam(i) = str.Substring(Integer.Parse(pc2(i) - 1), 1)

    Next

    Return tam

    End Function

    Function ls(ByVal s As String, ByVal n As Integer) As String

    Return s.Substring(n, s.Length - n) + s.Substring(0, n)

    End Function

    Hm to dy kh

    Sub taodaykhoa()

    Dim khoa as String =

    "00010011001101000101011101111001100110111011110011011111111

    10001"

    Dim khoa As String = txtkhoak.Text

    Dim j As Integer

    If khoa.Length > 8 Then

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    khoa = txtkhoak.Text.Remove(8, khoa.Length - 8)

    txtkhoak.Text = khoa

    End If

    Dim tam As String

    For j = 0 To khoa.Length - 1

    tam += bi_acsii(Asc(khoa.Substring(j, 1)))

    Next

    khoa = tam

    Dim khoa1 As String = hvpc1(khoa)

    Dim d(16) As String

    Dim c(16) As String

    c(0) = khoa1.Substring(0, 28)

    c(0) = ls(c(0), 1)

    d(0) = khoa1.Substring(28, 28)

    d(0) = ls(d(0), 1)

    daykhoa(0) = hvpc2(c(0) + d(0))

    txtdaykhoa.Text += daykhoa(0) + Chr(9)

    Dim i As Integer

    For i = 1 To 15

    If i = 2 - 1 Or i = 9 - 1 Or i = 16 - 1 Then

    c(i) = ls(c(i - 1), 1)

    d(i) = ls(d(i - 1), 1)

    Else

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    c(i) = ls(c(i - 1), 2)

    d(i) = ls(d(i - 1), 2)

    End If

    daykhoa(i) = hvpc2(c(i) + d(i))

    txtdaykhoa.Text += daykhoa(i) + Chr(9)

    Next i

    End Sub

    Mt s hm x l chui nhp

    Nhp nh phn

    Sub binarynhap()

    x = txtchuoinhap.Text

    Dim y As String

    Dim i As Integer

    Dim j As Integer

    Dim sokitudu As Integer = x.Length Mod 8

    If sokitudu > 0 Then

    Dim sokituthem As Integer = 8 - sokitudu

    For i = 1 To sokituthem

    x += " "

    Next

    End If

    Dim sodaynhap As Integer = x.Length \ 8

    ReDim daynhap(sodaynhap - 1)

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    For i = 0 To sodaynhap - 1

    daynhap(i) = x.Substring(i * 8, 8)

    y = ""

    For j = 0 To daynhap(i).Length - 1

    y += bi_acsii(Asc(daynhap(i).Substring(j, 1)))

    Next

    daynhap(i) = y

    Next

    End Sub

    Function bi_acsii(ByVal int As Integer) As String

    Dim tam(7) As Char

    Dim i As Integer

    For i = 0 To 7

    tam(i) = (int Mod 2).ToString

    int \= 2

    Next

    Array.Reverse(tam)

    Return tam

    End Function

    Mt s hm m h

    Hm hn v ip

    Function hvip(ByVal x As String) As String

    Dim tam(63) As Char

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    Dim i As Integer

    For i = 0 To 63

    tam(i) = x.Substring(ip(i) - 1, 1)

    Next

    Return tam

    End Function

    Hm hn v e

    Function hve(ByVal r As String) As String

    Dim tam(47) As Char

    Dim i As Integer

    For i = 0 To 47

    tam(i) = r.Substring(e(i) - 1, 1)

    Next

    Return tam

    End Function

    Function hvp(ByVal c As String) As String

    Dim tam(31) As Char

    Dim i As Integer

    For i = 0 To 31

    tam(i) = c.Substring(p(i) - 1, 1)

    Next

    Return tam

    End Function

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    Hm hn v ip tr

    Function hviptru(ByVal c As String) As String

    Dim tam(63) As Char

    Dim i As Integer

    For i = 0 To 63

    tam(ip(i) - 1) = c.Substring(i, 1)

    Next

    Return tam

    End Function

    M h

    Function mahoa() As String

    binarynhap()

    Dim k As Integer

    Dim y As String

    For k = 0 To daynhap.Length - 1

    'x +=

    "0000000100100011010001010110011110001001101010101100110111101111"

    x = daynhap(k)

    Dim x0 As String = hvip(x)

    Dim l(15) As String

    Dim r(15) As String

    Dim i, j As Integer

    Dim l0 As String = x0.Substring(0, 32)

  • N BO MT THNG TIN H M DES

    NG TH TUYT H T012825

    Dim r0 As String = x0.Substring(32, 32)

    l(0) = r0

    For i = 0 To 31

    r(0) += (l0.Substring(i, 1) Xor f(r0, d