Differential and Linear trail propagation in Noekeon
$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 = operatorname{Lambda}(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
$endgroup$
add a comment |
$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 = operatorname{Lambda}(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
$endgroup$
add a comment |
$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 = operatorname{Lambda}(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
$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 = operatorname{Lambda}(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
cryptanalysis block-cipher linear-cryptanalysis differential-analysis
edited 8 hours ago
Yuon
asked 9 hours ago
YuonYuon
737
737
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
$begingroup$
This is due to the duality between linear and differential trails.
Let $L$ be an invertible linear map on $mathbb{F}_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 mathbb{F}_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$.
$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
4 hours ago
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "281"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcrypto.stackexchange.com%2fquestions%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
$begingroup$
This is due to the duality between linear and differential trails.
Let $L$ be an invertible linear map on $mathbb{F}_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 mathbb{F}_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$.
$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
4 hours ago
add a comment |
$begingroup$
This is due to the duality between linear and differential trails.
Let $L$ be an invertible linear map on $mathbb{F}_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 mathbb{F}_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$.
$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
4 hours ago
add a comment |
$begingroup$
This is due to the duality between linear and differential trails.
Let $L$ be an invertible linear map on $mathbb{F}_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 mathbb{F}_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$.
$endgroup$
This is due to the duality between linear and differential trails.
Let $L$ be an invertible linear map on $mathbb{F}_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 mathbb{F}_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$.
answered 6 hours ago
AlephAleph
1,3061220
1,3061220
$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
4 hours ago
add a comment |
$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
4 hours ago
$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
4 hours ago
$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
4 hours ago
add a comment |
Thanks for contributing an answer to Cryptography Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcrypto.stackexchange.com%2fquestions%2f68085%2fdifferential-and-linear-trail-propagation-in-noekeon%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown