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.