141 reputation
6
bio website
location Las Vegas, NV
age 36
visits member for 1 year, 8 months
seen Jun 6 at 0:27

I am a software engineer, a mad scientist, a specialized generalist and a renaissance geek.

I grew up playing with test tubes and beakers, reading history and philosophy books, making model rockets, drawing just about everywhere, playing basketball, and tinkering with remote control cars and planes.

I have worked as a software engineer for over fifteen years and although C++ is my favorite plaything, I have many others toys at my disposal and use them to do amazing things. I have developed just about everything – from shiny user interfaces to low-level kernel drivers. I've worked on servers that handle tens of thousands of users, caching software that accelerates hard drives using SSDs and encrypted distributed storage & backup systems.

Currently, I am working on Ripple, a distributed payment network that allows anyone to send money to anyone else, in any currency. It is based on the same principles as the Internet: free for everyone, accessible to anyone, owned by no one, and connecting the whole world on a shared network. You really should check it out - visit us at https://ripple.com.

My interests are diverse; beyond math-based currencies, they involve next-generation interactive software and input methods, cryptography, security, software protection, cloud storage and performance optimization.

You can find me on Twitter as @nbougalis or reach me by e-mail at nikb@bougalis.net.


Apr
11
revised Is there a simple zero knowledge proof of $x$ for $b=x^x\pmod p$?
Math formatting
Apr
11
suggested suggested edit on Is there a simple zero knowledge proof of $x$ for $b=x^x\pmod p$?
Sep
9
awarded  Critic
Apr
10
awarded  Autobiographer
Mar
25
comment Where can I begin to study the math behind modern cryptography?
I don't know that your book recommendation is as good as you make it out to be. Personally, I think that "Applied Cryptography: Protocols, Algorithms, and Source Code in C" by Bruce Schneier and "Cryptography Engineering: Design Principles and Practical Applications" by Ferguson, Schneier and Kohno are both superior books in every sense of the word.
Mar
25
comment Where can I begin to study the math behind modern cryptography?
While it's certainly true that the larger Universities will have courses in cryptography, they may not be good courses. The fact is that few Universities have really good cryptography courses that will provide a solid foundation. Most don't have any at all, and they just skim over the subject. At my University, I personally found that the courses offered by the Mathematics department (particularly, courses in discrete math, Galois theory, etc) were much more in-depth and useful in theory and practice than the course offered by the Computer Science Department.
Mar
22
comment What is the difference between a hash and a permutation?
Right - I agree with both your points: it's not a hash function in the cryptographic sense, and cryptographic hash functions aren't just be mere permutations of the input.
Mar
22
awarded  Commentator
Mar
22
comment What is the difference between a hash and a permutation?
Your analysis is certainly extensive and detailed, but I must object to the statement that a "hash cannot be a permutation". Generally speaking you are correct, but given appropriate constraints a hash can be a permutation. Consider, for example, a hash function H(x) that one-to-one maps from every possible 16-bit integer to some other 16-bit integer by reversing the bits of the input (or, alternatively, XORs the incoming integer with the 16-bit value 0x029A).
Mar
22
comment What is the difference between a hash and a permutation?
@rath - Thanks, but that's alright. I think that my comment nicely supplements Oleksi's existing answer and works better in this context than as a standalone answer.
Mar
22
comment What is the difference between a hash and a permutation?
Right, a permutation will permute it's input and give you back something that is exactly the same length and has exactly the same elements as the input - just jumbled up. A hash function is a compression function - it takes something of arbitrary length and squeezes it down (or stretches it up) to a fixed length. Nothing stops you from treating a permutation as a hash function if you want to map fixed sized inputs to the same size output, but a permutation and a hash are different things.
Mar
20
comment Google is using RC4, but isn't RC4 considered unsafe?
@WatsonLadd I think it's somewhat unfair to attack an answer that, at this point, is 2 years old and make it appear as if it was "completely and utterly wrong" to begin with - especially when it isn't! Yes, new evidence has come to light about the security of RC4 when used with TLS/SSL and a comment noting that (very important) fact should be made. Yes, the answer could, possibly, be updated to account for the new information.
Dec
21
revised Why is it important that phi(n) is kept a secret, in RSA?
Mention that P and Q must be kept secret.
Dec
21
comment Why is it important that phi(n) is kept a secret, in RSA?
That's a fair point; I could have added a note about that, but the fact is that $P$ and $Q$ should be kept secret is well known and the original question was: "Why is it important that $ϕ(n)$ is kept a secret, in RSA?"
Dec
20
awarded  Teacher
Dec
20
awarded  Editor
Dec
20
revised Why is it important that phi(n) is kept a secret, in RSA?
deleted 8 characters in body
Dec
20
comment Why is it important that phi(n) is kept a secret, in RSA?
Beat me to it... perfect explanation.
Dec
20
answered Why is it important that phi(n) is kept a secret, in RSA?
Dec
20
comment Why is it important that phi(n) is kept a secret, in RSA?
Shouldn't that be: $\phi(n) = (p-1) \cdot (q-1)$?