This blogpost is going to be different.
Here I describe my own original idea for using integration for cryptography.
Most chances are that the idea is pointless, but I do think it's an interesting concept, and sharing it with the world costs me nothing.
When dealing with cryptographic systems, especially coming up with new ideas, one must consider mathematical rigor, which I will not be doing here.
So, dear reader, please be warned - this is a very initial idea rather than a new amazing cryptosystem.
Also be advised reader is expected to have some basic Calculus knowledge - specifically - derivation and integration.
With that, let's get going.
One concept you usually hear about is the concept of trapdoor functions.
Those are functions that are:
- Hard to reverse (computationally).
- Hard to compute unless you have some information that make it easy to compute.
Let us take RSA for example. I've explain how and why RSA works in the past but let us write a short reminder here.
To generate an RSA keypair (private-public keys), one does the following:
- Create two large random primes
$p$ and$q$ (I've mentioned how to do that in a past blogpost). - Mark
$n=pq$ and note that the Euler Totient Function value of$n$ is$\varphi(n) = (p-1)(q-1)$ . - Choose a public exponent
$e$ (usually chosen ahead of time as$e=65537$ ), and mark the public key$(e, n)$ . - Find a value
$d = e^{-1} (mod \varphi(n))$ using the Extended Euclidean Algorithm. Our private key is$d$ . - Note that
$(x^e)^d = (x^d)^e = x (mod n)$ . Thus, we can use the public key or private key for encryption or decryption.
In RSA, that
- To calculate
$d$ , we must know$\varphi(n)$ . - It's difficult to calculate
$\varphi(n)$ unless we know the prime factorization of$n$ (which are$p$ and$q$ ). - It's difficult to factorize
$n$ .
Reading about trapdoor functions made me think of computationally difficult problems.
I remembered from my university days (calculus class) that function derivation is easy, while integration is a very difficult problem.
Therefore, one idea is to define some arbitrary function
In other words:
Let us assume that
If we have such a function, then, those who possess the private key
If the function
However, let us assume (there are many assumptions in this blogpost!) that it's hard to get good approximation of the area under a and b.
Therefore, we might consider
Let us assume Alice has message m and wishes to prove she generated it. We can come up with an interactive protocol for convincing Bob that Alice generated it:
-
Alicesends the messagemtoBobin cleartext. - We assume
Alicehas the private key$F(x)$ andBob(and everyone in the world) knows the corresponding public key$f(x)$ . -
Bobgenerates two random positive numbersaandb, and attempts to approximate the area under the curve betweenm-aandm-b. That is computationally expensive (with our assumptions), so he gets a value after some time (let say,$B_t$ seconds). He then sendsaandbtoAlice. -
Alicecalculates$\int_{m-a}^{m+b} f(x) = F(m+b) - F(m-a)$ and sends that toBob, within calculation time of$A_t$ . -
Bobverifies$A_t$ is significantly lower than$B_t$ . -
Bobcan continue generating random numbersaandbuntil he's convincedAliceknowsF.
Readers might be familiar with the concept of Proof-of-Work (especially if they know about cryptocurrency).
In our case, Bob gets a "proof-by-minimal-work" from Alice - since she can almost immediately respond to Bob, it's a proof she knows the private key, without revealing it!
This idea hinges on the possibility that numerical integration is significantly harder than symbolic evaluation when the antiderivative is known, but the integrand is chaotic or difficult to estimate numerically.
Of course, this is not generally the case for smooth, well-behaved functions, so the feasibility of this idea depends on finding or constructing integrands that are:
- Easy to integrate if the primitive is known.
- Hard to integrate numerically if only the function is known.
What is that magical function
Honestly, I am not sure, but I thought about this:
With
That function (or family of functions actually) might suit us for several reasons:
- We need
$f(x) = \frac {dF(x)}{dx}$ (the public key) to be chaotic so evaluating areas under its curve is difficult. - Small changes in
$F(x)$ should cause big changes in$f(x)$ . - Function
$F(x)$ should be easy to compute.
As I mentioned, these are very preliminary thoughts.
I'd like to mention some final thoughts on the subject:
- Encoding the message
mas real numbers and generally operating within real numbers is a major concern for computer scientists and engineers. - I have no proof that the proposed function
$F(x)$ holds all assumptions I mentioned. - The assumption that calculating
$F(x)$ from a symbolic expression gets quicker and better results than standard numeric approximations for integrals needs to be addressed.
Despite all of those, I really wanted to share my thoughts, with the hope they at least might inspire people.
Stay tuned!
Jonathan Bar Or