// 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;
}