Difference between revisions of "83Plus:BCALLs:801B"

From WikiTI
Jump to: navigation, search
m
 
m
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
'''Note:''' Do not take the information on this template page as actual documentation!
+
[[Category:83Plus:BCALLs:By_Name:Cryptography|RSAValidate]] [[Category:83Plus:BCALLs:By_Name:Math:Big Integer|RSAValidate]] [[Category:83Plus:BCALLs:By_Name:Math|RSAValidate]] [[Category:83Plus:BCALLs:By_Name|RSAValidate]] [[Category:83Plus:BCALLs:By_Address|801B - RSAValidate]]
 
+
Use this template for ROMCalls on calculators that don't use banked OS calls. Simply replace every occurance of bcall/BCALL/b_call with romcall/ROMCall/call.
+
 
+
The BCALLs are named by their b_call address, in hexadecimal. An example is [[83Plus:BCALLs:4009]].
+
 
+
Also, please put the following code (edited to reflect your call) in your page:
+
NaodW29-nowiki63fede372ec9e38600000001
+
This will cause your page to show in the appropriate categories. (Change the ProveTheRiemannHypothesis, 0042, and Utility to match your call. Also, change the 83Plus to whatever category, and change the BCALLs to ROMCalls if needed.) You may put a BCALL in any number of "By Name" categories. Put it in all the ones that make sense.
+
 
+
----
+
 
+
 
== Synopsis ==
 
== Synopsis ==
'''Official Name:''' ProveTheRiemannHypothesis
+
'''Official Name:''' RSAValidate
  
'''BCALL Address:''' 0042
+
'''BCALL Address:''' 801B
''Use "Call Address" for regular 83.''
+
  
Proves the Riemann Hypothesis, storing the proof in an AppVar.
+
Raises a big integer to the 17th power.
  
 
=== Inputs ===
 
=== Inputs ===
* [[83Plus:RAM:8478|OP1]]: AppVar to save proof into
+
* HL points to the signature, a [[83Plus:OS:Big_Integers|big integer]]
* HL: Maximum length of proof, in pages (must be at least 200)
+
* [[83Plus:RAM:8000|8000]] holds the modulus, another big integer
* bit proofCorrect, (iy + proofFlags): Set to generate a correct proof
+
  
 
=== Outputs ===
 
=== Outputs ===
* Proof stored in AppVar
+
* [[83Plus:RAM:8478|OP1-OP6]] hold the plaintext, a big integer
* Zero Flag: Set if successful
+
* DE points to [[83Plus:RAM:8478|OP1]]
  
 
=== Destroys ===
 
=== Destroys ===
* af
+
* All registers
 +
* [[83Plus:RAM:8100|8100h]]: 130-byte area which the multiplication routine uses to store its result
 +
* [[83Plus:RAM:8182|8182h]]: 65-byte area used as the first argument to the multiplication routine
 +
* [[83Plus:RAM:81C3|81C3h]]: 65-byte area used as the second argument to the multiplication routine
  
 
== Comments ==
 
== Comments ==
This B_CALL proves the Riemann Hypothesis, giving a proof under the required number of pages. It does this by randomly guessing proofs until it finds one that works. Needless to say, the calculator's batteries will run out before this B_CALL completes.
+
This BCALL takes a large integer pointed to by HL and raises it to the 17th power (modulo the current public key.) The OS uses this to decrypt RSA signatures, such as those used for certificate blocks.
 
+
== Example ==
+
  NaodW29-nowiki63fede372ec9e38600000002
+
 
+
== Credits and Contributions ==
+
* '''/dev/null:''' For not answering my questions about this B_CALL
+

Latest revision as of 20:51, 29 March 2005

Synopsis

Official Name: RSAValidate

BCALL Address: 801B

Raises a big integer to the 17th power.

Inputs

  • HL points to the signature, a big integer
  • 8000 holds the modulus, another big integer

Outputs

  • OP1-OP6 hold the plaintext, a big integer
  • DE points to OP1

Destroys

  • All registers
  • 8100h: 130-byte area which the multiplication routine uses to store its result
  • 8182h: 65-byte area used as the first argument to the multiplication routine
  • 81C3h: 65-byte area used as the second argument to the multiplication routine

Comments

This BCALL takes a large integer pointed to by HL and raises it to the 17th power (modulo the current public key.) The OS uses this to decrypt RSA signatures, such as those used for certificate blocks.