前提・実現したいこと
Javascriptで暗号に関する演算プログラムを作成しています。
その演算の中で巨大数を用いたべき剰余の計算を行おうとしたのですが、恐らくあまりにも計算結果が大きいために結果が算出されませんでした。
計算する方法がありましたら、教えていただけますでしょうか。
該当のソースコード・エラーメッセージ
Javascript(BigInt)
1const r = //最大1024bitの乱数 2const n = //最大1024bitの数 3const a = (r ** n) % (n ** 2) 4//->RangeError: Maximum BigInt size exceeded
Javascript(BigNumber.js)
1const r = new BigNumber(//最大1024bitの乱数) 2const n = new BigNumber(//最大1024bitの数) 3const n2 = n.pow(2) 4const a = n.pow(n)mod(n2) 5//->計算結果がInfinity
試したこと
上記のソースコードのようにBigIntとBigNumber.jsに対して実装した結果、記載の通りのエラーメッセージまたは計算結果が出ました。
補足情報
Node.js上での実装でも構いませんが、ブラウザ上で実装可能であると好ましいです。
完全にJavascript上の実装でなくても、例えばJavascriptでJavaのような別言語を動かすといった方法がある場合は、その実行方法と共によろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/11/13 08:47