ไม่มีการแทนที่การคูณแบบโมดูลาร์ในระบบเข้ารหัสลับของคำถาม บางภาษาเช่น Python ทำให้ง่ายสำหรับการศึกษา เท่านั้น.
ใน RSA และ DSA และการเข้ารหัสลับ ECC ในระดับที่น้อยกว่า secp256k1 หรือ secp256r1หนึ่งต้องคำนวณ $b^e\bmod m$ สำหรับขนาดใหญ่ $e$. อัลกอริทึมที่เร็วที่สุด (เช่น การยกกำลังหน้าต่างบานเลื่อน) ดำเนินการเกี่ยวกับ $\log_2 อี$ โมดูลาร์กำลังสองและอื่น ๆ $\ประมาณ0.2\,\log_2 e$ การคูณแบบแยกส่วน อย่างไรก็ตาม มีอัลกอริทึมอื่นๆ ที่มีราคาแพงกว่าเล็กน้อยเท่านั้น (เช่น บันไดของมอนต์โกเมอรี่) ที่อาจดีกว่าจากมุมมองของการรักษาความปลอดภัยจากช่องด้านข้าง
แต่ละโมดูลาร์คูณหรือกำลังสองโมดูโล $m$สำหรับการบวกหรือคูณจุดด้านบนหรือ (ใน ECC) ด้วยสเกลาร์ มีค่าใช้จ่ายด้านการคำนวณเพิ่มขึ้นมากที่สุดเช่น $(\log ม)^2$ เมื่อใช้อัลกอริทึมที่เรียนในโรงเรียนประถมที่ปรับให้เข้ากับคำในคอมพิวเตอร์แทนตัวเลข ที่สามารถลดลงได้ถึง $(\log m)^{\ประมาณ1.6}$ กับ คาราสึบะ หรือ $(\log ม.)^{\ประมาณ1.5}$ กับ ทูม-3แต่ใน ECC โมดูลัส $m$ ไม่ใหญ่พอที่จะจ่ายมาก ($m$ เป็น 'เพียง' หลายร้อยบิตใน ECC แทนที่จะเป็นหลายพันใน RSA/DSA)
เมื่อพัฒนาลายเซ็นหรือการเข้ารหัสโดยใช้ secp256k1 หรือ secp256r1 ตั้งแต่เริ่มต้นเพื่อวัตถุประสงค์ทางการศึกษา โดยทั่วไปจะมีขั้นตอนต่างๆ ดังนี้
- รับสิ่งที่ใช้งานได้โดยการสร้าง การเพิ่มจุดและเพิ่มเป็นสองเท่าในพิกัดคาร์ทีเซียน ด้านบนของการคูณแบบโมดูลาร์ จากนั้นการคูณจุด จากนั้นลายเซ็นหรือ/และการเข้ารหัส
- ทำให้การทำงานเร็วขึ้นมากโดยใช้การแสดงจุดที่ดีขึ้น เช่น พิกัดเชิงโครง (ซึ่งทำให้สามารถหักล้างการผกผันของโมดูลาร์ที่มีราคาแพงได้จนกว่าจะสิ้นสุดการคูณจุด)
- การทำให้มันทำงานอย่างปลอดภัยซึ่งเป็นเรื่องยากมากและโดยทั่วไปแล้วต้องมีการเขียนใหม่หลายสิ่งตั้งแต่เริ่มต้น
- การเพิ่มประสิทธิภาพสิ่งเหล่านี้สามารถทำได้ในทุกขั้นตอน แต่ให้ไตร่ตรองว่า "การเพิ่มประสิทธิภาพก่อนวัยอันควรเป็นรากเหง้าของความชั่วร้ายทั้งหมด"
การอ้างอิงออนไลน์บางส่วนเกี่ยวกับการคูณและการยกกำลังแบบโมดูลาร์ (ไม่ใช่ ECC):