# Are there encryption schemes that can be performed using an adding machine?

There's been a lot of talk about encryption that can be done by hand, but what if the user is allowed an adding machine?

Let's say addition, subtraction, multiplication, and division are easy. Memory (i.e. the user writing things down) is possible but undesirable. Are there any good encryption algorithms that can be performed like this?

That means you have a turing machine, using a small memory is ok, but wasting memory is not desirable (as usual).

You can do all known encryption algorithms with that.

• If we restrict ourselves to the exact 4 simple operations of the question, bit manipulation becomes hard. So XOR, left and right shifts /rolls are pretty cumbersome. Not impossible, but tricky. Aug 13, 2017 at 12:22
• I would disagreed with all known... I believe that the spirit of the question doesn't allow for hand/calculator processing of 14 AES rounds x 100 blocks of data + 1000 SHA rounds of a KDF. I'm often wrong though... Aug 13, 2017 at 12:25
• Well, I wouldn't call 100 data blocks (instead of one) part of the algorithm. Same for multiple repetitions of the SHA, for me they are not part of SHA. ... and SHA isn't even an "encryption" scheme. Aug 13, 2017 at 12:42
• About bit operations, the data could very well be in binary format in our Turing machine. Setting a bit to 0, with these 4 operations, could be a multiplication of 2 (including the usual overflow rules, and/or thinking as algebraic structure, or whatever), setting to 1 is setting to 0 and then adding 1, and flipping is just adding 1. ... Sure, it's a bit cumbersome per hand, but there are no hard time limits here. Aug 13, 2017 at 12:45
• I think that they're implied (otherwise the question becomes moot), but we'll have to wait for the horse's mouth. Aug 13, 2017 at 13:14

Many lattice based cryptosystems are constructed using linear algebra, which means they utilize little more then multiplication and addition operations (sometimes combined in fancy ways).

Assuming that you find an algorithm that is simple enough to perform mentally or with a simple calculator, the next practical problem will probably end up being the size of the numbers involved.

You cannot obtain any meaningful security if your numbers are not large enough. For example, if your brain or calculator can only deal with numbers that are less then 64-bits, then it does not matter if you have a provably secure algorithm - any real adversary can simply guess your key material.

Conventional wisdom says that you need at least 80-bit numbers to stave off basic brute force attacks. Conventional wisdom also says that normal people can't do math on 80+ bit numbers, but your adding machine/calculator might be able to deal with it. Of course, it's possible that your "adding machine" that can operate on big numbers is actually just a small computer in disguise, which means you'll effectively end up back at regular encryption software running on a computer...