Cryptography Stack Exchange is a question and answer site for software developers, mathematicians and others interested in cryptography. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

In many crypto papers I see they use a Real World / Ideal World Paradigm. However, I have never see the source code of such Simulators that try to simulate the adversary. Could somebody point me to source code that simulates an adversary in the ideal world? How does this code look like ?

An example of a paper that uses this paradigm is on pg. 1244 of this paper.

share|improve this question
The paradigm is used to prove security. I don't think anyone codes it up. – mikeazo Jan 16 '14 at 2:43
People from theoritical cryptography would commit suicide if they ever discover code for simulation based security – curious Jan 16 '14 at 10:22
If you have specific questions that you were hoping to answer by looking at code, I'd suggest writing them up on here. – mikeazo Jan 16 '14 at 14:15
No code, but a somewhat related question explaining the term "simulator" as used in the paper you've been reading. And in case you didn't find it yet, "Simulation-based security with inexhaustible interactive Turing machines" might be an interesting read for you too. – e-sushi Jan 16 '14 at 14:20
Can you clarify why you are looking for such source code? It is true that a simulator would never be run in the real world, but source code for a simulator might help in understanding what the simulation is doing. – user432944 Jan 17 '14 at 3:25
up vote 3 down vote accepted

There is no source code to simulate this. It is a theoretic construct used in security proofs. Cryptography is often about the very limits of what could be calculated. This is quite far from actual programming source code.

For example, quite often something is called "efficient" in cryptography, if the algorithm runs in polynomial time (for some parameter). However, if the source code of a program actually requires $n^{1000}$ seconds then it still runs in polynomial time, but it is not possible to calculate it for $n=2$ (over $10^{293}$ years).

The adversary can not be represented by a specific algorithm, but the adversary is the union of all polynomial time algorithms (or said differently: He is limited to poly-time algorithms, but not specified which algorithms).

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.