ASCII 値を使用して文字を整数に暗号化 (RSA) したいと考えています。例えば。「a」は 48 として暗号化されます。
暗号化の場合: c=pow(m,e)%n
c は暗号文、m は平文、(e,n) は公開鍵です。
pow(m,e) が 67^7 のように大きい場合、intまたはlongには収まりません。しかし、doubleを使用すると、モジュラス % 演算子では使用できません。そこで、for ループを使用して暗号化用にこの関数を作成しました。
int encrypt(int m, int e, int n)
{
int res=m, i;
for(i=0; i<e-1;i++)
res=(res*res)%n;
return res;
}
67である67 ^ 7mod11で機能しましたが、実際には正しくないことがわかりました。どこで間違ったのですか?