http://nbbs.naver.com/action/list.php?id=tamusic_0&work=list&st=&sw=&cp=1


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

// 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)
좋아요
공유하기 북마크하기찜하기
 
 
 

int CRSADlg::GetPrimaryKey(int first, int second)
{
 int b,x,s,q,e,w,a;
 b = second;
 a = first;
 x = 0;
 s = 1;

 while(a != 1)
 {
  q = b / a;
  e = b - a*q;
        w = x - s*q;
        b = a;
        a = e;
        x = s;
        s = w;
    }
 if(s < 0)
  s = s + second;
    return s;

}

 


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

if(m_t > 0)
  {
   m_r = m_s % m_t;
   m_s = m_t;
   m_t = m_r;
  }


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