1
$\begingroup$

this is my first time posting here, so please be gentle! As may be obvious, I'm an amateur who knows very little cryptanalysis.

The goal

I've been playing around trying to make a simple but strong-enough cipher for a fictional world without electricity - like Middle Earth, say. Actually, even better: imagine it is post-apocalypse, so there are still modern-day crypto books, but no computers.

This means that it should be a "hand" cipher, quick to compose, usable for short messages, and hard to attack other than by brute force. Solitaire, for example, is too time-consuming and error-prone to be worth the security in such a scenario. As I figure it, about 20 bits of entropy would be plenty.

The proposed cipher

My thought is basically a much-simplified VIC cipher: use a straddled checkerboard to convert the message to numbers, and then add it (mod 10) to a pseudo-random stream of numbers. The simplest way to get the number stream seems to be lagged Fibonacci - seeded by a secret number key plus a random serial number embedded in each message. (See worked example below.)

It seems very quick to do, and easily teachable - but is there some easy attack besides brute-forcing? If necessary it could be complicated by keying the straddled checkerboard, or even by adding double-transposition in between. But would that be necessary? I couldn't find anything on cryptanalysis for lagged Fibonacci PRNGs - but maybe I'm missing something?

Worked example

So to encode "PLAIN_TEXT" we straddle

  0123456789
  NO-EAT-SIR
2 BCDFGHJKLM
6 PQUVWXYZ#_

to get 60284 80695 36556 (pad with as many of '6969' as needed).

Then we get the seed for the lagged Fibonacci PRNG by adding (mod 10 per-digit) the secret key 92994 and per-message serial number 16747. The result is 08631. (The secret key here is 16.6 bits of entropy, and the period for a 5-digit seed is almost always more than 780 digits from what I can tell.)

Add the first digit of this seed to the second, the second to the third, and so on, continually appending to the end as you go:

08631
-----
84949
23331
56646

Finally, add the generated numbers to the straddled numbers:

60284 80695 36556
84949 23331 56646
----- ----- -----
44123 03926 82192

and add the serial last (or at some agreed spot) to get the ciphertext 44123 03926 82192 16747.

$\endgroup$
8
  • $\begingroup$ Sorry for having to be strict, but unfortunately these kind of requests for review are off topic on the site. It is possible to ask specific questions with regard to cryptanalysis for lagged Fibonacci PRNGs though. $\endgroup$
    – Maarten Bodewes
    May 11, 2019 at 21:35
  • $\begingroup$ Okay sorry thanks for your patience. I'll try to compose a more useful / generic question. $\endgroup$ May 11, 2019 at 22:02
  • $\begingroup$ I did see this thread before; maybe that's my best answer for pointers to LFG weaknesses. Thanks. $\endgroup$ May 11, 2019 at 22:09
  • 1
    $\begingroup$ You may be interested in FISHing. $\endgroup$
    – Paul Uszak
    May 11, 2019 at 22:13
  • $\begingroup$ Thank you @PaulUszak - I am looking at the paper but not sure how it helps for this scenario - can you tell me more? $\endgroup$ May 11, 2019 at 22:44

0