Differential and Linear trail propagation in Noekeon

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP












6












$begingroup$


In the Noekeon Cipher Specification they write the following :




The propagation through Lambda is denoted by $(a rightarrow A)$, also called a
step. Because of the linearity of Lambda it is fully deterministic:
both for LC and DC patterns, we have: $A = operatornameLambda(a)$. The fact that the
relation is the same for LC and DC is thanks to the fact that the
Lambda is an orthogonal function. If represented in a matrix, its
inverse is its transpose.




I'm having a hard time understanding why the orthogonality of Lambda affects the relation with regards to selection patterns (LC).



Why does the orthogonality of Lambda make it so that the relationship is the same as for DC ? How would the selection pattern propagate through the linear layer if Lambda was not orthogonal ?










share|improve this question











$endgroup$
















    6












    $begingroup$


    In the Noekeon Cipher Specification they write the following :




    The propagation through Lambda is denoted by $(a rightarrow A)$, also called a
    step. Because of the linearity of Lambda it is fully deterministic:
    both for LC and DC patterns, we have: $A = operatornameLambda(a)$. The fact that the
    relation is the same for LC and DC is thanks to the fact that the
    Lambda is an orthogonal function. If represented in a matrix, its
    inverse is its transpose.




    I'm having a hard time understanding why the orthogonality of Lambda affects the relation with regards to selection patterns (LC).



    Why does the orthogonality of Lambda make it so that the relationship is the same as for DC ? How would the selection pattern propagate through the linear layer if Lambda was not orthogonal ?










    share|improve this question











    $endgroup$














      6












      6








      6


      2



      $begingroup$


      In the Noekeon Cipher Specification they write the following :




      The propagation through Lambda is denoted by $(a rightarrow A)$, also called a
      step. Because of the linearity of Lambda it is fully deterministic:
      both for LC and DC patterns, we have: $A = operatornameLambda(a)$. The fact that the
      relation is the same for LC and DC is thanks to the fact that the
      Lambda is an orthogonal function. If represented in a matrix, its
      inverse is its transpose.




      I'm having a hard time understanding why the orthogonality of Lambda affects the relation with regards to selection patterns (LC).



      Why does the orthogonality of Lambda make it so that the relationship is the same as for DC ? How would the selection pattern propagate through the linear layer if Lambda was not orthogonal ?










      share|improve this question











      $endgroup$




      In the Noekeon Cipher Specification they write the following :




      The propagation through Lambda is denoted by $(a rightarrow A)$, also called a
      step. Because of the linearity of Lambda it is fully deterministic:
      both for LC and DC patterns, we have: $A = operatornameLambda(a)$. The fact that the
      relation is the same for LC and DC is thanks to the fact that the
      Lambda is an orthogonal function. If represented in a matrix, its
      inverse is its transpose.




      I'm having a hard time understanding why the orthogonality of Lambda affects the relation with regards to selection patterns (LC).



      Why does the orthogonality of Lambda make it so that the relationship is the same as for DC ? How would the selection pattern propagate through the linear layer if Lambda was not orthogonal ?







      cryptanalysis block-cipher linear-cryptanalysis differential-analysis






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Mar 17 at 17:11







      Yuon

















      asked Mar 17 at 16:42









      YuonYuon

      837




      837




















          1 Answer
          1






          active

          oldest

          votes


















          4












          $begingroup$

          This is due to the duality between linear and differential trails.
          Let $L$ be an invertible linear map on $mathbbF_2^n$, think of it as a matrix for convenience.
          In general, a nonzero differential $Delta_1 to Delta_2$ over $L$ must satisfy



          $$Delta_2 = L,Delta_1.$$



          A nonzero linear approximation $u_1 to u_2$, however, must satisfy



          $$u_2 = L^-top,u_1$$



          An elementary way to see this is to observe that $u_1^top x = u_2^top (Lx)$ is equivalent to $u_1^top x = (L^top,u_2)^top x$. This holds for all $x in mathbbF_2^n$ whenever $u_2 = L^-top,u_1$, and otherwise for half (some hyperplane) the $x$.



          If $L$ is orthogonal, then $L^-T = L$. So then we have both $Delta_2 = LDelta_1$ and $u_2 = L u_1$.






          share|improve this answer









          $endgroup$












          • $begingroup$
            I suspected it was because of something like that. Could you just give some intuition as to why we want $u^T_1 x = u^T_2(Lx)$ in first place ? If I had to come up with that, I'd think it's the other way around $u^T_2 x = u^T_1 (Lx)$ just like the differential case.
            $endgroup$
            – Yuon
            Mar 17 at 21:43











          • $begingroup$
            @Yuon You can think of the output mask $u_2$ as a selection of some of the output bits, so you want $u_2^top (Lx)$ because $Lx$ is the output.
            $endgroup$
            – Aleph
            Mar 18 at 10:03











          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%2f68085%2fdifferential-and-linear-trail-propagation-in-noekeon%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          4












          $begingroup$

          This is due to the duality between linear and differential trails.
          Let $L$ be an invertible linear map on $mathbbF_2^n$, think of it as a matrix for convenience.
          In general, a nonzero differential $Delta_1 to Delta_2$ over $L$ must satisfy



          $$Delta_2 = L,Delta_1.$$



          A nonzero linear approximation $u_1 to u_2$, however, must satisfy



          $$u_2 = L^-top,u_1$$



          An elementary way to see this is to observe that $u_1^top x = u_2^top (Lx)$ is equivalent to $u_1^top x = (L^top,u_2)^top x$. This holds for all $x in mathbbF_2^n$ whenever $u_2 = L^-top,u_1$, and otherwise for half (some hyperplane) the $x$.



          If $L$ is orthogonal, then $L^-T = L$. So then we have both $Delta_2 = LDelta_1$ and $u_2 = L u_1$.






          share|improve this answer









          $endgroup$












          • $begingroup$
            I suspected it was because of something like that. Could you just give some intuition as to why we want $u^T_1 x = u^T_2(Lx)$ in first place ? If I had to come up with that, I'd think it's the other way around $u^T_2 x = u^T_1 (Lx)$ just like the differential case.
            $endgroup$
            – Yuon
            Mar 17 at 21:43











          • $begingroup$
            @Yuon You can think of the output mask $u_2$ as a selection of some of the output bits, so you want $u_2^top (Lx)$ because $Lx$ is the output.
            $endgroup$
            – Aleph
            Mar 18 at 10:03















          4












          $begingroup$

          This is due to the duality between linear and differential trails.
          Let $L$ be an invertible linear map on $mathbbF_2^n$, think of it as a matrix for convenience.
          In general, a nonzero differential $Delta_1 to Delta_2$ over $L$ must satisfy



          $$Delta_2 = L,Delta_1.$$



          A nonzero linear approximation $u_1 to u_2$, however, must satisfy



          $$u_2 = L^-top,u_1$$



          An elementary way to see this is to observe that $u_1^top x = u_2^top (Lx)$ is equivalent to $u_1^top x = (L^top,u_2)^top x$. This holds for all $x in mathbbF_2^n$ whenever $u_2 = L^-top,u_1$, and otherwise for half (some hyperplane) the $x$.



          If $L$ is orthogonal, then $L^-T = L$. So then we have both $Delta_2 = LDelta_1$ and $u_2 = L u_1$.






          share|improve this answer









          $endgroup$












          • $begingroup$
            I suspected it was because of something like that. Could you just give some intuition as to why we want $u^T_1 x = u^T_2(Lx)$ in first place ? If I had to come up with that, I'd think it's the other way around $u^T_2 x = u^T_1 (Lx)$ just like the differential case.
            $endgroup$
            – Yuon
            Mar 17 at 21:43











          • $begingroup$
            @Yuon You can think of the output mask $u_2$ as a selection of some of the output bits, so you want $u_2^top (Lx)$ because $Lx$ is the output.
            $endgroup$
            – Aleph
            Mar 18 at 10:03













          4












          4








          4





          $begingroup$

          This is due to the duality between linear and differential trails.
          Let $L$ be an invertible linear map on $mathbbF_2^n$, think of it as a matrix for convenience.
          In general, a nonzero differential $Delta_1 to Delta_2$ over $L$ must satisfy



          $$Delta_2 = L,Delta_1.$$



          A nonzero linear approximation $u_1 to u_2$, however, must satisfy



          $$u_2 = L^-top,u_1$$



          An elementary way to see this is to observe that $u_1^top x = u_2^top (Lx)$ is equivalent to $u_1^top x = (L^top,u_2)^top x$. This holds for all $x in mathbbF_2^n$ whenever $u_2 = L^-top,u_1$, and otherwise for half (some hyperplane) the $x$.



          If $L$ is orthogonal, then $L^-T = L$. So then we have both $Delta_2 = LDelta_1$ and $u_2 = L u_1$.






          share|improve this answer









          $endgroup$



          This is due to the duality between linear and differential trails.
          Let $L$ be an invertible linear map on $mathbbF_2^n$, think of it as a matrix for convenience.
          In general, a nonzero differential $Delta_1 to Delta_2$ over $L$ must satisfy



          $$Delta_2 = L,Delta_1.$$



          A nonzero linear approximation $u_1 to u_2$, however, must satisfy



          $$u_2 = L^-top,u_1$$



          An elementary way to see this is to observe that $u_1^top x = u_2^top (Lx)$ is equivalent to $u_1^top x = (L^top,u_2)^top x$. This holds for all $x in mathbbF_2^n$ whenever $u_2 = L^-top,u_1$, and otherwise for half (some hyperplane) the $x$.



          If $L$ is orthogonal, then $L^-T = L$. So then we have both $Delta_2 = LDelta_1$ and $u_2 = L u_1$.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Mar 17 at 20:04









          AlephAleph

          1,3161220




          1,3161220











          • $begingroup$
            I suspected it was because of something like that. Could you just give some intuition as to why we want $u^T_1 x = u^T_2(Lx)$ in first place ? If I had to come up with that, I'd think it's the other way around $u^T_2 x = u^T_1 (Lx)$ just like the differential case.
            $endgroup$
            – Yuon
            Mar 17 at 21:43











          • $begingroup$
            @Yuon You can think of the output mask $u_2$ as a selection of some of the output bits, so you want $u_2^top (Lx)$ because $Lx$ is the output.
            $endgroup$
            – Aleph
            Mar 18 at 10:03
















          • $begingroup$
            I suspected it was because of something like that. Could you just give some intuition as to why we want $u^T_1 x = u^T_2(Lx)$ in first place ? If I had to come up with that, I'd think it's the other way around $u^T_2 x = u^T_1 (Lx)$ just like the differential case.
            $endgroup$
            – Yuon
            Mar 17 at 21:43











          • $begingroup$
            @Yuon You can think of the output mask $u_2$ as a selection of some of the output bits, so you want $u_2^top (Lx)$ because $Lx$ is the output.
            $endgroup$
            – Aleph
            Mar 18 at 10:03















          $begingroup$
          I suspected it was because of something like that. Could you just give some intuition as to why we want $u^T_1 x = u^T_2(Lx)$ in first place ? If I had to come up with that, I'd think it's the other way around $u^T_2 x = u^T_1 (Lx)$ just like the differential case.
          $endgroup$
          – Yuon
          Mar 17 at 21:43





          $begingroup$
          I suspected it was because of something like that. Could you just give some intuition as to why we want $u^T_1 x = u^T_2(Lx)$ in first place ? If I had to come up with that, I'd think it's the other way around $u^T_2 x = u^T_1 (Lx)$ just like the differential case.
          $endgroup$
          – Yuon
          Mar 17 at 21:43













          $begingroup$
          @Yuon You can think of the output mask $u_2$ as a selection of some of the output bits, so you want $u_2^top (Lx)$ because $Lx$ is the output.
          $endgroup$
          – Aleph
          Mar 18 at 10:03




          $begingroup$
          @Yuon You can think of the output mask $u_2$ as a selection of some of the output bits, so you want $u_2^top (Lx)$ because $Lx$ is the output.
          $endgroup$
          – Aleph
          Mar 18 at 10:03

















          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%2f68085%2fdifferential-and-linear-trail-propagation-in-noekeon%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

          How to check contact read email or not when send email to Individual?

          Displaying single band from multi-band raster using QGIS

          How many registers does an x86_64 CPU actually have?