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;








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












  • 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










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




    $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











    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

            Invision Community Contents History See also References External links Navigation menuProprietaryinvisioncommunity.comIPS Community ForumsIPS Community Forumsthis blog entry"License Changes, IP.Board 3.4, and the Future""Interview -- Matt Mecham of Ibforums""CEO Invision Power Board, Matt Mecham Is a Liar, Thief!"IPB License Explanation 1.3, 1.3.1, 2.0, and 2.1ArchivedSecurity Fixes, Updates And Enhancements For IPB 1.3.1Archived"New Demo Accounts - Invision Power Services"the original"New Default Skin"the original"Invision Power Board 3.0.0 and Applications Released"the original"Archived copy"the original"Perpetual licenses being done away with""Release Notes - Invision Power Services""Introducing: IPS Community Suite 4!"Invision Community Release Notes

            Canceling a color specificationRandomly assigning color to Graphics3D objects?Default color for Filling in Mathematica 9Coloring specific elements of sets with a prime modified order in an array plotHow to pick a color differing significantly from the colors already in a given color list?Detection of the text colorColor numbers based on their valueCan color schemes for use with ColorData include opacity specification?My dynamic color schemes

            Ласкавець круглолистий Зміст Опис | Поширення | Галерея | Примітки | Посилання | Навігаційне меню58171138361-22960890446Bupleurum rotundifoliumEuro+Med PlantbasePlants of the World Online — Kew ScienceGermplasm Resources Information Network (GRIN)Ласкавецькн. VI : Літери Ком — Левиправивши або дописавши її