Last updated: July 10, 2017
Welcome to the homepage of Stephen Dunn!
I'm presently a Senior Engineer at XMOS, where I work on state-of-the-art signal processing algorithms with Kevin Short. Previously, I was a software enginner at Setem Technologies and a computer science graduate student at the University of New Hampshire, where I researched motion planning and heuristic search with the UNH AI Group under advisor Wheeler Ruml. I hold a B.S. in genetics from the same institution. I'm generally interested in NP-completeness and understanding mathematics through visualization and geometrical approaches.
In 2014 I withdrew from academia due to a combination of health issues (resolved) and financial deficiencies (unresolved). For 7+ years at UNH I tutored, TA'ed, and lead study groups for students taking Intro. to Computer Science I/II, Data Structures, Machine Organization and Assembly Language Programming, Introduction to Scientific Programming, Data Structures, Intro. to Applications Programming with Visual Basic, Intro,. to Physics I/II, Intro. to Genetics, Intro to Biology I/II (with Phi Sigma), and was occasionally paid for it, too. I may have been your math, physics, chemistry, or biology tutor through Allison Neal of New England Tutors. For a brief time prior to grad school, I authored a general science column for TNH and served on the editorial board for Inquiry research journal. In 2011, I received and completed a SURF grant pursuing bioinformatics related to proto-oncogene SRC-1 under geneticist John Collins, with copious advising from Kelley Thomas and Dan Bergeron, and the motivating coursework and encouragment of biochemist Andy Lidano. I enthusiastically recommend UNH's science programs (and UNH) to prospective students, considering CEPS to be generally under-ranked. Perhaps NH politicians will consider restoring some of their massive funding cuts to public education and alleviate the corresponding tuition hikes that have cost unknown quantities of students their education—especially given recent and ongoing success within Kingsbury Hall alone, in addition to increased CS program enrollment.
My current research focus—outside of signal processing and sidelined SAT research—is rapid semiprime factorization through heuristic search (currently a variant of a variant of Parallel Retracting A*). I'm actively developing an open-source application that allows one to attempt cracking arbitrary-lengthed semiprimes (which are perhaps more familiar as RSA public keys used in asymmetric cryptography). See the wiki for a gentle introduction to semiprimes and take a glance at this paper by Scott Aaronson for a detailed collection of known facts about primes circa 2003. The semiprime project is: updated during my free time; my current primary focus outside work-related projects; significantly improved in both performance and capability since the original results were posted.
The largest reported semiprime broken so far was 84 bits in under 5 minutes, and I'll commit a “top 10” list with accompanying seed values into the repo, as maximum search depth has improved fairly regularly since around v0.3 (see current). That's a fairly large search space, at 284 possible values (≈1024). You can take a glance at this handy list of game complexities for comparison to something more familiar; at 2410 digits we're approaching Go at 1038 possible configurations, albeit from a comfortable distance. The Test.java source is a self-contained app that allows you to reproduce my results and perform custom experiments, which produce CSV files for you to further analyze. The testbed is currently my focus as I incorporate artificial intelligence and statistically-principled heuristics into the primitive collection presently available. There is also a related paper underway, which I intend to submit for publication upon the first unsolved RSA number being successfully factored (hopefully before global warming overtakes my server or the NSA spends a weekend beating me to it).
Estimating from the current rate of prorgess, I'm hopeful that the first RSA key will fall sometime in 2016, and would venture a guess it occurs via a combination of cloud-based support and the nearly-implemented multi-client search code already testable. Data structure-based improvements are also planned to accompany the distributed search effort.
In the future, I have a concept for adapting the current approach to elliptic curve cryptography; if you're mildly versed on the topic, like the semiprime stuff, and/or want someone to chat with about cryptography, consider contacting me! I'm especially amicable toward people who bothered to read this far.
I'm always happy to answer other questions relevant to content on this site or my general interests. I've enjoyed the few emails received in that vein. If I don't respond within a few days, then you were probably spam-filtered and feel free to re-send. My email hard drive space is generously paid for by Google. Speaking of, I wonder what happened to that monotonically increasing counter?
This past year especially I've received an increasing number of emails that quantitatively obey something resembling an expedited Moore's law curve of the following nature:
The remaining cases are, unfailingly, assertions of measurement inaccuracy with respect to particular biological appendages, or the trend of alarmingly more-and-more sophisticated phishing attacks. And to any scammers successfully acquiring my identity: So long, and enjoy your new benefactors.
Anyway, unless your email subject is related to one of my projects malfunctioning, unlikely *cough* as that is, instead look for help on the relevant project's homepage. For more general issues, defer to community forums like StackExchange for assistance. Henceforth, anyone still emailing me this stuff is sentenced to a permanent entry of shame on a dedicated page hosted here for all the world to see. I'll post a link once enough memorable entries accumulate (and there certainly have been a few—such as when a UC Berkeley student offered me several thousand dollars to hack Paolo Zacchia's account).
My PGP Public Key (ID: E6DFA40B) is on the MIT Public Key Server and the PGP Global Directory. It also hosted locally here along with a signature, although you should favor the (likely) more adeptly run servers just mentioned, as I don't consider my homepage's security to be a daily priority. At the very least, as always, you should double-check any key's integrity with a widely known and trusted 3rd party. To understand why in detail, I found this well-written and annotated introduction to modern https security protocols that's worth a read.
Be sure to verify the signature by importing the key and verifying its authenticity using the provided sig file:
gpg2 --verify E6DFA40B.asc.sig E6DFA40B.asc gpg: Signature made 04/20/16 16:47:14 Eastern Daylight Time using RSA key ID E6DFA40B gpg: Good signature from "Stephen Dunn (semiprime)
If you get a warning from gpg, try marking the key as trusted first:
gpg2 --edit-key E6DFA40B
You can then use the “trust” command to adjust the level to something higher.
In the example above, I have naturally set my own key's trust level to “ultimate”.
I've been notified more than once that—for unidentifiable reasons—my current picture doesn't quite look “like me”;
I'll upload a new one eventually.
Any and all content provided is here because it interests me and I think it's worth sharing, so follow links at your own discretion and please let me know if any are broken. I don't have the time to verify the continuous functionality of every site detail now that I've bothered to upload more information than just my face and email address.