CRT-Based DSP Decryption Using Montgomery Modular ...

9 downloads 7693 Views 662KB Size Report
well as digital signature. RSA is widely used in electronic commerce protocols, and is believed to be secure given sufficiently long keys such as 1024 bits or ...
2011 IEEE International Parallel & Distributed Processing Symposium

                     

                                 !" #$%$&  ' ( ()( *+   ,++-                           

                       !         

"#$%            

 &'$%()  *+  , *       *   -. / .0 1'2          

    )#"$         )) "03 4    +     &'  *               *     567  *        8 +                    67 9             9                           : 9       3"#     -. / .0 1'2 -0/;-"$#)    *         3"#    9 "0 "         >   &  &   710/      "%    > >   E &   &   &  "% > >     &    > &     &     >&    &     '  &       &   &  &    > & A   /             &                             > &  =               >                    > >    =            &     >&&      &        > &    - >     4  4      +             "% &     &     & 4       &      E    #7$        4    >    > &      E     #0$       &      & 7.      &  (           0                    &  

                        !   "   #!"$   "% &   '&          (       &  )*       "%'    +  &        ,*-%  &         &                 &   ./    01/2   "% &      &         &     !"   "% &        3 4 5 4. ,*-%   &  )*/267      "%'         #  $            "%    710/  "% &     /71.82'9:  /.0;           &           )   & &                 ,*-%  

4+ .5 6 (

    "% & B&  >     -*F #-  *  F  $  C/D C;D 9>     4      4       -*F   -*F      & -H I        "% &  & !   "                    C.D (        -H I G        &    !"  "% &    ,*-% %    >         4   & '&          C8D  C2D                   &     :  &  &    '&         >  &     ' >  +    >        C2D  ,*-% C?D   *      4           40 '&       &   & C71D %  528 532

  4    4        4     4      C77D       >  4       9>                   +     4

   '&         C70D      4         >            +     4  '&      "% &         "%'   ,*-%   & C7   &  &              &  '::  +     "% &     C7/D &   '&       )    &  " 4   :         4          3 4 ,*-%     )*      4

 C7;D > )*       >      + & %   +      4    %  ,*-%      )*     4  C7.D %>         

 4    ,*-%  '&           4 >     &                 4    3 4 ,*-%   4    4

   &      )*       > 

   >   C78D  >    "%  &     )*    "%'            710/  "% &         &

  %      '&

, &  >            4    4  >   &       E

           

         %    '&           &                          '&           &       7   '&                              A   '&                %            4      

     =                    '&        =     +                            &    +       '&         >      %      7   >               ,  & & 4   

 

     

          +        &           ,   4  4 &       1               +     9>    &      >            &     - G        A                #    $ = >              #            &   &       E          =  6+   #        &      +   E          #/$          #;$                       A         (  >  >            >    & 6+   #      >      &         "% &           4    & 4   !"  "% &   7E !            0E !                     :         4 &   "% &     



       >         

7   84  . 5 7 9: A

  

                                 #.$

530 534



       78     78  '%!!      7     78     , 4                              

 78    &        4  =    78                              78  '%!!   78    >   &          &

A  K&            "% &  & 6+   #0$   !"  "% &                        &  &   & 4   >    =           6+   #0$     & >          !"  "% &      !"   "% &       0                   

               &               0   ! +  &  !"  "% &           & + 

 4  

                                     



                                  

 E     (  E      7  0                              &                  !"   &     %    /   &          & &       =                     710/       &     7            710/  "%  710/      ;70          :   

#8$     +             &                      (          &    532 536



Flag(1 bit) Data(17 bit)

MM control run

Montgomery Multiplier

Addr

ModExp control BRAM

input/output data line control line

 5 "      061 " 1 ./ 



;70    =          '&          5%7                    4       7 #   ;70      1       $          0  &    4   =    & %   0          ;70     :   710/     <    '&           7 =                4        &           %           7#   ;70      1       $                !"   "% &   :                  =  & 6+   2             

          #?$                    > &   &     710/      :        710/    ;70      > &   

       =  6+   ?       &   &     !"     

         <       7 '&               :  0    4    6+   2 >      :     0     :   7   :           data

sel

MUX dbus 16 cores

16 cores

16 cores

16 cores

 7 ! / -1    /  6.6clk2 (200MHz)

Address counter

FIFO

run done wr rd

wr_en rd_en

Controller

wr_done rd_done

abus dbus BRAM DSP



BRAM DSP



BRAM DSP Clk1 (400MHz)

 $ ! /  6 0/  66

(    &     & >       7. !"   "%   ,   8           &      B               

      >              %    4             >       %    &       &               ,   2            6>&    7. !"   "% &       4       &      4          "%       4     &          534 538

"  6 " 06; 6 ;  (*6 7 (*6 " 0 =  # $ $0  -  /  6 7 "#$6  8  .9*+2: #5 5> #5 6 0   .6 1@   0 = -- . 0 = " 0 =  8  .9*+2:     -9-6: !  !/ 9=0 ;6: 6 0

*22 9#: '   

%$ $3@   64 ,57# .6

          &   &    4 &          &   &  , 710/  "% &   4     

  0.0   >   4          >       710/    7   + C77D        4          4  '&

! 6 B = '   '&'#         : C7;D        3 4 5 4/ ,*-%   )*        78 )*   )*/2            9      4 &        &          & ;2;  B  >   C7/D '::  + >     40   '&       )    &    &    )*         %    

  4             535 539

            %         %   + C7.D     4    )*    )     &     >       0      )*    %  G          &                  )*/267   "%'    &         :      4      >&   %   )*/267         &      5%0   >  >  +  &      4   + &                  & 7      5  !  &"

    >         !"   "% &             4  :    )*    (                      &                    > >  '&                 )*                 (     >      3 4 5 4.  & ,*-% 64             4 &        " % %% %"

& = -+ - -  A , -= 782 - 

          !    ( ')       "##:   

"'&$"(" # D G  = 8 -  

 66 /* -    ? 0 !

    

 *    

       .#

 '  '.&$'%: "## "  7 D   = F F E          !    (  '  +      ,-  )   #  &&&  &:$#( -  

5 F H F F0  F                      

  !!"     #     . / )  

 - "##&  $( 782 ! 

:  ->>    2 8   H ->> 782            

 ! 

  /             0 )  "##5

. 9 > /0  *>      782  

  "    -      ,-  ' )   #  "##'  "'"$"((

   *    ! 

% D

                     

 *   

  %*  #        &&&  '#$''   ? 0 ! 



8

/C C C  

-

/C C  

D

9

      ' 

  55  .%  5(5$5& "##'    782   !

 "  "  "#$"%

&'(

' G  F F0 F H  I +    

" )* + , * % -%#. /0 1  2 3"4 !

   0       98  

"##

          -    H "## 

    -    !  5 66 , *% 782 98:(;  1  2 3"4 ! "##&

:#$:'

:     

                "##  ':$'(

      ?       ! 

. @ /   A