# Tag Info

## Hot answers tagged des

9

Parity of DES key bytes was introduced on request of US authorities during the design of DES in the late 1970s: it mitigates the risk of accidental key alteration; in particular, any all-zeros or all-ones byte of the key is rejected by the mandatory odd parity check, and any one-bit alteration is caught, which are advantages from a functionality ...

7

DES is slow in software because it was designed back in the early 70's even before the 8086 processor existed, and uses several bit oriented operations that are just not implemented efficiently in a processor with a word oriented instruction set. Its intended product was ASIC hardware designs, in which DES runs quickly. DES hardware processors are quite ...

7

They are there to check if the key was indeed correctly retrieved. It could for instance be that the key is a result of key decryption or key agreement. In that case, or simply during transmission, wrong keys are used. According to NIST FIPS 46-3: The 8 error detecting bits..." Or even better, Wikipedia states ANSI INCITS 92-1981), section 3.5: One ...

6

DES is slow compared to AES including in hardware because for comparable security we must use 3DES, which triples the number of rounds per block, to 48 for 3DES versus 10, 12, or 14 for AES; DES's block size is 64 bits, half of AES's 128 bit; so when encrypting a sizable block of data, 3DES does more rounds that AES by a factor of 96/10, 96/12, or 96/14; ...

6

There is a very interesting paper that relates to this exact question (but you wouldn't guess it from the title). The paper is titled Efficient Dissection of Composite Problems, with Applications to Cryptanalysis, Knapsacks, and Combinatorial Search Problems. In Section 3, the paper considers the multiple encryption problem and gives novel attacks that are ...

4

Triple DES is a block cipher. (Specifically, it's a variant of the old DES block cipher with better security, but several times lower performance.) You can use it to encrypt small blocks of data (64 bits = 8 bytes, for Triple DES), but what it's really useful for is as a building block for other cryptographic schemes, such as stream encryption or message ...

4

Programming your own DES is usually a bad idea (unless as an exercise to understand the algorithm better), but OK. By definition the algorithm works with blocks of data that consist of 8 bytes (i.e. integers in the range 0..255), and the key is 7 of those bytes (or 8 with unused parity bits). What the data means (text or binary files like Office documents ...

4

Each 56-bit key has a unique 8-bit parity value. For this reason there are only $2^{56}$ keys.

4

yes,it is possible because in meet in the middle attack on 3DES,see below with Complementation Property of DES in red arrow,you can search $2^{55}$ key space instead of $2^{56}$,and for green arrow,you have $DEC_{K2}(ENC_{K1}(M))$ that without key Complementation Property,you need $2^{112}$ operations but with key Complementation Property of left ENC and ...

3

Verilog is Turing complete, so you can implement any algorithm in Verilog, if you really want to.

3

Every algorithm that can be modeled as a Boolean circuit can be homomorphically encrypted. DES/3DES can surely be modeled by a Boolean circuit. The question is if it is practical to use DES/3DES for homomorphic encryption. I don't think so.

3

No. For any key $k$ your ciphertext $c$ has a corresponding plaintext $p$ (since block ciphers are families of bijections). Hence, since you can't (in)validate plaintexts, you can't discard any possible key. Or, in other words: If someone claimed the right key was a certain $k$, you had absolutely no way to ever prove them wrong.

3

You can do this slightly better with an additional $\mathcal{0}(2^{56})$ memory and with $\mathcal{0}(2^{56})$ time. You can notice that the relation $c \leftarrow E_{k_1}(E_{k_2}(m))$ can be rewritten as $D_{k_1}(c) = E_{k_2}(m)$ (just apply the decrypt function on both sides. First step consists in the generation of every pair $(k_2, E_{k_2}(m))$ and ...

3

You cannot encrypt 720 bits plaintext using just AES-128. AES is a 128 bit block cipher. Such a block cipher has an input of 128 bits of plaintext and an output of 128 bits ciphertext; and that's it. You need some kind of construction to make block ciphers encrypt larger or smaller plaintext. Such constructions are known as (block cipher) modes of ...

3

The DES operation (both encryption and decryption) ignores the lsbit of each byte of the key. That is, if you flip any of the lsbits within the key, the operation remains the same. That's what is happening in the keys you tried: the ASCII code for space is 0x20, while the ASCII code for ! is 0x21; they differ only in the lsbit. So, if the key has a byte ...

3

Inside each round, DES has a permutation that is used for diffusion and is crucial for security. However, you rightly point out that the initial and final permutations on the block of input/output and on the key have no effect whatsoever on security. Formally, it's not difficult to show that if you have an attack on DES without these initial and final ...

3

Definitely a mistake. The text clearly contradicts itself. ... 2DES has an effective key length of 57. And later... There does not appear to be a meet-in-the-middle attack on 3DES2 however, so that its key length of 112 is also its effective key length. which clearly contradicts 2DES, although having the same effective key length as 3DES2 ...

2

According to Wikipedia, GCM is defined for block ciphers with a block size of 128 bits. So no, you can't use GCM with 3DES or DES, because of the 64-bit block size. You could use something similar to GCM, but it wouldn't be GCM.

2

Permutations IP and PC-1 are near-transpositions, and play no cryptographic role. IP-1 is simply IP reversed. The best theory about why they are here is: as a technical by-product of the 8-bit interface used by early DES ICs, translated into the same formalism as the rest when writing the DES standard. They make wiring of hardware implementations simple when ...

2

If you're talking about the S-DES developed by Professor Edward Schaefer of Santa Clara University, I can try to explain you the reason. The algorithm takes in input a 10-bit key (K) but, using a key generation algorithm, the plaintext is encrypted using two different subkeys (K1 and K2) that are generated by the algorithm. First, you should pass the ...

2

Remember that the initial value is split into two halves, and each half is shifted independently. If all the bits in each half are either 0 or 1, then the key used for any cycle of the algorithm is the same for all the cycles of the algorithm. This can occur if the key is entirely 1s, entirely 0s, or if one half of the key is entirely 1s or the other half is ...

2

For the first part of the question regarding DES subkey generation, the reason there is a difference in the rotation amount is so that each subkey is different, and that all bits of the original key are used, and that there is a fairly equal probability that a bit will be in a subkey. The rotations occur on the equal sized 28-bit halves of the 56-bit ...

1

If S is a DES S-box, for a given "output", S(input) = output has exctly 4 solutions for "input", or "collisions". You can then find collisions for F by concatenating collisions for each S-box. You can start with setting an output for F and then look for all possible "inputs" for each of the 8 S-boxes on the 4 relevant bits of the output of F.

1

DES is hardware There's a paper by Miles E. Smid and Dennis K. Branstad of the National Institute of Standards and Technology (NIST) entitled The Data Encryption Standard Past and Future, first appearing in Proceedings of the IEEE, vol. 76, no. 5, pp. 550-559, May 1988 (and not copyright eligible as a a U.S. government work), which makes the distinction ...

1

If you take an Sbox and two different inputs $x_1,x_2$ (binary vectors of length 6) the exclusive or ("sum") of the two inputs is does not propagate to the output. So $$S(x_1)\oplus S(x_2) \neq S(x_1\oplus x_2)$$ in general. This means that there is no shortcut allowing one to predict outputs "bit by bit" and build efficient search tables, by just ...

1

DES is an old (by itself insecure) block cipher. Block ciphers work on blocks of bits. Due to the nature of modern computer the input and output of the cipher is however normally limited to 8-bit bytes or octets. The time that a byte could have 7 or 9 bits is long gone. Again, due to the nature of computing, everything inside a computer is encoded in bits ...

1

Your XOR equations are wrong. You wrote: 1110 XOR 0000 = 0001 But it's not how the XOR works. 1 xor 0 = 1, and in your example it somehow turns into 0 wich is an error. Reference the xor table: https://en.wikipedia.org/wiki/Exclusive_or So, the correct answer for S1(x1) XOR S1(x2) is: 1110 XOR 0000 = 1110 and for x1 xor x2: 0000000 ...

1

The original is completely broken and would be regardless of the insecurity of DES. The ECB encryption of a single block message (with a secure cipher) would be a secure MAC, but XORing the message blocks means that an attacker can modify any block of the message simply by making the same change to another block so that they cancel out. The modified ...

1

A DES key is, by definition, a (pseudo)randomly chosen sequence of 8 × 7 = 56 key bits, plus 8 parity bits,* for a total of 64 bits. If what you have isn't 64 bits long (with the appropriate parity bits), then it's not a DES key, but something else (e.g. a passphrase). To turn that "something else" into a DES key, you need a key derivation function ...

1

As for "how to build the substitution as hardware", it should be easy if you know any of the hardware description language (eg. VHDL or Verilog). Simply write the Sboxes of DES, then the synthesis software will handle the rest. You can also "synthesis" by hand, although that may take a lot of effect. Still, I'm not sure if this is what you are looking for. ...

Only top voted, non community-wiki answers of a minimum length are eligible