// cpu의 무리한 연산을 방지하기 위해 법-지수 연산 알고리즘 사용
// 법-지수 연산 알고리즘을 사용하여 z값 구하기
long CRSADlg::fastMod(int m, int e, int n)
{

   long z = 1 ;
  
   while (e != 0) //지수의 비트수와 일치할때까지 반복한다.
      {
  while (e % 2 == 0) // 지수의 마지막 비트가 0일때까지 반복
  {
   e = e / 2 ; // 지수의 마지막 비트수를 한 자리 줄인다.
   m = (m * m) % n; // 평문 값 계산
        }
        e--; // 지수의 특정 비트가 0이 되도록 바꾼다.
        z = (z * m) % n ; // 지수가 0일때 계산
      }
 
      return z;
}


댓글(0) 먼댓글(0) 좋아요(1)
좋아요
공유하기 북마크하기찜하기