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?

We get more abuse than anyone else

Should I use a resistor between the gate driver and MOSFET (gate pin)?

Why isn't a binary file shown as 0s and 1s?

How to interpret a promising preprint that was never published?

Word for something indicating the importance of guarding it properly

Can firbolgs cast their racial Detect Magic spell as a ritual?

I have found a mistake on someone's code published online: what is the protocol?

Term “console” in game consoles

"Je suis petite, moi?", purpose of the "moi"?

Which modern firearm should a time traveler bring to be easily reproducible for a historic civilization?

How fast does a character need to move to be effectively invisible?

Is it legal for a supermarket to refuse to sell an adult beer if an adult with them doesn’t have their ID?

Arithmetics in LuaLaTeX

Which GPUs to get for Mathematical Optimization (if any)?

Who determines when road center lines are solid or dashed?

Company looks for long-term employees, but I know I won't be interested in staying long

Zhora asks Deckard: "Are you for real?" Was this meant to be significant?

Difference between c++14 and c++17 using: `*p++ = *p`

Why are there few or no black super GMs?

Operation Unzalgo

Why jet engines sound louder on the ground than inside the aircraft?

Does unblocking power bar outlets through short extension cords increase fire risk?

Why won't some unicode characters print to my terminal?

How to not confuse readers with simultaneous events?



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;








3












$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?










share|improve this question











$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
    3 hours ago

















3












$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?










share|improve this question











$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
    3 hours ago













3












3








3


1



$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?










share|improve this question











$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






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 27 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
    3 hours ago












  • 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
    3 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
3 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
3 hours ago










3 Answers
3






active

oldest

votes


















12












$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.






share|improve this answer









$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



















2












$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.






share|improve this answer








New contributor



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





$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
    29 mins ago


















1












$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.)






share|improve this answer








New contributor



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





$endgroup$















    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
    );



    );













    draft saved

    draft discarded


















    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









    12












    $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.






    share|improve this answer









    $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
















    12












    $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.






    share|improve this answer









    $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














    12












    12








    12





    $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.






    share|improve this answer









    $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.







    share|improve this answer












    share|improve this answer



    share|improve this answer










    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

















    • $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














    2












    $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.






    share|improve this answer








    New contributor



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





    $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
      29 mins ago















    2












    $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.






    share|improve this answer








    New contributor



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





    $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
      29 mins ago













    2












    2








    2





    $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.






    share|improve this answer








    New contributor



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





    $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.







    share|improve this answer








    New contributor



    H. Idden 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 answer



    share|improve this answer






    New contributor



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








    answered 8 hours ago









    H. IddenH. Idden

    1211 bronze badge




    1211 bronze badge




    New contributor



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




    New contributor




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













    • $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
      29 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
      29 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
    29 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
    29 mins ago











    1












    $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.)






    share|improve this answer








    New contributor



    Draconis 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$

      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.)






      share|improve this answer








      New contributor



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





      $endgroup$















        1












        1








        1





        $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.)






        share|improve this answer








        New contributor



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





        $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.)







        share|improve this answer








        New contributor



        Draconis 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 answer



        share|improve this answer






        New contributor



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








        answered 4 hours ago









        DraconisDraconis

        1112 bronze badges




        1112 bronze badges




        New contributor



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




        New contributor




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





























            draft saved

            draft discarded
















































            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%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





















































            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

            ParseJSON using SSJSUsing AMPscript with SSJS ActivitiesHow to resubscribe a user in Marketing cloud using SSJS?Pulling Subscriber Status from Lists using SSJSRetrieving Emails using SSJSProblem in updating DE using SSJSUsing SSJS to send single email in Marketing CloudError adding EmailSendDefinition using SSJS

            Кампала Садржај Географија Географија Историја Становништво Привреда Партнерски градови Референце Спољашње везе Мени за навигацију0°11′ СГШ; 32°20′ ИГД / 0.18° СГШ; 32.34° ИГД / 0.18; 32.340°11′ СГШ; 32°20′ ИГД / 0.18° СГШ; 32.34° ИГД / 0.18; 32.34МедијиПодациЗванични веб-сајту

            19. јануар Садржај Догађаји Рођења Смрти Празници и дани сећања Види још Референце Мени за навигацијуу