Can Error correction and detection be done with out adding extra bits?GPG and PAR2 error correction data from the plain archive, will it compromise security?Analogue encryption algorithmsBallot box with multiple parties. All can read it, or none can read itError Detection/Correction Code-Then-EncryptVery simple and minimal replay prevention schemeCan it be done? Securing physical badges with cryptographyWhich cryptographic operations can be optimized with a GPU? When shouldn't it be done?How to protect a device which has different levels of access to its storage?How can XTS be used to detect the presence of TrueCrypt hidden volumes?Which symmetric encryption systems, pseudorandom number generators, and hash functions are best suited for reversible computers?
"This used to be my phone number"
Whipping heavy cream with melted chocolate
Term “console” in game consoles
Why is the Intel 8086 CPU called a 16-bit CPU?
What happens if a company buys back all of its shares?
Is it possible to have a career in SciComp without contributing to arms research?
Difference between c++14 and c++17 using: `*p++ = *p`
Word for something indicating the importance of guarding it properly
Last-minute canceled work-trip mean I'll lose thousands of dollars on planned vacation
manipulate a list: replace random position of a specific integer n times by 0
I have found a mistake on someone's code published online: what is the protocol?
How to interpret a promising preprint that was never published?
Arithmetics in LuaLaTeX
Pauli exclusion principle - black holes
Zhora asks Deckard: "Are you for real?" Was this meant to be significant?
Should I use a resistor between the gate driver and MOSFET (gate pin)?
How to not confuse readers with simultaneous events?
What could make large expeditions ineffective for exploring territory full of dangers and valuable resources?
What would be the safest way to drop thousands of small, hard objects from a typical, high wing, GA airplane?
Why were these characters absent in Spider-Man: Far From Home?
What details should I consider before agreeing for part of my salary to be 'retained' by employer?
Why does a tetrahedral molecule like methane have a dipole moment of zero?
Drawing a circle with nodes shift with Tikz
Why can't I hear fret buzz through the amp?
Can Error correction and detection be done with out adding extra bits?
GPG and PAR2 error correction data from the plain archive, will it compromise security?Analogue encryption algorithmsBallot box with multiple parties. All can read it, or none can read itError Detection/Correction Code-Then-EncryptVery simple and minimal replay prevention schemeCan it be done? Securing physical badges with cryptographyWhich cryptographic operations can be optimized with a GPU? When shouldn't it be done?How to protect a device which has different levels of access to its storage?How can XTS be used to detect the presence of TrueCrypt hidden volumes?Which symmetric encryption systems, pseudorandom number generators, and hash functions are best suited for reversible computers?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
$begingroup$
I have gone through error detection and correction techniques like hamming codes, BCH codes require extra parity bits for detection and correction. While sending data, we always seem to introduce error correction by adding parity and use parity while checking for errors.
Can error detection and correction be done without adding any extra bits?
encryption cryptographic-hardware decryption
$endgroup$
add a comment |
$begingroup$
I have gone through error detection and correction techniques like hamming codes, BCH codes require extra parity bits for detection and correction. While sending data, we always seem to introduce error correction by adding parity and use parity while checking for errors.
Can error detection and correction be done without adding any extra bits?
encryption cryptographic-hardware decryption
$endgroup$
8
$begingroup$
Are you familiar with the pigeonhole principle? Because it's trivial to reduce this question to that.
$endgroup$
– MSalters
15 hours ago
2
$begingroup$
This doesn't seem to be at all about encryption
$endgroup$
– ilkkachu
12 hours ago
$begingroup$
@ilkkachu It's about coding theory, which can be loosely considered to be in the field of cryptography. I would say questions on that topic can certainly be on-topic here. I'm on the fence whether this particular question is though...
$endgroup$
– marcelm
4 hours ago
add a comment |
$begingroup$
I have gone through error detection and correction techniques like hamming codes, BCH codes require extra parity bits for detection and correction. While sending data, we always seem to introduce error correction by adding parity and use parity while checking for errors.
Can error detection and correction be done without adding any extra bits?
encryption cryptographic-hardware decryption
$endgroup$
I have gone through error detection and correction techniques like hamming codes, BCH codes require extra parity bits for detection and correction. While sending data, we always seem to introduce error correction by adding parity and use parity while checking for errors.
Can error detection and correction be done without adding any extra bits?
encryption cryptographic-hardware decryption
encryption cryptographic-hardware decryption
edited 39 mins ago
Community♦
1
1
asked 23 hours ago
Krishna BalupalaKrishna Balupala
515 bronze badges
515 bronze badges
8
$begingroup$
Are you familiar with the pigeonhole principle? Because it's trivial to reduce this question to that.
$endgroup$
– MSalters
15 hours ago
2
$begingroup$
This doesn't seem to be at all about encryption
$endgroup$
– ilkkachu
12 hours ago
$begingroup$
@ilkkachu It's about coding theory, which can be loosely considered to be in the field of cryptography. I would say questions on that topic can certainly be on-topic here. I'm on the fence whether this particular question is though...
$endgroup$
– marcelm
4 hours ago
add a comment |
8
$begingroup$
Are you familiar with the pigeonhole principle? Because it's trivial to reduce this question to that.
$endgroup$
– MSalters
15 hours ago
2
$begingroup$
This doesn't seem to be at all about encryption
$endgroup$
– ilkkachu
12 hours ago
$begingroup$
@ilkkachu It's about coding theory, which can be loosely considered to be in the field of cryptography. I would say questions on that topic can certainly be on-topic here. I'm on the fence whether this particular question is though...
$endgroup$
– marcelm
4 hours ago
8
8
$begingroup$
Are you familiar with the pigeonhole principle? Because it's trivial to reduce this question to that.
$endgroup$
– MSalters
15 hours ago
$begingroup$
Are you familiar with the pigeonhole principle? Because it's trivial to reduce this question to that.
$endgroup$
– MSalters
15 hours ago
2
2
$begingroup$
This doesn't seem to be at all about encryption
$endgroup$
– ilkkachu
12 hours ago
$begingroup$
This doesn't seem to be at all about encryption
$endgroup$
– ilkkachu
12 hours ago
$begingroup$
@ilkkachu It's about coding theory, which can be loosely considered to be in the field of cryptography. I would say questions on that topic can certainly be on-topic here. I'm on the fence whether this particular question is though...
$endgroup$
– marcelm
4 hours ago
$begingroup$
@ilkkachu It's about coding theory, which can be loosely considered to be in the field of cryptography. I would say questions on that topic can certainly be on-topic here. I'm on the fence whether this particular question is though...
$endgroup$
– marcelm
4 hours ago
add a comment |
3 Answers
3
active
oldest
votes
$begingroup$
In general, no. Let us say you have a data vector $x$ of $k$ bits and one bit is flipped by an error. There is no way of detecting, let alone correcting this, unless the errored data vector $x'$ is not another valid data vector.
If the errored vector $x'$ is not a valid data vector and you can do detection, then all $k$ bits cannot be used as arbitrary data bits, thus your data rate is less than $k$ bits, implying you are using parity in some sense.
More simply, if there are no parity bits, all $2^k$ data vectors are valid, and thus all errors result in another valid data vector, making all errors undetectable.
Since correction is harder than detection, the same argument rules out correction as well.You can't correct if you can't detect.
$endgroup$
$begingroup$
Not to challenge your statements, which are correct, but now you have me pondering whether you can correct something you can't detect in quantum cryptography. I'm thinking there may be situations where you have enough information to know how to correct a signal, but you disrupt the communication if you try to actually detect it.
$endgroup$
– Cort Ammon
10 hours ago
$begingroup$
@CortAmmon It's the same idea. You can test (...somehow, don't ask me the specifics) whether a given qubit has been tested before, and know whether it was looked at -- but in doing so, you're 'sacrificing' that bit of information. You also can't check what it used to be without, again, sending more information somehow. That might be in the same qubit, of course, but then you're still using some transmitted information. This is a fundamental property of information in general, not of classical memory.
$endgroup$
– Nic Hartley
7 hours ago
add a comment |
$begingroup$
For the general case kodlus answer explained it is not possible. For detecting or correcting errors you need to have redundancy. But many kind of information have included redundancy:
- Some file formats have a fixed header
- Some file formats/protocols only use part of the available symbol space
- Some information only allow certain information in certain context
- ...
A typical way to detect errors in transmission in protocol that only allow 7-bit-ASCII codes was/is to use the 8th bit as parity bit. So you remove redundant information and substitute it with information that allow error-detection or even error-correction.
Or if you send request of type a and expect response of type A but get a response of type B, you know that something went wrong.
New contributor
$endgroup$
$begingroup$
Nice points. Yes, the already available symbol places are not data and may be used for parity checks. Your last paragraph essentially indicates a higher layer protocol which uses information outside the defined channel.
$endgroup$
– kodlu
41 mins ago
add a comment |
$begingroup$
No, because of the Pigeonhole Principle.
Let's say you want to be able to send arbitrary $k$-bit messages. There are $2^k$ possible bit-patterns, and $2^k$ possible intended messages.
Now let's say you want to add error correction. This means that, on top of the $2^k$ correct messages that you want to be able to send, you also want to be able to send some number of incorrect messages (that will get detected and fixed at the other end). Each incorrect message must be distinguishable from every valid message, or else there'd be no way to correct it.
But there are only $2^k$ bit-patterns available; if you want to be able to distinguish $2^k$ correct messages, plus some additional number of incorrect messages, you'll need more than $k$ bits.
(Adding one bit for parity, for example, gives $2^k+1$ possible patterns, enough for $2^k$ correct messages and $2^k$ incorrect messages.)
New contributor
$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
);
);
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%2f72025%2fcan-error-correction-and-detection-be-done-with-out-adding-extra-bits%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
In general, no. Let us say you have a data vector $x$ of $k$ bits and one bit is flipped by an error. There is no way of detecting, let alone correcting this, unless the errored data vector $x'$ is not another valid data vector.
If the errored vector $x'$ is not a valid data vector and you can do detection, then all $k$ bits cannot be used as arbitrary data bits, thus your data rate is less than $k$ bits, implying you are using parity in some sense.
More simply, if there are no parity bits, all $2^k$ data vectors are valid, and thus all errors result in another valid data vector, making all errors undetectable.
Since correction is harder than detection, the same argument rules out correction as well.You can't correct if you can't detect.
$endgroup$
$begingroup$
Not to challenge your statements, which are correct, but now you have me pondering whether you can correct something you can't detect in quantum cryptography. I'm thinking there may be situations where you have enough information to know how to correct a signal, but you disrupt the communication if you try to actually detect it.
$endgroup$
– Cort Ammon
10 hours ago
$begingroup$
@CortAmmon It's the same idea. You can test (...somehow, don't ask me the specifics) whether a given qubit has been tested before, and know whether it was looked at -- but in doing so, you're 'sacrificing' that bit of information. You also can't check what it used to be without, again, sending more information somehow. That might be in the same qubit, of course, but then you're still using some transmitted information. This is a fundamental property of information in general, not of classical memory.
$endgroup$
– Nic Hartley
7 hours ago
add a comment |
$begingroup$
In general, no. Let us say you have a data vector $x$ of $k$ bits and one bit is flipped by an error. There is no way of detecting, let alone correcting this, unless the errored data vector $x'$ is not another valid data vector.
If the errored vector $x'$ is not a valid data vector and you can do detection, then all $k$ bits cannot be used as arbitrary data bits, thus your data rate is less than $k$ bits, implying you are using parity in some sense.
More simply, if there are no parity bits, all $2^k$ data vectors are valid, and thus all errors result in another valid data vector, making all errors undetectable.
Since correction is harder than detection, the same argument rules out correction as well.You can't correct if you can't detect.
$endgroup$
$begingroup$
Not to challenge your statements, which are correct, but now you have me pondering whether you can correct something you can't detect in quantum cryptography. I'm thinking there may be situations where you have enough information to know how to correct a signal, but you disrupt the communication if you try to actually detect it.
$endgroup$
– Cort Ammon
10 hours ago
$begingroup$
@CortAmmon It's the same idea. You can test (...somehow, don't ask me the specifics) whether a given qubit has been tested before, and know whether it was looked at -- but in doing so, you're 'sacrificing' that bit of information. You also can't check what it used to be without, again, sending more information somehow. That might be in the same qubit, of course, but then you're still using some transmitted information. This is a fundamental property of information in general, not of classical memory.
$endgroup$
– Nic Hartley
7 hours ago
add a comment |
$begingroup$
In general, no. Let us say you have a data vector $x$ of $k$ bits and one bit is flipped by an error. There is no way of detecting, let alone correcting this, unless the errored data vector $x'$ is not another valid data vector.
If the errored vector $x'$ is not a valid data vector and you can do detection, then all $k$ bits cannot be used as arbitrary data bits, thus your data rate is less than $k$ bits, implying you are using parity in some sense.
More simply, if there are no parity bits, all $2^k$ data vectors are valid, and thus all errors result in another valid data vector, making all errors undetectable.
Since correction is harder than detection, the same argument rules out correction as well.You can't correct if you can't detect.
$endgroup$
In general, no. Let us say you have a data vector $x$ of $k$ bits and one bit is flipped by an error. There is no way of detecting, let alone correcting this, unless the errored data vector $x'$ is not another valid data vector.
If the errored vector $x'$ is not a valid data vector and you can do detection, then all $k$ bits cannot be used as arbitrary data bits, thus your data rate is less than $k$ bits, implying you are using parity in some sense.
More simply, if there are no parity bits, all $2^k$ data vectors are valid, and thus all errors result in another valid data vector, making all errors undetectable.
Since correction is harder than detection, the same argument rules out correction as well.You can't correct if you can't detect.
answered 23 hours ago
kodlukodlu
10k2 gold badges13 silver badges33 bronze badges
10k2 gold badges13 silver badges33 bronze badges
$begingroup$
Not to challenge your statements, which are correct, but now you have me pondering whether you can correct something you can't detect in quantum cryptography. I'm thinking there may be situations where you have enough information to know how to correct a signal, but you disrupt the communication if you try to actually detect it.
$endgroup$
– Cort Ammon
10 hours ago
$begingroup$
@CortAmmon It's the same idea. You can test (...somehow, don't ask me the specifics) whether a given qubit has been tested before, and know whether it was looked at -- but in doing so, you're 'sacrificing' that bit of information. You also can't check what it used to be without, again, sending more information somehow. That might be in the same qubit, of course, but then you're still using some transmitted information. This is a fundamental property of information in general, not of classical memory.
$endgroup$
– Nic Hartley
7 hours ago
add a comment |
$begingroup$
Not to challenge your statements, which are correct, but now you have me pondering whether you can correct something you can't detect in quantum cryptography. I'm thinking there may be situations where you have enough information to know how to correct a signal, but you disrupt the communication if you try to actually detect it.
$endgroup$
– Cort Ammon
10 hours ago
$begingroup$
@CortAmmon It's the same idea. You can test (...somehow, don't ask me the specifics) whether a given qubit has been tested before, and know whether it was looked at -- but in doing so, you're 'sacrificing' that bit of information. You also can't check what it used to be without, again, sending more information somehow. That might be in the same qubit, of course, but then you're still using some transmitted information. This is a fundamental property of information in general, not of classical memory.
$endgroup$
– Nic Hartley
7 hours ago
$begingroup$
Not to challenge your statements, which are correct, but now you have me pondering whether you can correct something you can't detect in quantum cryptography. I'm thinking there may be situations where you have enough information to know how to correct a signal, but you disrupt the communication if you try to actually detect it.
$endgroup$
– Cort Ammon
10 hours ago
$begingroup$
Not to challenge your statements, which are correct, but now you have me pondering whether you can correct something you can't detect in quantum cryptography. I'm thinking there may be situations where you have enough information to know how to correct a signal, but you disrupt the communication if you try to actually detect it.
$endgroup$
– Cort Ammon
10 hours ago
$begingroup$
@CortAmmon It's the same idea. You can test (...somehow, don't ask me the specifics) whether a given qubit has been tested before, and know whether it was looked at -- but in doing so, you're 'sacrificing' that bit of information. You also can't check what it used to be without, again, sending more information somehow. That might be in the same qubit, of course, but then you're still using some transmitted information. This is a fundamental property of information in general, not of classical memory.
$endgroup$
– Nic Hartley
7 hours ago
$begingroup$
@CortAmmon It's the same idea. You can test (...somehow, don't ask me the specifics) whether a given qubit has been tested before, and know whether it was looked at -- but in doing so, you're 'sacrificing' that bit of information. You also can't check what it used to be without, again, sending more information somehow. That might be in the same qubit, of course, but then you're still using some transmitted information. This is a fundamental property of information in general, not of classical memory.
$endgroup$
– Nic Hartley
7 hours ago
add a comment |
$begingroup$
For the general case kodlus answer explained it is not possible. For detecting or correcting errors you need to have redundancy. But many kind of information have included redundancy:
- Some file formats have a fixed header
- Some file formats/protocols only use part of the available symbol space
- Some information only allow certain information in certain context
- ...
A typical way to detect errors in transmission in protocol that only allow 7-bit-ASCII codes was/is to use the 8th bit as parity bit. So you remove redundant information and substitute it with information that allow error-detection or even error-correction.
Or if you send request of type a and expect response of type A but get a response of type B, you know that something went wrong.
New contributor
$endgroup$
$begingroup$
Nice points. Yes, the already available symbol places are not data and may be used for parity checks. Your last paragraph essentially indicates a higher layer protocol which uses information outside the defined channel.
$endgroup$
– kodlu
41 mins ago
add a comment |
$begingroup$
For the general case kodlus answer explained it is not possible. For detecting or correcting errors you need to have redundancy. But many kind of information have included redundancy:
- Some file formats have a fixed header
- Some file formats/protocols only use part of the available symbol space
- Some information only allow certain information in certain context
- ...
A typical way to detect errors in transmission in protocol that only allow 7-bit-ASCII codes was/is to use the 8th bit as parity bit. So you remove redundant information and substitute it with information that allow error-detection or even error-correction.
Or if you send request of type a and expect response of type A but get a response of type B, you know that something went wrong.
New contributor
$endgroup$
$begingroup$
Nice points. Yes, the already available symbol places are not data and may be used for parity checks. Your last paragraph essentially indicates a higher layer protocol which uses information outside the defined channel.
$endgroup$
– kodlu
41 mins ago
add a comment |
$begingroup$
For the general case kodlus answer explained it is not possible. For detecting or correcting errors you need to have redundancy. But many kind of information have included redundancy:
- Some file formats have a fixed header
- Some file formats/protocols only use part of the available symbol space
- Some information only allow certain information in certain context
- ...
A typical way to detect errors in transmission in protocol that only allow 7-bit-ASCII codes was/is to use the 8th bit as parity bit. So you remove redundant information and substitute it with information that allow error-detection or even error-correction.
Or if you send request of type a and expect response of type A but get a response of type B, you know that something went wrong.
New contributor
$endgroup$
For the general case kodlus answer explained it is not possible. For detecting or correcting errors you need to have redundancy. But many kind of information have included redundancy:
- Some file formats have a fixed header
- Some file formats/protocols only use part of the available symbol space
- Some information only allow certain information in certain context
- ...
A typical way to detect errors in transmission in protocol that only allow 7-bit-ASCII codes was/is to use the 8th bit as parity bit. So you remove redundant information and substitute it with information that allow error-detection or even error-correction.
Or if you send request of type a and expect response of type A but get a response of type B, you know that something went wrong.
New contributor
New contributor
answered 8 hours ago
H. IddenH. Idden
1211 bronze badge
1211 bronze badge
New contributor
New contributor
$begingroup$
Nice points. Yes, the already available symbol places are not data and may be used for parity checks. Your last paragraph essentially indicates a higher layer protocol which uses information outside the defined channel.
$endgroup$
– kodlu
41 mins ago
add a comment |
$begingroup$
Nice points. Yes, the already available symbol places are not data and may be used for parity checks. Your last paragraph essentially indicates a higher layer protocol which uses information outside the defined channel.
$endgroup$
– kodlu
41 mins ago
$begingroup$
Nice points. Yes, the already available symbol places are not data and may be used for parity checks. Your last paragraph essentially indicates a higher layer protocol which uses information outside the defined channel.
$endgroup$
– kodlu
41 mins ago
$begingroup$
Nice points. Yes, the already available symbol places are not data and may be used for parity checks. Your last paragraph essentially indicates a higher layer protocol which uses information outside the defined channel.
$endgroup$
– kodlu
41 mins ago
add a comment |
$begingroup$
No, because of the Pigeonhole Principle.
Let's say you want to be able to send arbitrary $k$-bit messages. There are $2^k$ possible bit-patterns, and $2^k$ possible intended messages.
Now let's say you want to add error correction. This means that, on top of the $2^k$ correct messages that you want to be able to send, you also want to be able to send some number of incorrect messages (that will get detected and fixed at the other end). Each incorrect message must be distinguishable from every valid message, or else there'd be no way to correct it.
But there are only $2^k$ bit-patterns available; if you want to be able to distinguish $2^k$ correct messages, plus some additional number of incorrect messages, you'll need more than $k$ bits.
(Adding one bit for parity, for example, gives $2^k+1$ possible patterns, enough for $2^k$ correct messages and $2^k$ incorrect messages.)
New contributor
$endgroup$
add a comment |
$begingroup$
No, because of the Pigeonhole Principle.
Let's say you want to be able to send arbitrary $k$-bit messages. There are $2^k$ possible bit-patterns, and $2^k$ possible intended messages.
Now let's say you want to add error correction. This means that, on top of the $2^k$ correct messages that you want to be able to send, you also want to be able to send some number of incorrect messages (that will get detected and fixed at the other end). Each incorrect message must be distinguishable from every valid message, or else there'd be no way to correct it.
But there are only $2^k$ bit-patterns available; if you want to be able to distinguish $2^k$ correct messages, plus some additional number of incorrect messages, you'll need more than $k$ bits.
(Adding one bit for parity, for example, gives $2^k+1$ possible patterns, enough for $2^k$ correct messages and $2^k$ incorrect messages.)
New contributor
$endgroup$
add a comment |
$begingroup$
No, because of the Pigeonhole Principle.
Let's say you want to be able to send arbitrary $k$-bit messages. There are $2^k$ possible bit-patterns, and $2^k$ possible intended messages.
Now let's say you want to add error correction. This means that, on top of the $2^k$ correct messages that you want to be able to send, you also want to be able to send some number of incorrect messages (that will get detected and fixed at the other end). Each incorrect message must be distinguishable from every valid message, or else there'd be no way to correct it.
But there are only $2^k$ bit-patterns available; if you want to be able to distinguish $2^k$ correct messages, plus some additional number of incorrect messages, you'll need more than $k$ bits.
(Adding one bit for parity, for example, gives $2^k+1$ possible patterns, enough for $2^k$ correct messages and $2^k$ incorrect messages.)
New contributor
$endgroup$
No, because of the Pigeonhole Principle.
Let's say you want to be able to send arbitrary $k$-bit messages. There are $2^k$ possible bit-patterns, and $2^k$ possible intended messages.
Now let's say you want to add error correction. This means that, on top of the $2^k$ correct messages that you want to be able to send, you also want to be able to send some number of incorrect messages (that will get detected and fixed at the other end). Each incorrect message must be distinguishable from every valid message, or else there'd be no way to correct it.
But there are only $2^k$ bit-patterns available; if you want to be able to distinguish $2^k$ correct messages, plus some additional number of incorrect messages, you'll need more than $k$ bits.
(Adding one bit for parity, for example, gives $2^k+1$ possible patterns, enough for $2^k$ correct messages and $2^k$ incorrect messages.)
New contributor
New contributor
answered 4 hours ago
DraconisDraconis
1112 bronze badges
1112 bronze badges
New contributor
New contributor
add a comment |
add a comment |
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%2f72025%2fcan-error-correction-and-detection-be-done-with-out-adding-extra-bits%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
8
$begingroup$
Are you familiar with the pigeonhole principle? Because it's trivial to reduce this question to that.
$endgroup$
– MSalters
15 hours ago
2
$begingroup$
This doesn't seem to be at all about encryption
$endgroup$
– ilkkachu
12 hours ago
$begingroup$
@ilkkachu It's about coding theory, which can be loosely considered to be in the field of cryptography. I would say questions on that topic can certainly be on-topic here. I'm on the fence whether this particular question is though...
$endgroup$
– marcelm
4 hours ago