Progress towards implementing modular exponentiation in PHP, and developing algorithms to use public-keys:
- Update 2009.Mar.07: symcbean showed me a built-in PHP module called "BC", which I tried and found to work satisfactorily. I'll need to convert back and forth between byte-vectors and decimal-digit-strings, but that won't be too difficult using BC to do the arithmetic needed for conversion.
- Update 2009.Aug.20: I have designed and implemented a way to covertly bootstrap a public-key cryptosystem across an insecure link between my Macintosh and the remote Unix shell account. Adaption of this idea should allow me to bootstrap public-key cryptosystems linking all the various components on different machines.
- Update 2010.Apr.24: First draft of full design of using public-key cryptosystem to control satellite servers
- Update 2010.Jul.29: I tried using BC here on the shell machine, but it's not available in PHP version 5.2.6. I found mention of another similar module called gmp, but it's not available either. I posted another article in that thread to ask for help.
- Update 2010.Jul-Aug: I wrote my own version of big-integer decimal-string arithmetic, which is slow but usable for small powers used in public key (encrypt or verify signature).
- Update 2010.Aug-Sep: I wrote an interface between PHP and Common Lisp whereby PHP writes s-expressions telling Lisp what big-integer-power task to perform, and Lisp writes the results in XML to be parsed by PHP. This takes only a half second to re-start Lisp and about 5 milliseconds for Lisp to do the arithmetic, which is fast enough for private key (sign or decrypt).
- Update 2010.Nov.10: I've finished implementing covert bootstrap of cryptosystem from bootMaster (Lisp) to remote PHP/MySQL site, and have started writing covert commands:
Nov.12: ListTables = List tables in remote DB
Nov.12: ListUsers = List NewEco users
- Update 2010.Dec.21: I've finished implementing whole process of putting funds into escrow, setting up signed&encrypted voucher+request (ECHO for test purposes), passing control to Unix, fetching&decrypting, doing the requested task, sending back signed&encrypted receipt+result, passing control back to NewEco, moving spent funds from escrow to master account and refunded funds back to user's account. tweet
TOP