Is it possible to determine the symmetric encryption method used by output size?Symmetric encryption mode where ciphertext size is plain text sizeUsing IV buffer after altered inside a Rijndael CBC Encryption/Decryption process as IV for next message?Exercise: Attack on a Two-Round DES CipherCommon password derivation function for different encryption methodsCracking an appliance's network protocolDetermine encryption method with input and outputSymmetric encryption vulnerable when encrypting and decrypting are the same?Is this an acceptable way to increase the block size of a block cipher?Crypto algorithm identification (reverse engineering)In BBC Sherlock's The Blind Banker, what type of cryptographic function is used by the Black Lotus?

Is Cola "probably the best-known" Latin word in the world? If not, which might it be?

How can I close a gap between my fence and my neighbor's that's on his side of the property line?

Identifying my late father's D&D stuff found in the attic

Type-check an expression

Selecting a secure PIN for building access

Missed the connecting flight, separate tickets on same airline - who is responsible?

Catholic vs Protestant Support for Nazism in Germany

When and why did journal article titles become descriptive, rather than creatively allusive?

Is it cheaper to drop cargo than to land it?

Manager is threatning to grade me poorly if I don't complete the project

In Avengers 1, why does Thanos need Loki?

Can Ghost kill White Walkers or Wights?

Would a 1/1 token with persist dying trigger on death effects a second time?

Did we get closer to another plane than we were supposed to, or was the pilot just protecting our delicate sensibilities?

Airbnb - host wants to reduce rooms, can we get refund?

Why is C# in the D Major Scale?

Is this homebrew life-stealing melee cantrip unbalanced?

60s (or earlier) SF short story with FTL Travel using electron psychology aka addiclenendar technology

Why is Arya visibly scared in the library in S8E3?

Where can I go to avoid planes overhead?

Does a wine bottle stopper require tevillah?

What are the spoon bit of a spoon and fork bit of a fork called?

Pawn Promotion Double Checks

Do I have to make someone coauthor if he/she solves a problem in StackExchange, asked by myself, which is later used in my paper?



Is it possible to determine the symmetric encryption method used by output size?


Symmetric encryption mode where ciphertext size is plain text sizeUsing IV buffer after altered inside a Rijndael CBC Encryption/Decryption process as IV for next message?Exercise: Attack on a Two-Round DES CipherCommon password derivation function for different encryption methodsCracking an appliance's network protocolDetermine encryption method with input and outputSymmetric encryption vulnerable when encrypting and decrypting are the same?Is this an acceptable way to increase the block size of a block cipher?Crypto algorithm identification (reverse engineering)In BBC Sherlock's The Blind Banker, what type of cryptographic function is used by the Black Lotus?













2












$begingroup$


I'm attempting to identify the method of encryption for a black-box symmetric encryptor that produces blocks of output that are 4 bytes in length (e.g. small inputs fit in 16 bytes, then 20 bytes and 24 bytes as more input characters are added).



It's symmetric encryption and the value is always the same for the same input text. Is it possible to determine which method of encryption is used? I'm assuming it's a block cipher as a result of the blocks of output it produces.










share|improve this question









New contributor




jSherz is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







$endgroup$







  • 1




    $begingroup$
    Related question on security.SE: security.stackexchange.com/questions/38797/… (I thought I remembered seeing a duplicate or at least a very similar question before on this site as well, but if so, I can't find it.)
    $endgroup$
    – Ilmari Karonen
    Apr 27 at 16:26
















2












$begingroup$


I'm attempting to identify the method of encryption for a black-box symmetric encryptor that produces blocks of output that are 4 bytes in length (e.g. small inputs fit in 16 bytes, then 20 bytes and 24 bytes as more input characters are added).



It's symmetric encryption and the value is always the same for the same input text. Is it possible to determine which method of encryption is used? I'm assuming it's a block cipher as a result of the blocks of output it produces.










share|improve this question









New contributor




jSherz is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







$endgroup$







  • 1




    $begingroup$
    Related question on security.SE: security.stackexchange.com/questions/38797/… (I thought I remembered seeing a duplicate or at least a very similar question before on this site as well, but if so, I can't find it.)
    $endgroup$
    – Ilmari Karonen
    Apr 27 at 16:26














2












2








2





$begingroup$


I'm attempting to identify the method of encryption for a black-box symmetric encryptor that produces blocks of output that are 4 bytes in length (e.g. small inputs fit in 16 bytes, then 20 bytes and 24 bytes as more input characters are added).



It's symmetric encryption and the value is always the same for the same input text. Is it possible to determine which method of encryption is used? I'm assuming it's a block cipher as a result of the blocks of output it produces.










share|improve this question









New contributor




jSherz is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







$endgroup$




I'm attempting to identify the method of encryption for a black-box symmetric encryptor that produces blocks of output that are 4 bytes in length (e.g. small inputs fit in 16 bytes, then 20 bytes and 24 bytes as more input characters are added).



It's symmetric encryption and the value is always the same for the same input text. Is it possible to determine which method of encryption is used? I'm assuming it's a block cipher as a result of the blocks of output it produces.







block-cipher symmetric blocksize






share|improve this question









New contributor




jSherz is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




jSherz is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited Apr 27 at 16:16







jSherz













New contributor




jSherz is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked Apr 27 at 15:37









jSherzjSherz

1135




1135




New contributor




jSherz is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





jSherz is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






jSherz is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







  • 1




    $begingroup$
    Related question on security.SE: security.stackexchange.com/questions/38797/… (I thought I remembered seeing a duplicate or at least a very similar question before on this site as well, but if so, I can't find it.)
    $endgroup$
    – Ilmari Karonen
    Apr 27 at 16:26













  • 1




    $begingroup$
    Related question on security.SE: security.stackexchange.com/questions/38797/… (I thought I remembered seeing a duplicate or at least a very similar question before on this site as well, but if so, I can't find it.)
    $endgroup$
    – Ilmari Karonen
    Apr 27 at 16:26








1




1




$begingroup$
Related question on security.SE: security.stackexchange.com/questions/38797/… (I thought I remembered seeing a duplicate or at least a very similar question before on this site as well, but if so, I can't find it.)
$endgroup$
– Ilmari Karonen
Apr 27 at 16:26





$begingroup$
Related question on security.SE: security.stackexchange.com/questions/38797/… (I thought I remembered seeing a duplicate or at least a very similar question before on this site as well, but if so, I can't find it.)
$endgroup$
– Ilmari Karonen
Apr 27 at 16:26











2 Answers
2






active

oldest

votes


















2












$begingroup$

Simply put: No.



Without knowing other details, you cannot be sure. That being said, in the case you described, the black box uses 4 bytes blocks, which is rather uncommon with modern block ciphers. AES e.g. uses 128bits (16bytes), Blowfish uses 64bits (8bytes). 4byte block ciphers are very uncommon now. Even DES, which is quite outdated and old uses 8 bytes. The only block cipher used that has 32bit block size and comes to my mind is RC5.



So as you can see, you can make an educated guess. But given just the ciphertext, this does not inform you at all about encryption used. This is one of the key aspects of cryptography btw, encrypted data should look as much as random data as possible.



You cannot even be sure that this is a block cipher. Could be a stream cipher with padding. So if the only thing you know is: "I have a box. I feed it data and it spits out data in chunks of 4 bytes" - then you know nothin', j Sherz






share|improve this answer











$endgroup$












  • $begingroup$
    Re: "This is one of the key aspects of cryptography btw, encrypted data should look as much as random data as possible": I don't really agree with this. From a security standpoint, it would be perfectly fine for an encryption scheme to always produce output that begins with, say, This message encrypted with ...; see https://... for details. In practice, however, encryption schemes don't generally do this; instead, a secure protocol will typically provide a separate (metadata) field to indicate the encryption scheme in use.
    $endgroup$
    – ruakh
    Apr 27 at 20:15










  • $begingroup$
    @ruakh but This message encrypted with ...; see https://... for details is not the encrypted data, it's just a header. The actual encrypted data should still be indistinguishable from random data.
    $endgroup$
    – marcelm
    Apr 27 at 22:57










  • $begingroup$
    @marcelm: You can choose to make that distinction, but there's no need to; if the ciphertext requires a certain fixed prefix, then that prefix is essentially part of the ciphertext. If you'd like a different example: there's no problem with an encryption scheme where every Nth byte is a checksum, or one where the ciphertext only uses ASCII printable characters (for compatibility with MIME). There is literally no need for encrypted data to be "indistinguishable from random data". All that matters is that it be impossible to guess anything about the plaintext (other than its length).
    $endgroup$
    – ruakh
    Apr 27 at 23:36










  • $begingroup$
    I don't believe there's any block cipher which has a default block size that small. Even for RC5, 32 bits was the lowest it could go (default was 128, I think). But a few like SIMON and SPECK support 32-bit blocks. The cipher with the smallest default block size I know of is PRINTcipher, which has 48-bit blocks, IIRC.
    $endgroup$
    – forest
    2 days ago


















3












$begingroup$

You can try to determine the block size by modifying each byte of the input data, starting from the last one.



A typical block cipher implementation will mix the change into all other bytes in the block, and usually also to all following blocks, but not to blocks that come before it.



So if you observe e.g.:



 Plaintext Encrypted
0000 0000 2348 1234
0000 0001 2348 4292
0000 0010 2348 9823
0000 0100 2348 2149
0000 1000 2348 6785
0001 0000 8173 1437


you could be quite certain that it is a block cipher with 4-byte blocks.



For comparison, in typical applications of a stream cipher, only a single byte would usually change. If it is a stream cipher, you can obtain the keystream by encoding 000...0000, because it sounds like it doesn't have a random initialization vector.






share|improve this answer











$endgroup$












  • $begingroup$
    For block ciphers, that will depend entirely on the mode of operation.
    $endgroup$
    – Ilmari Karonen
    Apr 27 at 21:03











Your Answer








StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "281"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);






jSherz is a new contributor. Be nice, and check out our Code of Conduct.









draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcrypto.stackexchange.com%2fquestions%2f70113%2fis-it-possible-to-determine-the-symmetric-encryption-method-used-by-output-size%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























2 Answers
2






active

oldest

votes








2 Answers
2






active

oldest

votes









active

oldest

votes






active

oldest

votes









2












$begingroup$

Simply put: No.



Without knowing other details, you cannot be sure. That being said, in the case you described, the black box uses 4 bytes blocks, which is rather uncommon with modern block ciphers. AES e.g. uses 128bits (16bytes), Blowfish uses 64bits (8bytes). 4byte block ciphers are very uncommon now. Even DES, which is quite outdated and old uses 8 bytes. The only block cipher used that has 32bit block size and comes to my mind is RC5.



So as you can see, you can make an educated guess. But given just the ciphertext, this does not inform you at all about encryption used. This is one of the key aspects of cryptography btw, encrypted data should look as much as random data as possible.



You cannot even be sure that this is a block cipher. Could be a stream cipher with padding. So if the only thing you know is: "I have a box. I feed it data and it spits out data in chunks of 4 bytes" - then you know nothin', j Sherz






share|improve this answer











$endgroup$












  • $begingroup$
    Re: "This is one of the key aspects of cryptography btw, encrypted data should look as much as random data as possible": I don't really agree with this. From a security standpoint, it would be perfectly fine for an encryption scheme to always produce output that begins with, say, This message encrypted with ...; see https://... for details. In practice, however, encryption schemes don't generally do this; instead, a secure protocol will typically provide a separate (metadata) field to indicate the encryption scheme in use.
    $endgroup$
    – ruakh
    Apr 27 at 20:15










  • $begingroup$
    @ruakh but This message encrypted with ...; see https://... for details is not the encrypted data, it's just a header. The actual encrypted data should still be indistinguishable from random data.
    $endgroup$
    – marcelm
    Apr 27 at 22:57










  • $begingroup$
    @marcelm: You can choose to make that distinction, but there's no need to; if the ciphertext requires a certain fixed prefix, then that prefix is essentially part of the ciphertext. If you'd like a different example: there's no problem with an encryption scheme where every Nth byte is a checksum, or one where the ciphertext only uses ASCII printable characters (for compatibility with MIME). There is literally no need for encrypted data to be "indistinguishable from random data". All that matters is that it be impossible to guess anything about the plaintext (other than its length).
    $endgroup$
    – ruakh
    Apr 27 at 23:36










  • $begingroup$
    I don't believe there's any block cipher which has a default block size that small. Even for RC5, 32 bits was the lowest it could go (default was 128, I think). But a few like SIMON and SPECK support 32-bit blocks. The cipher with the smallest default block size I know of is PRINTcipher, which has 48-bit blocks, IIRC.
    $endgroup$
    – forest
    2 days ago















2












$begingroup$

Simply put: No.



Without knowing other details, you cannot be sure. That being said, in the case you described, the black box uses 4 bytes blocks, which is rather uncommon with modern block ciphers. AES e.g. uses 128bits (16bytes), Blowfish uses 64bits (8bytes). 4byte block ciphers are very uncommon now. Even DES, which is quite outdated and old uses 8 bytes. The only block cipher used that has 32bit block size and comes to my mind is RC5.



So as you can see, you can make an educated guess. But given just the ciphertext, this does not inform you at all about encryption used. This is one of the key aspects of cryptography btw, encrypted data should look as much as random data as possible.



You cannot even be sure that this is a block cipher. Could be a stream cipher with padding. So if the only thing you know is: "I have a box. I feed it data and it spits out data in chunks of 4 bytes" - then you know nothin', j Sherz






share|improve this answer











$endgroup$












  • $begingroup$
    Re: "This is one of the key aspects of cryptography btw, encrypted data should look as much as random data as possible": I don't really agree with this. From a security standpoint, it would be perfectly fine for an encryption scheme to always produce output that begins with, say, This message encrypted with ...; see https://... for details. In practice, however, encryption schemes don't generally do this; instead, a secure protocol will typically provide a separate (metadata) field to indicate the encryption scheme in use.
    $endgroup$
    – ruakh
    Apr 27 at 20:15










  • $begingroup$
    @ruakh but This message encrypted with ...; see https://... for details is not the encrypted data, it's just a header. The actual encrypted data should still be indistinguishable from random data.
    $endgroup$
    – marcelm
    Apr 27 at 22:57










  • $begingroup$
    @marcelm: You can choose to make that distinction, but there's no need to; if the ciphertext requires a certain fixed prefix, then that prefix is essentially part of the ciphertext. If you'd like a different example: there's no problem with an encryption scheme where every Nth byte is a checksum, or one where the ciphertext only uses ASCII printable characters (for compatibility with MIME). There is literally no need for encrypted data to be "indistinguishable from random data". All that matters is that it be impossible to guess anything about the plaintext (other than its length).
    $endgroup$
    – ruakh
    Apr 27 at 23:36










  • $begingroup$
    I don't believe there's any block cipher which has a default block size that small. Even for RC5, 32 bits was the lowest it could go (default was 128, I think). But a few like SIMON and SPECK support 32-bit blocks. The cipher with the smallest default block size I know of is PRINTcipher, which has 48-bit blocks, IIRC.
    $endgroup$
    – forest
    2 days ago













2












2








2





$begingroup$

Simply put: No.



Without knowing other details, you cannot be sure. That being said, in the case you described, the black box uses 4 bytes blocks, which is rather uncommon with modern block ciphers. AES e.g. uses 128bits (16bytes), Blowfish uses 64bits (8bytes). 4byte block ciphers are very uncommon now. Even DES, which is quite outdated and old uses 8 bytes. The only block cipher used that has 32bit block size and comes to my mind is RC5.



So as you can see, you can make an educated guess. But given just the ciphertext, this does not inform you at all about encryption used. This is one of the key aspects of cryptography btw, encrypted data should look as much as random data as possible.



You cannot even be sure that this is a block cipher. Could be a stream cipher with padding. So if the only thing you know is: "I have a box. I feed it data and it spits out data in chunks of 4 bytes" - then you know nothin', j Sherz






share|improve this answer











$endgroup$



Simply put: No.



Without knowing other details, you cannot be sure. That being said, in the case you described, the black box uses 4 bytes blocks, which is rather uncommon with modern block ciphers. AES e.g. uses 128bits (16bytes), Blowfish uses 64bits (8bytes). 4byte block ciphers are very uncommon now. Even DES, which is quite outdated and old uses 8 bytes. The only block cipher used that has 32bit block size and comes to my mind is RC5.



So as you can see, you can make an educated guess. But given just the ciphertext, this does not inform you at all about encryption used. This is one of the key aspects of cryptography btw, encrypted data should look as much as random data as possible.



You cannot even be sure that this is a block cipher. Could be a stream cipher with padding. So if the only thing you know is: "I have a box. I feed it data and it spits out data in chunks of 4 bytes" - then you know nothin', j Sherz







share|improve this answer














share|improve this answer



share|improve this answer








edited Apr 27 at 16:41

























answered Apr 27 at 16:31









michnovkamichnovka

22139




22139











  • $begingroup$
    Re: "This is one of the key aspects of cryptography btw, encrypted data should look as much as random data as possible": I don't really agree with this. From a security standpoint, it would be perfectly fine for an encryption scheme to always produce output that begins with, say, This message encrypted with ...; see https://... for details. In practice, however, encryption schemes don't generally do this; instead, a secure protocol will typically provide a separate (metadata) field to indicate the encryption scheme in use.
    $endgroup$
    – ruakh
    Apr 27 at 20:15










  • $begingroup$
    @ruakh but This message encrypted with ...; see https://... for details is not the encrypted data, it's just a header. The actual encrypted data should still be indistinguishable from random data.
    $endgroup$
    – marcelm
    Apr 27 at 22:57










  • $begingroup$
    @marcelm: You can choose to make that distinction, but there's no need to; if the ciphertext requires a certain fixed prefix, then that prefix is essentially part of the ciphertext. If you'd like a different example: there's no problem with an encryption scheme where every Nth byte is a checksum, or one where the ciphertext only uses ASCII printable characters (for compatibility with MIME). There is literally no need for encrypted data to be "indistinguishable from random data". All that matters is that it be impossible to guess anything about the plaintext (other than its length).
    $endgroup$
    – ruakh
    Apr 27 at 23:36










  • $begingroup$
    I don't believe there's any block cipher which has a default block size that small. Even for RC5, 32 bits was the lowest it could go (default was 128, I think). But a few like SIMON and SPECK support 32-bit blocks. The cipher with the smallest default block size I know of is PRINTcipher, which has 48-bit blocks, IIRC.
    $endgroup$
    – forest
    2 days ago
















  • $begingroup$
    Re: "This is one of the key aspects of cryptography btw, encrypted data should look as much as random data as possible": I don't really agree with this. From a security standpoint, it would be perfectly fine for an encryption scheme to always produce output that begins with, say, This message encrypted with ...; see https://... for details. In practice, however, encryption schemes don't generally do this; instead, a secure protocol will typically provide a separate (metadata) field to indicate the encryption scheme in use.
    $endgroup$
    – ruakh
    Apr 27 at 20:15










  • $begingroup$
    @ruakh but This message encrypted with ...; see https://... for details is not the encrypted data, it's just a header. The actual encrypted data should still be indistinguishable from random data.
    $endgroup$
    – marcelm
    Apr 27 at 22:57










  • $begingroup$
    @marcelm: You can choose to make that distinction, but there's no need to; if the ciphertext requires a certain fixed prefix, then that prefix is essentially part of the ciphertext. If you'd like a different example: there's no problem with an encryption scheme where every Nth byte is a checksum, or one where the ciphertext only uses ASCII printable characters (for compatibility with MIME). There is literally no need for encrypted data to be "indistinguishable from random data". All that matters is that it be impossible to guess anything about the plaintext (other than its length).
    $endgroup$
    – ruakh
    Apr 27 at 23:36










  • $begingroup$
    I don't believe there's any block cipher which has a default block size that small. Even for RC5, 32 bits was the lowest it could go (default was 128, I think). But a few like SIMON and SPECK support 32-bit blocks. The cipher with the smallest default block size I know of is PRINTcipher, which has 48-bit blocks, IIRC.
    $endgroup$
    – forest
    2 days ago















$begingroup$
Re: "This is one of the key aspects of cryptography btw, encrypted data should look as much as random data as possible": I don't really agree with this. From a security standpoint, it would be perfectly fine for an encryption scheme to always produce output that begins with, say, This message encrypted with ...; see https://... for details. In practice, however, encryption schemes don't generally do this; instead, a secure protocol will typically provide a separate (metadata) field to indicate the encryption scheme in use.
$endgroup$
– ruakh
Apr 27 at 20:15




$begingroup$
Re: "This is one of the key aspects of cryptography btw, encrypted data should look as much as random data as possible": I don't really agree with this. From a security standpoint, it would be perfectly fine for an encryption scheme to always produce output that begins with, say, This message encrypted with ...; see https://... for details. In practice, however, encryption schemes don't generally do this; instead, a secure protocol will typically provide a separate (metadata) field to indicate the encryption scheme in use.
$endgroup$
– ruakh
Apr 27 at 20:15












$begingroup$
@ruakh but This message encrypted with ...; see https://... for details is not the encrypted data, it's just a header. The actual encrypted data should still be indistinguishable from random data.
$endgroup$
– marcelm
Apr 27 at 22:57




$begingroup$
@ruakh but This message encrypted with ...; see https://... for details is not the encrypted data, it's just a header. The actual encrypted data should still be indistinguishable from random data.
$endgroup$
– marcelm
Apr 27 at 22:57












$begingroup$
@marcelm: You can choose to make that distinction, but there's no need to; if the ciphertext requires a certain fixed prefix, then that prefix is essentially part of the ciphertext. If you'd like a different example: there's no problem with an encryption scheme where every Nth byte is a checksum, or one where the ciphertext only uses ASCII printable characters (for compatibility with MIME). There is literally no need for encrypted data to be "indistinguishable from random data". All that matters is that it be impossible to guess anything about the plaintext (other than its length).
$endgroup$
– ruakh
Apr 27 at 23:36




$begingroup$
@marcelm: You can choose to make that distinction, but there's no need to; if the ciphertext requires a certain fixed prefix, then that prefix is essentially part of the ciphertext. If you'd like a different example: there's no problem with an encryption scheme where every Nth byte is a checksum, or one where the ciphertext only uses ASCII printable characters (for compatibility with MIME). There is literally no need for encrypted data to be "indistinguishable from random data". All that matters is that it be impossible to guess anything about the plaintext (other than its length).
$endgroup$
– ruakh
Apr 27 at 23:36












$begingroup$
I don't believe there's any block cipher which has a default block size that small. Even for RC5, 32 bits was the lowest it could go (default was 128, I think). But a few like SIMON and SPECK support 32-bit blocks. The cipher with the smallest default block size I know of is PRINTcipher, which has 48-bit blocks, IIRC.
$endgroup$
– forest
2 days ago




$begingroup$
I don't believe there's any block cipher which has a default block size that small. Even for RC5, 32 bits was the lowest it could go (default was 128, I think). But a few like SIMON and SPECK support 32-bit blocks. The cipher with the smallest default block size I know of is PRINTcipher, which has 48-bit blocks, IIRC.
$endgroup$
– forest
2 days ago











3












$begingroup$

You can try to determine the block size by modifying each byte of the input data, starting from the last one.



A typical block cipher implementation will mix the change into all other bytes in the block, and usually also to all following blocks, but not to blocks that come before it.



So if you observe e.g.:



 Plaintext Encrypted
0000 0000 2348 1234
0000 0001 2348 4292
0000 0010 2348 9823
0000 0100 2348 2149
0000 1000 2348 6785
0001 0000 8173 1437


you could be quite certain that it is a block cipher with 4-byte blocks.



For comparison, in typical applications of a stream cipher, only a single byte would usually change. If it is a stream cipher, you can obtain the keystream by encoding 000...0000, because it sounds like it doesn't have a random initialization vector.






share|improve this answer











$endgroup$












  • $begingroup$
    For block ciphers, that will depend entirely on the mode of operation.
    $endgroup$
    – Ilmari Karonen
    Apr 27 at 21:03















3












$begingroup$

You can try to determine the block size by modifying each byte of the input data, starting from the last one.



A typical block cipher implementation will mix the change into all other bytes in the block, and usually also to all following blocks, but not to blocks that come before it.



So if you observe e.g.:



 Plaintext Encrypted
0000 0000 2348 1234
0000 0001 2348 4292
0000 0010 2348 9823
0000 0100 2348 2149
0000 1000 2348 6785
0001 0000 8173 1437


you could be quite certain that it is a block cipher with 4-byte blocks.



For comparison, in typical applications of a stream cipher, only a single byte would usually change. If it is a stream cipher, you can obtain the keystream by encoding 000...0000, because it sounds like it doesn't have a random initialization vector.






share|improve this answer











$endgroup$












  • $begingroup$
    For block ciphers, that will depend entirely on the mode of operation.
    $endgroup$
    – Ilmari Karonen
    Apr 27 at 21:03













3












3








3





$begingroup$

You can try to determine the block size by modifying each byte of the input data, starting from the last one.



A typical block cipher implementation will mix the change into all other bytes in the block, and usually also to all following blocks, but not to blocks that come before it.



So if you observe e.g.:



 Plaintext Encrypted
0000 0000 2348 1234
0000 0001 2348 4292
0000 0010 2348 9823
0000 0100 2348 2149
0000 1000 2348 6785
0001 0000 8173 1437


you could be quite certain that it is a block cipher with 4-byte blocks.



For comparison, in typical applications of a stream cipher, only a single byte would usually change. If it is a stream cipher, you can obtain the keystream by encoding 000...0000, because it sounds like it doesn't have a random initialization vector.






share|improve this answer











$endgroup$



You can try to determine the block size by modifying each byte of the input data, starting from the last one.



A typical block cipher implementation will mix the change into all other bytes in the block, and usually also to all following blocks, but not to blocks that come before it.



So if you observe e.g.:



 Plaintext Encrypted
0000 0000 2348 1234
0000 0001 2348 4292
0000 0010 2348 9823
0000 0100 2348 2149
0000 1000 2348 6785
0001 0000 8173 1437


you could be quite certain that it is a block cipher with 4-byte blocks.



For comparison, in typical applications of a stream cipher, only a single byte would usually change. If it is a stream cipher, you can obtain the keystream by encoding 000...0000, because it sounds like it doesn't have a random initialization vector.







share|improve this answer














share|improve this answer



share|improve this answer








edited 2 days ago

























answered Apr 27 at 20:13









jpajpa

1914




1914











  • $begingroup$
    For block ciphers, that will depend entirely on the mode of operation.
    $endgroup$
    – Ilmari Karonen
    Apr 27 at 21:03
















  • $begingroup$
    For block ciphers, that will depend entirely on the mode of operation.
    $endgroup$
    – Ilmari Karonen
    Apr 27 at 21:03















$begingroup$
For block ciphers, that will depend entirely on the mode of operation.
$endgroup$
– Ilmari Karonen
Apr 27 at 21:03




$begingroup$
For block ciphers, that will depend entirely on the mode of operation.
$endgroup$
– Ilmari Karonen
Apr 27 at 21:03










jSherz is a new contributor. Be nice, and check out our Code of Conduct.









draft saved

draft discarded


















jSherz is a new contributor. Be nice, and check out our Code of Conduct.












jSherz is a new contributor. Be nice, and check out our Code of Conduct.











jSherz is a new contributor. Be nice, and check out our Code of Conduct.














Thanks for contributing an answer to Cryptography Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

Use MathJax to format equations. MathJax reference.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcrypto.stackexchange.com%2fquestions%2f70113%2fis-it-possible-to-determine-the-symmetric-encryption-method-used-by-output-size%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Get product attribute by attribute group code in magento 2get product attribute by product attribute group in magento 2Magento 2 Log Bundle Product Data in List Page?How to get all product attribute of a attribute group of Default attribute set?Magento 2.1 Create a filter in the product grid by new attributeMagento 2 : Get Product Attribute values By GroupMagento 2 How to get all existing values for one attributeMagento 2 get custom attribute of a single product inside a pluginMagento 2.3 How to get all the Multi Source Inventory (MSI) locations collection in custom module?Magento2: how to develop rest API to get new productsGet product attribute by attribute group code ( [attribute_group_code] ) in magento 2

Category:9 (number) SubcategoriesMedia in category "9 (number)"Navigation menuUpload mediaGND ID: 4485639-8Library of Congress authority ID: sh85091979ReasonatorScholiaStatistics

Magento 2.3: How do i solve this, Not registered handle, on custom form?How can i rewrite TierPrice Block in Magento2magento 2 captcha not rendering if I override layout xmlmain.CRITICAL: Plugin class doesn't existMagento 2 : Problem while adding custom button order view page?Magento 2.2.5: Overriding Admin Controller sales/orderMagento 2.2.5: Add, Update and Delete existing products Custom OptionsMagento 2.3 : File Upload issue in UI Component FormMagento2 Not registered handleHow to configured Form Builder Js in my custom magento 2.3.0 module?Magento 2.3. How to create image upload field in an admin form