Making Money with FP
TUTORIAL: Practical Cryptography in Erlang

Joe Armstrong
Erlang Co-Inventor

I believe in software Darwinism - survival of the fittest. All other things being equal function programming technologies will outclass traditional imperative languages.
Of course, other things are unequal so it's not just the best technology that wins.
In my talk, I'll talk about the "other things" that have to be done to get FP established and to earn money from the technology.
Spoiler: The 19$B WhatsApp acquisition by Facebook shows that not only can FP ideas earn money - but actually earn more money than in any other acquisition to date (WhatsApp messaging is programmed in Erlang :-) )
I was also involved in the foundation of Bluetail, which was one of the first functional programming companies to be sold for over 100$M.
Slides
In this tutorial I'll show how to implement a number of different crypto systems in Erlang.
The topics covered will include:
+ Fermat's Little theorem
+ Miller Rabbin prime testing
+ RSA
+ OAEP Padding
+ SHA1
+ AES
+ RC4 stream cyphers
+ Authentication Algorithms
+ Digital Signatures
+ SFS (David Mazières Self-certifying File Systems)
+ Shamir's secret sharing algorithm
+ LibNACL
Some of these (like RSA, OAEP padding and SFS) are implemented in pure Erlang using bignums - so the code is really easy to review and understand. Others make use of the crypto libraries.
The tutorial is aimed at all levels of programmers. Little knowledge of Erlang is assumed, it helps if you can read Erlang but not necessarily write it.
The algorithms presented provide a basic crypto toolkit which can be build upon to build secure applications.

Joe Armstrong is the principle inventor of the Erlang programming Language and coined the term "Concurrency Oriented Programming". He has worked for Ericsson where he developed Erlang and was chief architect of the Erlang/OTP system.
In 1998 he left Ericsson to form Bluetail, a company which developed all its products in Erlang. In 2003 he obtained his PhD from the Royal Institute of Technology, Stockholm. The title of his thesis was "Making reliable distributed systems in the presence of software errors." Today he is semi-retired but works part time as Adjunct Professor of Computer Science at the Royal Institute of Technology in Stockholm.

GitHub: joearms

Twitter: @joeerl

Back to conference page