Welcome Guest [Log In] [Register]
Welcome to Crypto. We hope you enjoy your visit.


You're currently viewing our forum as a guest. This means you are limited to certain areas of the board and there are some features you can't use. If you join our community, you'll be able to access member-only sections, and use many member-only features such as customizing your profile, sending personal messages, and voting in polls. Registration is simple, fast, and completely free.


Join our community!


If you're already a member please log in to your account to access all of our features:

Username:   Password:
Add Reply
Cbc Query
Topic Started: Jan 19 2007, 07:39 PM (334 Views)
insecure
Elite member
[ *  *  *  *  * ]
Consider IBC-3.

First, increase the number of rounds from 3 to 7.

Now replace the key with a 192-bit key divided into three parts. 64 of the bits are used as the key proper, and the remaining 128 are split into two 64-bit chunks, as follows (where T is a 64-bit unsigned integer type):

T PerformCrypto(T input, T *k)
{
T intermediate = ((input ^ k[0]) * k[1] + k[2]) & 0xFFFFFFFFFFFFFFFF;

T output = Transpose(intermediate);

return output;
}

Transpose(), as you will undoubtedly recall, was a 4x2 S-box. Change it to 8x8.

In your view, would these changes render the ciphertext reasonably secure against the following threat model:

Large organisation (budget for this exercise vastly unlikely to be as much as one million pounds, so call it ten million), ethics of a stoat, likelihood of gaining access to ciphertext relatively high, time of data sensitivity a maximum of 20 years.

Offline Profile Quote Post Goto Top
 
loki
Advanced Member
[ *  *  * ]
What are the advantages of 7 rounds over 3?

has the block size increased?

I like it better then ibc2, encryption has more to do with the key instead of a fixed value.

how is the sbox created? fixed or key driven?

Its sounds like a dirty organization, and I am paranoid about security. I wouldn't trust it over rijndeal if it were available.

I would like to see multiple sboxes.
beef up to PCBC mode, but fix the padding.

make the remaining key into 4 32bit values and have a delta decide which of the
four to use. Or try this.

key_decision[4][2] = {
{0x0, k[1]},
{0x0, k[2]},
{0x0, k[3]},
{0x0, k[4]}
};
input can be from an sbox, its a quick conditional even odd decider, even do nothing, odd then use this key.

(((input ^ k[0]) * k[1] + k[2]) ^ key_decision[sboxa][input & 1]) & 0xFFFFFFFFFFFFFFFF;
c(x) = 3x3 + x2 + x + 2; Find the inverse
Offline Profile Quote Post Goto Top
 
insecure
Elite member
[ *  *  *  *  * ]
The reason for increasing the number of rounds from 3 to 7 is to improve avalanching.

The block size has increased from 32 bits to 64.

The S-box is fixed, but I'm tempted to make it key-driven. On the other hand, I can't help wondering whether to do so would /weaken/ the cipher, by leaking information about the key via the S-box selected for a given encryption.

On the other hand, I could easily use a number of S-boxes, and may well do so.

The problem with using different keys (or parts of the key) for different rounds is that I don't see how to do that without breaking the Feistel Network.

Yes, it does sound like a dirty organisation, doesn't it? Furthermore, although it is external to the organisation for whom I am developing this program, it has a machine sat on the LAN and a connection to the Internet - so this machine can see every packet, and it can "phone home".

For reasons which I mustn't go into, AES is not an option.
Offline Profile Quote Post Goto Top
 
Donald
Elite member
[ *  *  *  *  * ]
"insecure"
 
For reasons which I mustn't go into, AES is not an option.

And neither is twofish or serpent?
This is incredibly intriguing, now I'm going to be staying up all night wondering about a question you can't answer. Ah, but thats the world of crypto! :)
Offline Profile Quote Post Goto Top
 
insecure
Elite member
[ *  *  *  *  * ]
Donald
Jan 29 2007, 01:26 PM
"insecure"
 
For reasons which I mustn't go into, AES is not an option.

And neither is twofish or serpent?

Right.

Sorry to sound mysterious, but I'm sure you've worked under NDAs before, so I guess you know the score.

Basically, it's a paranoia issue. Not on my part, I hasten to add.
Offline Profile Quote Post Goto Top
 
loki
Advanced Member
[ *  *  * ]
Multiple sbox's, I would incorporate Gost's, DES, and Rijndaels.

Increased rounds 32 or so, and use a buffed-up TDES scheme, if security is a factor speed shouldn't be.

Use incompatable mixing operations, xor and addition.

Bob Jenkins has some weird mixing functions that I use often in my own experiments, his site is burtleburtle something, a google would find it.

I am becoming fond of huge blocks, currently I am attempting a 16384bit transposition cipher, Though I might suggest a 8192 which is equivalent to two disk sectors.

Has any tried to use more then three encryption modes? CBC, OFB and CTR in the same scheme? I know it sounds silly and I have no basis that is anymore secure then just one mode but its gotta at least increase the difficulty of the breaking it.

c(x) = 3x3 + x2 + x + 2; Find the inverse
Offline Profile Quote Post Goto Top
 
1 user reading this topic (1 Guest and 0 Anonymous)
« Previous Topic · General · Next Topic »
Add Reply