What is the impact of the reported weak IV in 7 Zip?
It has been reported that 7 Zip generates IVs in the weak manner.
What is the actual impact of this? I'm asking about historical Zip files that I've sent. I've no plans to use 7 Zip going forward until this is fixed.
If I understand correctly, 7 Zip uses AES-CBC and this would not have a major impact. Even if a user repeatedly used the same password, the small amount of randomness in the IV would be enough to prevent cryptographic attacks.
aes cbc 7zip
add a comment |
It has been reported that 7 Zip generates IVs in the weak manner.
What is the actual impact of this? I'm asking about historical Zip files that I've sent. I've no plans to use 7 Zip going forward until this is fixed.
If I understand correctly, 7 Zip uses AES-CBC and this would not have a major impact. Even if a user repeatedly used the same password, the small amount of randomness in the IV would be enough to prevent cryptographic attacks.
aes cbc 7zip
2
Can we get a definition of "IV" so people can look it up and research?
– JPhi1618
2 hours ago
1
@JPhi1618: when discussing ciphers, IV stands for Initialization Vector.
– Jacob Krall
2 hours ago
2
IV stands for Initialization Vector
– Captain Hypertext
1 hour ago
add a comment |
It has been reported that 7 Zip generates IVs in the weak manner.
What is the actual impact of this? I'm asking about historical Zip files that I've sent. I've no plans to use 7 Zip going forward until this is fixed.
If I understand correctly, 7 Zip uses AES-CBC and this would not have a major impact. Even if a user repeatedly used the same password, the small amount of randomness in the IV would be enough to prevent cryptographic attacks.
aes cbc 7zip
It has been reported that 7 Zip generates IVs in the weak manner.
What is the actual impact of this? I'm asking about historical Zip files that I've sent. I've no plans to use 7 Zip going forward until this is fixed.
If I understand correctly, 7 Zip uses AES-CBC and this would not have a major impact. Even if a user repeatedly used the same password, the small amount of randomness in the IV would be enough to prevent cryptographic attacks.
aes cbc 7zip
aes cbc 7zip
asked 8 hours ago
paj28paj28
26.5k372104
26.5k372104
2
Can we get a definition of "IV" so people can look it up and research?
– JPhi1618
2 hours ago
1
@JPhi1618: when discussing ciphers, IV stands for Initialization Vector.
– Jacob Krall
2 hours ago
2
IV stands for Initialization Vector
– Captain Hypertext
1 hour ago
add a comment |
2
Can we get a definition of "IV" so people can look it up and research?
– JPhi1618
2 hours ago
1
@JPhi1618: when discussing ciphers, IV stands for Initialization Vector.
– Jacob Krall
2 hours ago
2
IV stands for Initialization Vector
– Captain Hypertext
1 hour ago
2
2
Can we get a definition of "IV" so people can look it up and research?
– JPhi1618
2 hours ago
Can we get a definition of "IV" so people can look it up and research?
– JPhi1618
2 hours ago
1
1
@JPhi1618: when discussing ciphers, IV stands for Initialization Vector.
– Jacob Krall
2 hours ago
@JPhi1618: when discussing ciphers, IV stands for Initialization Vector.
– Jacob Krall
2 hours ago
2
2
IV stands for Initialization Vector
– Captain Hypertext
1 hour ago
IV stands for Initialization Vector
– Captain Hypertext
1 hour ago
add a comment |
1 Answer
1
active
oldest
votes
In CBC mode, the IV have to meet two properties:
- uniqueness: here the IV is very likely unique since because of time(NULL) and gettimeofday() which are the basically the current time of your system. It's even more likely on Windows platform since the CPU cycle is involved ;
- unpredictability: this property is mandatory if the user can choose the message to encrypt, which is not the case here.
The IV generation is definitely not good (mostly for the size of the IV), but the reaction of OP is exaggerated, the impact isn't that big. It's actually pretty small.
The bigger impact would be that an attacker would be able to recognize two ciphertext encrypting the same plaintext only if they've been encrypted within the same microsecond, using the same key. Even in this conditions, on a Windows platform, the CPU cycle are very unlikely the same, so the IV will be different.
To give answer your concerns: no, this vulnerability doesn't have a big impact in this particular case.
1
"with a probability of 1-2⁻⁶⁴ with time(null)" That would be the case only if the calls to time(null) were uniformly randomly spread over a time period of 2⁶⁴ seconds.
– A. Hersean
5 hours ago
You are right, it's even less probable, since time(NULL) is basically the current time of the system. I have edited my answer.
– Faulst
5 hours ago
1
time(NULL) provides a value to the second, not microsecond.
– Random832
4 hours ago
1
Yes but gettimeofday does, which is also used. I've edited the answer accordingly.
– Faulst
3 hours ago
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "162"
};
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
});
}
});
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%2fsecurity.stackexchange.com%2fquestions%2f202185%2fwhat-is-the-impact-of-the-reported-weak-iv-in-7-zip%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
In CBC mode, the IV have to meet two properties:
- uniqueness: here the IV is very likely unique since because of time(NULL) and gettimeofday() which are the basically the current time of your system. It's even more likely on Windows platform since the CPU cycle is involved ;
- unpredictability: this property is mandatory if the user can choose the message to encrypt, which is not the case here.
The IV generation is definitely not good (mostly for the size of the IV), but the reaction of OP is exaggerated, the impact isn't that big. It's actually pretty small.
The bigger impact would be that an attacker would be able to recognize two ciphertext encrypting the same plaintext only if they've been encrypted within the same microsecond, using the same key. Even in this conditions, on a Windows platform, the CPU cycle are very unlikely the same, so the IV will be different.
To give answer your concerns: no, this vulnerability doesn't have a big impact in this particular case.
1
"with a probability of 1-2⁻⁶⁴ with time(null)" That would be the case only if the calls to time(null) were uniformly randomly spread over a time period of 2⁶⁴ seconds.
– A. Hersean
5 hours ago
You are right, it's even less probable, since time(NULL) is basically the current time of the system. I have edited my answer.
– Faulst
5 hours ago
1
time(NULL) provides a value to the second, not microsecond.
– Random832
4 hours ago
1
Yes but gettimeofday does, which is also used. I've edited the answer accordingly.
– Faulst
3 hours ago
add a comment |
In CBC mode, the IV have to meet two properties:
- uniqueness: here the IV is very likely unique since because of time(NULL) and gettimeofday() which are the basically the current time of your system. It's even more likely on Windows platform since the CPU cycle is involved ;
- unpredictability: this property is mandatory if the user can choose the message to encrypt, which is not the case here.
The IV generation is definitely not good (mostly for the size of the IV), but the reaction of OP is exaggerated, the impact isn't that big. It's actually pretty small.
The bigger impact would be that an attacker would be able to recognize two ciphertext encrypting the same plaintext only if they've been encrypted within the same microsecond, using the same key. Even in this conditions, on a Windows platform, the CPU cycle are very unlikely the same, so the IV will be different.
To give answer your concerns: no, this vulnerability doesn't have a big impact in this particular case.
1
"with a probability of 1-2⁻⁶⁴ with time(null)" That would be the case only if the calls to time(null) were uniformly randomly spread over a time period of 2⁶⁴ seconds.
– A. Hersean
5 hours ago
You are right, it's even less probable, since time(NULL) is basically the current time of the system. I have edited my answer.
– Faulst
5 hours ago
1
time(NULL) provides a value to the second, not microsecond.
– Random832
4 hours ago
1
Yes but gettimeofday does, which is also used. I've edited the answer accordingly.
– Faulst
3 hours ago
add a comment |
In CBC mode, the IV have to meet two properties:
- uniqueness: here the IV is very likely unique since because of time(NULL) and gettimeofday() which are the basically the current time of your system. It's even more likely on Windows platform since the CPU cycle is involved ;
- unpredictability: this property is mandatory if the user can choose the message to encrypt, which is not the case here.
The IV generation is definitely not good (mostly for the size of the IV), but the reaction of OP is exaggerated, the impact isn't that big. It's actually pretty small.
The bigger impact would be that an attacker would be able to recognize two ciphertext encrypting the same plaintext only if they've been encrypted within the same microsecond, using the same key. Even in this conditions, on a Windows platform, the CPU cycle are very unlikely the same, so the IV will be different.
To give answer your concerns: no, this vulnerability doesn't have a big impact in this particular case.
In CBC mode, the IV have to meet two properties:
- uniqueness: here the IV is very likely unique since because of time(NULL) and gettimeofday() which are the basically the current time of your system. It's even more likely on Windows platform since the CPU cycle is involved ;
- unpredictability: this property is mandatory if the user can choose the message to encrypt, which is not the case here.
The IV generation is definitely not good (mostly for the size of the IV), but the reaction of OP is exaggerated, the impact isn't that big. It's actually pretty small.
The bigger impact would be that an attacker would be able to recognize two ciphertext encrypting the same plaintext only if they've been encrypted within the same microsecond, using the same key. Even in this conditions, on a Windows platform, the CPU cycle are very unlikely the same, so the IV will be different.
To give answer your concerns: no, this vulnerability doesn't have a big impact in this particular case.
edited 3 hours ago
answered 6 hours ago
FaulstFaulst
27414
27414
1
"with a probability of 1-2⁻⁶⁴ with time(null)" That would be the case only if the calls to time(null) were uniformly randomly spread over a time period of 2⁶⁴ seconds.
– A. Hersean
5 hours ago
You are right, it's even less probable, since time(NULL) is basically the current time of the system. I have edited my answer.
– Faulst
5 hours ago
1
time(NULL) provides a value to the second, not microsecond.
– Random832
4 hours ago
1
Yes but gettimeofday does, which is also used. I've edited the answer accordingly.
– Faulst
3 hours ago
add a comment |
1
"with a probability of 1-2⁻⁶⁴ with time(null)" That would be the case only if the calls to time(null) were uniformly randomly spread over a time period of 2⁶⁴ seconds.
– A. Hersean
5 hours ago
You are right, it's even less probable, since time(NULL) is basically the current time of the system. I have edited my answer.
– Faulst
5 hours ago
1
time(NULL) provides a value to the second, not microsecond.
– Random832
4 hours ago
1
Yes but gettimeofday does, which is also used. I've edited the answer accordingly.
– Faulst
3 hours ago
1
1
"with a probability of 1-2⁻⁶⁴ with time(null)" That would be the case only if the calls to time(null) were uniformly randomly spread over a time period of 2⁶⁴ seconds.
– A. Hersean
5 hours ago
"with a probability of 1-2⁻⁶⁴ with time(null)" That would be the case only if the calls to time(null) were uniformly randomly spread over a time period of 2⁶⁴ seconds.
– A. Hersean
5 hours ago
You are right, it's even less probable, since time(NULL) is basically the current time of the system. I have edited my answer.
– Faulst
5 hours ago
You are right, it's even less probable, since time(NULL) is basically the current time of the system. I have edited my answer.
– Faulst
5 hours ago
1
1
time(NULL) provides a value to the second, not microsecond.
– Random832
4 hours ago
time(NULL) provides a value to the second, not microsecond.
– Random832
4 hours ago
1
1
Yes but gettimeofday does, which is also used. I've edited the answer accordingly.
– Faulst
3 hours ago
Yes but gettimeofday does, which is also used. I've edited the answer accordingly.
– Faulst
3 hours ago
add a comment |
Thanks for contributing an answer to Information Security 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.
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%2fsecurity.stackexchange.com%2fquestions%2f202185%2fwhat-is-the-impact-of-the-reported-weak-iv-in-7-zip%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
2
Can we get a definition of "IV" so people can look it up and research?
– JPhi1618
2 hours ago
1
@JPhi1618: when discussing ciphers, IV stands for Initialization Vector.
– Jacob Krall
2 hours ago
2
IV stands for Initialization Vector
– Captain Hypertext
1 hour ago