Is it possible to determine the symmetric encryption method used by output size?Symmetric encryption mode...
Examples of non trivial equivalence relations , I mean equivalence relations without the expression " same ... as" in their definition?
US visa is under administrative processing, I need the passport back ASAP
In order to check if a field is required or not, is the result of isNillable method sufficient?
Does a semiconductor follow Ohm's law?
Is the claim "Employers won't employ people with no 'social media presence'" realistic?
How to creep the reader out with what seems like a normal person?
How can I practically buy stocks?
Unexpected email from Yorkshire Bank
Examples of subgroups where it's nontrivial to show closure under multiplication?
Seemingly unused edef prior to an ifx mysteriously affects the outcome of the ifx. Why?
What was the first Intel x86 processor with "Base + Index * Scale + Displacement" addressing mode?
What makes accurate emulation of old systems a difficult task?
What is the strongest case that can be made in favour of the UK regaining some control over fishing policy after Brexit?
How come there are so many candidates for the 2020 Democratic party presidential nomination?
Is it idiomatic to construct against `this`?
A Note on N!
How can Republicans who favour free markets, consistently express anger when they don't like the outcome of that choice?
What are the potential pitfalls when using metals as a currency?
Size of electromagnet needed to replicate Earth's magnetic field
Rivers without rain
What does the "ep" capability mean?
How to pronounce 'C++' in Spanish
How to have a sharp product image?
Minor Revision with suggestion of an alternative proof by reviewer
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?
$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.
block-cipher symmetric blocksize
New contributor
$endgroup$
add a comment |
$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.
block-cipher symmetric blocksize
New contributor
$endgroup$
$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
3 hours ago
add a comment |
$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.
block-cipher symmetric blocksize
New contributor
$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
block-cipher symmetric blocksize
New contributor
New contributor
edited 4 hours ago
jSherz
New contributor
asked 4 hours ago
jSherzjSherz
1114
1114
New contributor
New contributor
$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
3 hours ago
add a comment |
$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
3 hours ago
$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
3 hours ago
$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
3 hours ago
add a comment |
2 Answers
2
active
oldest
votes
$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
$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
6 mins ago
add a comment |
$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 chipher 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 chipher with 4-byte blocks.
For comparison, in typical applications of a stream chipher, 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.
$endgroup$
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
$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
$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
6 mins ago
add a comment |
$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
$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
6 mins ago
add a comment |
$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
$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
edited 3 hours ago
answered 3 hours ago
michnovkamichnovka
19629
19629
$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
6 mins ago
add a comment |
$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
6 mins 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
6 mins 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
6 mins ago
add a comment |
$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 chipher 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 chipher with 4-byte blocks.
For comparison, in typical applications of a stream chipher, 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.
$endgroup$
add a comment |
$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 chipher 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 chipher with 4-byte blocks.
For comparison, in typical applications of a stream chipher, 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.
$endgroup$
add a comment |
$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 chipher 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 chipher with 4-byte blocks.
For comparison, in typical applications of a stream chipher, 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.
$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 chipher 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 chipher with 4-byte blocks.
For comparison, in typical applications of a stream chipher, 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.
answered 9 mins ago
jpajpa
1614
1614
add a comment |
add a comment |
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.
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
$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
3 hours ago