DES$B0E9f$N%"%k%4%j%:%`(B


DES$B$N%"%k%4%j%:%`$O!"?^(B1$B$K<($9%U%m!<$K$h$j0E9f!&I|9f$r9T$&!#(B
$B0E9f2=$K$*$1$kF~NO$O!"80!'(B64$B%S%C%H!"J?J8!'(B64$B%S%C%H$G$"$k!#(B $BI|9f2=$K$*$1$kF~NO$O!"0E9f2=$KMQ$$$?$b$N$HF1$880!'(B64$B%S%C%H!"0E9fJ8!'(B64 $B%S%C%H$G$"$k!#(B

$B80!"F~NOJ8$H$b$K(B64$B%S%C%H$G$"$k$,!"%S%C%H%$%s%G%/%9$O:G>e0L%S%C%H$G$"$k(B $B:8B&$,(B1$B!":G2<0L%S%C%H$G$"$k1&B&$,(B64$B$H$9$k!#0J8e!"80$r(Bkey$B!"F~NOJ8$r(Binput$B$H(B $B$7$F@bL@$9$k!#(B

$B80$O(B64$B%S%C%H$G$"$k$,!"(B8$B%S%C%HKh$K4q?t%Q%j%F%#$,IU2C$5$l$F$$$k!#Nc$($P!"(B key[1:7]$B$N4q?t%Q%j%F%#$,(Bkey[8]$B$KIU2C$5$l$F$$$k!#$=$N$?$a!"80$O
$B$^$?!"80(Bkey$B$+$i(B key schedule (KS) $B=hM}$K$h$C$F!"(B48$B%S%C%HD9$G(B16$B8D$NI{80!J(BK1$A!+(BK16$B!K$r(B $B@8@.$9$k!#$7$?$,$C$F?^(B1$B$OF~NOJ8!J(Binput$B!K$HI{80!J(BK1$A!+(BK16$B!K$,F~NO$H$J$C$F$$$k!#(B


$B?^#1!'0E9f2=$N=hM}(B

$B=hM}$N
  • $BF~NOJ8!J(Binput$B!K$KBP$7$F(B Initial Permutation (IP) $B=hM}$r9T$&!#(B
    $B6qBNE*$K$O0J2<$N%F!<%V%k$rMQ$$$?%S%C%HCV49$r9T$&!#(BIP$B=hM}8e$N=PNO$O!"(B
    input[58], input[50], ... , input[7]
    $B$N$h$&$K$J$k!#(B
    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
    
  • IP$B=hM}$N=PNO$N:8B&(B32$B%S%C%H$r(BL0$B!"1&B&(B32$B%S%C%H$r(BR0$B$H$9$k!#(B

  • R0 $B$H(B $BI{80(B K1 $B$r(B f$B4X?t$KF~NO$9$k!#(B

  • f$B4X?t$N=PNO$H(BL0$B$N%S%C%HKh$NGSB>E*O@M}OB$r$H$k!#(B

  • R0 $B$r(B L1$B!"GSB>E*O@M}OB$N=PNO$r(B R1 $B$H$7$F!"%9%F%C%W(B3$A!+(B5$B$r(B16$B2s7+JV(B $B$9!#(B
    $BC"$7!"(B16$B2sL\$N=PNO$K$K$D$$$F$O?^$K<($9$h$&$K!"(BR16$B$,:8B&(B32$B%S%C%H!"(B L16$B$,1&B&(B32$B%S%C%H$H$J$k$3$H$KCm0U$9$k!#(B

  • R16$B$H(BL16$B$rO"7k$7$?(B64$B%S%C%H$KBP$7$F!"(BInverse Initial Permutation (IP-1) $B=hM}$r9T$&!#$3$N=PNO$,0E9fJ8$H$J$k!#(B
    IP-1$B=hM}$O0J2<$N%F!<%V%k$rMQ$$$?%S%C%HCV49$r9T$&!#(B
    40 8 48 16 56 24 64 32
    39 7 47 15 55 23 63 31
    38 6 46 14 54 22 62 30
    37 5 45 13 53 21 61 29
    36 4 44 12 52 20 60 28
    35 3 43 11 51 19 59 27
    34 2 42 10 50 18 58 26
    33 1 41  9 49 17 57 25
    
  • $BI|9f$K$D$$$F$O!"?^(B1$B$N=hM}$r5U$K9T$&$N$G$O$J$$!#(B
    $B?^(B1$B$N%U%m!<$K$*$$$F!"I{80$N=g=x$r(B K16, K15, ... , K1 $B$HM?$($k$3$H(B $B$K$h$C$FI|9f$r9T$&$3$H$,$G$-$k!#(B
    f$B4X?t$N=hM}(B

    $B f$B4X?t$NF~NO$O!"(BR$B!'(B32$B%S%C%H$HI{80(BK:48$B%S%C%H$G$"$k!#(B
    $B?^#2!'(Bf$B4X?t$N=hM}(B

    $B=hM}$N
  • E $B%S%C%HA*Br=hM}$K$h$j!"(BR$B!'(B32$B%S%C%H$+$i(B48$B%S%C%H$N=PNO$rF@$k!#(B
    $B!!!!0J2<$N%F!<%V%k$rMQ$$$F:n@.$9$k!#(B
    32  1  2  3  4  5
     4  5  6  7  8  9
     8  9 10 11 12 13
    12 13 14 15 16 17
    16 17 18 19 20 21
    20 21 22 23 24 25
    24 25 26 27 28 29
    28 29 30 31 32  1
    
  • E $B%S%C%HA*Br=hM}$K$h$jF@$i$l$?(B48$B%S%C%H$HI{80(BK$B$r%S%C%HKh$KGSB>E*(B $BO@M}OB$r$H$k!#(B

  • $BGSB>E*O@M}OB$K$h$jF@$i$l$?(B48$B%S%C%H$r(B6$B%S%C%HKh$KJ,3d$7!":8$+$i=gHV(B $B$K(B S1, S2, ... , S8 $B$N3F4X?t$KF~NO$9$k!#(BS$B4X?t$N=PNO$O3F(B4$B%S%C%H$G$"$k$?(B $B$a!"(BS$B4X?tDL2a8e$O(B32$B%S%C%H$K$J$k!#(B

    S$B4X?t$N=hM}FbMF$r!"(BS1$B$rNc$K$7$F@bL@$9$k!#(B
    S$B4X?t$X$NF~NO$r(BSin$B$H$9$k$H$-!"0J2<$NJQ49%F!<%V%k$rMQ$$$F(B4$B%S%C%H$KJQ49(B $B$9$k!#(B
    Row                 Column Number
    No.|  0  1  2 3  4  5  6  7  8  9 10 11 12 13 14 15
    --------------------------------------------------
     0 | 14  4 13 1  2 15 11  8  3 10  6 12  5  9  0  7
     1 |  0 15  7 4 14  2 13  1 10  6 12 11  9  5  3  8
     2 |  4  1 14 8 13  6  2 11 15 12  9  7  3 10  5  0
     3 | 15 12  8 2  4  9  1  7  5 11  3 14 10  0  6 13
    
    $BJQ49J}K!$O0J2<$N$H$*$j$G$"$k!#(B
    1. Sin[1] $B$H(B Sin[6] $B$rO"7k$7$F(B2$B?J?t$H$7$F $B$3$l$r(B Row No. $B$H$9$k!#(B

    2. Sin[2:5] $B$N(B4$B%S%C%H$r(B2$B?J?t$H$7$F $B$3$l$r(B Column Nunber $B$H$9$k!#(B

    3. Row $B$H(B Column $B$+$i7hDj$5$l$k(B10$B?J?tCM$r(B4$B%S%C%H$N(B2$B?J?tCM$H$7!"(B
      $B$3$l$r(B S$B4X?t$N=PNO$H$9$k!#(B


  • S$B4X?t$N=PNO(B32$B%S%C%H$KBP$7(BP$B=hM}$r9T$$!"(B32$B%S%C%H$N7k2L$rF@$k!#(B
    P$B=hM}$O!"0J2<$N%F!<%V%k$rMQ$$$F%S%C%H$NJB$S49$($r9T$&!#(B
    $B$3$N=PNO$r(Bf$B4X?t$N=PNO$H$9$k!#(B
    16  7 20 21
    29 12 28 17
     1 15 23 26
     5 18 31 10
     2  8 24 14
    32 27  3  9
    19 13 30  6
    22 11  4 25
    
    $B:G8e$K!"(BS2$A!+(BS8$B$N%F!<%V%k$r<($9!#(B
    S2
    15  1  8 14  6 11  3  4  9  7  2 13 12  0  5 10
     3 13  4  7 15  2  8 14 12  0  1 10  6  9 11  5
     0 14  7 11 10  4 13  1  5  8 12  6  9  3  2 15
    13  8 10  1  3 15  4  2 11  6  7 12  0  5 14  9
    
    S3
    10  0  9 14  6  3 15  5  1 13 12  7 11  4  2  8
    13  7  0  9  3  4  6 10  2  8  5 14 12 11 15  1
    13  6  4  9  8 15  3  0 11  1  2 12  5 10 14  7
     1 10 13  0  6  9  8  7  4 15 14  3 11  5  2 12
    
    S4
    7  13 14  3  0  6  9 10  1  2  8  5 11 12  4 15
    13  8 11  5  6 15  0  3  4  7  2 12  1 10 14  9
    10  6  9  0 12 11  7 13 15  1  3 14  5  2  8  4
     3 15  0  6 10  1 13  8  9  4  5 11 12  7  2 14
    
    S5
     2 12  4  1  7 10 11  6  8  5  3 15 13  0 14  9
    14 11  2 12  4  7 13  1  5  0 15 10  3  9  8  6
     4  2  1 11 10 13  7  8 15  9 12  5  6  3  0 14
    11  8 12  7  1 14  2 13  6 15  0  9 10  4  5  3
    
    S6
    12  1 10 15  9  2  6  8  0 13  3  4 14  7  5 11
    10 15  4  2  7 12  9  5  6  1 13 14  0 11  3  8
     9 14 15  5  2  8 12  3  7  0  4 10  1 13 11  6
     4  3  2 12  9  5 15 10 11 14  1  7  6  0  8 13
    
    S7
     4 11  2 14 15  0  8 13  3 12  9  7  5 10  6  1
    13  0 11  7  4  9  1 10 14  3  5 12  2 15  8  6
     1  4 11 13 12  3  7 14 10 15  6  8  0  5  9  2
     6 11 13  8  1  4 10  7  9  5  0 15 14  2  3 12
    
    S8
    13  2  8  4  6 15 11  1 10  9  3 14  5  0 12  7
     1 15 13  8 10  3  7  4 12  5  6 11  0 14  9  2
     7 11  4  1  9 12 14  2  0  6 10 13 15  3  5  8
     2  1 14  7  4 10  8 13 15 12  9  0  3  5  6 11
    

    Key Schedule (KS) $B$K$h$kI{80@8@.(B

    KS$B=hM}$O!"(B64$B%S%C%H$N80(BKEY$B$rF~NO$7!"(B48$B%S%C%HD9$G(B16$B8D$NI{80!J(BK1$A!+(BK16$B!K$r@8@.(B $B$9$k!#(B
    $B?^(B3$B$K(BKS$B=hM}$NN.$l$r<($9!#(B
    $B?^(B3$B!'(BKey Schedule (KS) $B$N=hM}(B

    $BI{80(BK1$A!+(BK16$B$O0J2<$N
  • $B80(BKEY$B$KBP$7(B Permuted Choice 1 $B=hM}$r9T$&!#(B
    PC-1 $B=hM}$O$r9T$&:]$K$O!"(B64$B%S%C%H$N(BKEY$B$KBP$7$F!"0J2<$N(BPC-1C$B%F!<%V%k$r(B $BMQ$$$F%S%C%H$NJB$SJQ$($r9T$$!"(B28$B%S%C%H$N(BC0$B$rF@$k!#(B
    $B$^$?!"(B64$B%S%C%H$N(BKEY$B$KBP$7$F!"0J2<$N(BPC-1D$B%F!<%V%k$rMQ$$$F%S%C%H$NJB$S(B $BJQ$($r9T$$!"(B28$B%S%C%H$N(BD0$B$rF@$k!#(B
    PC-1C
    57 49 41 33 25 17  9
     1 58 50 42 34 26 18
    10  2 59 51 43 35 27
    19 11  3 60 52 44 36
    
    PC-1D
    63 55 47 39 31 23 15
     7 62 54 46 38 30 22
    14  6 61 53 45 37 29
    21 13  5 28 20 12  4
    
  • 28$B%S%C%H$N(BC0$B$*$h$S(BD0$B$KBP$7$F8D!9$K:8%m!<%F!<%H%7%U%H$r9T$$!"%7%U(B $B%H8e$N7k2L$H$7$F!"(BC1$B$*$h$S(BD1$B$rF@$k!#(B
    $B:8%m!<%F!<%H%7%U%H$N%7%U%HNL$O(B1$B%S%C%H$^$?$O(B2$B%S%C%H$G$"$j!"2?2sL\$N%m!<(B $B%H!<%H%7%U%H$r9T$&$+$K$h$C$F%7%U%HNL$,0[$J$k!#(B
    $B%7%U%HNL$O!"0J2<$N$h$&$K;XDj$5$l$F$$$k!#(B
    $B2s?t!'(B     1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
    $B%7%U%HNL!'(B 1 1 2 2 2 2 2 2 1  2  2  2  2  2  2  1
    
    $BNc$($P!"(B1$B2sL\$N%7%U%H$G!"(BC1$B$*$h$S(BD1$B$r5a$a$k$H$-$N%7%U%HNL$O(B1$B$H$9$k!#(B $B$^$?!"(B3$B2sL\$N%7%U%H$G!"(BC3$B$*$h$S(BD3$B$r5a$a$k$H$-$N%7%U%HNL$O(B2$B$H$9$k!#(B

  • $B%7%U%H$7$?7k2L(BC1$B$*$h$S(BD1$B$KBP$7$F!"(BPermuted Choice 2 $B=hM}$r9T$&!#(B
    PC-2$B=hM}$O!"(BC1$B$H(BD1$B$rO"7k$7$?(B56$B%S%C%H$KBP$7$FJB$S49$($r9T$$!"(B48$B%S%C%H$N(B $BI{80(BK1$B$rF@$k!#(B
    $BJB$S49$($N:]$K$O!"0J2<$N%F!<%V%k$rMQ$$$k!#(B
    14 17 11 24  1  5
     3 28 15  6 21 10
    23 19 12  4 26  8
    16  7 27 20 13  2
    41 52 31 37 47 55
    30 40 51 45 33 48
    44 49 39 56 34 53
    46 42 50 36 29 32
    
  • $B>e5-!"(B2.$A!+(B3.$B$N
    $B;29MJ88%(B
    DATA ENCRYPTION STANDARD (DES)
    FEDERAL INFORMATION PROCESSING STANDARDS PUBLICATION (FIPS PUB 46-3),
    U.S. DEPARTMENT OF COMMERCE/National Institute of Standards and Technology,
    Oct. 25, 1999.
    http://csrc.nist.gov/publications/fips/fips46-3/fips46-3.pdf