1

I'm looking for a non-invertible bijective function mapping a 64bit value into another 64bit value.

I can't use a hash because it isn't bijective.

Could this be done with public key cryptography ? The key and function may be big. It's just the data that would be small. I would destroy the private key as I never need to decipher.

Since the application is distributed, using a public key or equivalent would be great for security.

chmike
  • 251
  • 1
  • 6
  • Not an answer for 64 bit output, but have a look at this; one of the answers would be white box cryptography, which could be useful for your use case... or not. – Maarten Bodewes May 22 '22 at 20:21
  • What about DES or any modern lightweight cipher with a fixed key? – kelalaka May 22 '22 at 22:44
  • @kelalaka I ruled it out due to the way the question was asked, but yeah, the question becomes: "non-invertable to whom?" I think the idea was to have it not invertable to anybody. TBH, I think that also rules out asymmetric crypto, unless you've got a trusted third party that generates the key pair. – Maarten Bodewes May 23 '22 at 08:00
  • @MaartenBodewes that is right. Whoever gets the key can invert the function and the original data wouldn't be concealed anymore. With public key cryptography it wouldn't be the case. I didn't detailed it in the question, but it is to be used in a distributed system. The probability for a node to be compromised or evil is high. – chmike May 23 '22 at 08:07

1 Answers1

3

I'm looking for a non-invertible bijective function mapping a 64bit value into another 64bit value.

Actually, if the function is public, then it obviously can be inverted with $O(2^{64})$ work (by simply trying every possible input). That amount of work is achievable by dedicated adversaries, hence it would indicate that what you're asking for is impossible.

poncho
  • 147,019
  • 11
  • 229
  • 360