<p>How to find the nonlinear invariants is the core step for the nonlinear invariant attack. In this paper, to reduce the costs in finding nonlinear invariants for linear transformation, an improved algorithm is proposed to obtain nonlinear invariants with low algebraic degree not more than <InlineEquation ID="IEq1"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="224_2025_10216_Article_IEq1.gif" Format="GIF" Height="14" Rendition="HTML" Resolution="72" Type="Linedraw" Width="15" /> </InlineMediaObject> <EquationSource Format="TEX">\(\varvec{k}\)</EquationSource> <EquationSource Format="MATHML"><math> <mrow> <mi mathvariant="bold-italic">k</mi> </mrow> </math></EquationSource> </InlineEquation>, whose time complexity is <InlineEquation ID="IEq2"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="224_2025_10216_Article_IEq2.gif" Format="GIF" Height="48" Rendition="HTML" Resolution="72" Type="Linedraw" Width="112" /> </InlineMediaObject> <EquationSource Format="TEX">\(\varvec{O}\varvec{(}\left[ \sum \limits _{\varvec{i=1}}^{\varvec{k}}{\varvec{C}}_{\varvec{n}}^{\varvec{i}}\right] ^{\varvec{3}}\varvec{)}\)</EquationSource> <EquationSource Format="MATHML"><math> <mrow> <mrow> <mi mathvariant="bold-italic">O</mi> </mrow> <mrow> <mo mathvariant="bold" stretchy="false">(</mo> </mrow> <msup> <mfenced close="]" open="["> <munderover> <mo movablelimits="false">∑</mo> <mrow> <mrow> <mi mathvariant="bold-italic">i</mi> <mo mathvariant="bold">=</mo> <mn mathvariant="bold">1</mn> </mrow> </mrow> <mrow> <mi mathvariant="bold-italic">k</mi> </mrow> </munderover> <msubsup> <mrow> <mi mathvariant="bold-italic">C</mi> </mrow> <mrow> <mrow> <mi mathvariant="bold-italic">n</mi> </mrow> </mrow> <mrow> <mi mathvariant="bold-italic">i</mi> </mrow> </msubsup> </mfenced> <mrow> <mn mathvariant="bold">3</mn> </mrow> </msup> <mrow> <mo mathvariant="bold" stretchy="false">)</mo> </mrow> </mrow> </math></EquationSource> </InlineEquation> for an <InlineEquation ID="IEq3"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="224_2025_10216_Article_IEq3.gif" Format="GIF" Height="10" Rendition="HTML" Resolution="72" Type="Linedraw" Width="16" /> </InlineMediaObject> <EquationSource Format="TEX">\(\varvec{n}\)</EquationSource> <EquationSource Format="MATHML"><math> <mrow> <mi mathvariant="bold-italic">n</mi> </mrow> </math></EquationSource> </InlineEquation>-dimension linear transformations on binary field. Besides, for the <InlineEquation ID="IEq4"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="224_2025_10216_Article_IEq4.gif" Format="GIF" Height="13" Rendition="HTML" Resolution="72" Type="Linedraw" Width="55" /> </InlineMediaObject> <EquationSource Format="TEX">\(\varvec{m}\times \varvec{n}\)</EquationSource> <EquationSource Format="MATHML"><math> <mrow> <mrow> <mi mathvariant="bold-italic">m</mi> </mrow> <mo>×</mo> <mrow> <mi mathvariant="bold-italic">n</mi> </mrow> </mrow> </math></EquationSource> </InlineEquation>-dimension linear transformation on binary field which applies an <InlineEquation ID="IEq5"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="224_2025_10216_Article_IEq5.gif" Format="GIF" Height="10" Rendition="HTML" Resolution="72" Type="Linedraw" Width="16" /> </InlineMediaObject> <EquationSource Format="TEX">\(\varvec{n}\)</EquationSource> <EquationSource Format="MATHML"><math> <mrow> <mi mathvariant="bold-italic">n</mi> </mrow> </math></EquationSource> </InlineEquation>-dimension linear transformation on binary field <InlineEquation ID="IEq6"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="224_2025_10216_Article_IEq6.gif" Format="GIF" Height="10" Rendition="HTML" Resolution="72" Type="Linedraw" Width="21" /> </InlineMediaObject> <EquationSource Format="TEX">\(\varvec{m}\)</EquationSource> <EquationSource Format="MATHML"><math> <mrow> <mi mathvariant="bold-italic">m</mi> </mrow> </math></EquationSource> </InlineEquation> times in parallel, this paper make further improvement of getting its all invariants with algebraic degree not more than <InlineEquation ID="IEq7"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="224_2025_10216_Article_IEq7.gif" Format="GIF" Height="19" Rendition="HTML" Resolution="72" Type="Linedraw" Width="71" /> </InlineMediaObject> <EquationSource Format="TEX">\(\varvec{k}\varvec{(}\varvec{k}\varvec{&lt;}\varvec{m}\varvec{)}\)</EquationSource> <EquationSource Format="MATHML"><math> <mrow> <mrow> <mi mathvariant="bold-italic">k</mi> </mrow> <mrow> <mo mathvariant="bold" stretchy="false">(</mo> </mrow> <mrow> <mi mathvariant="bold-italic">k</mi> </mrow> <mrow> <mo mathvariant="bold">&lt;</mo> </mrow> <mrow> <mi mathvariant="bold-italic">m</mi> </mrow> <mrow> <mo mathvariant="bold" stretchy="false">)</mo> </mrow> </mrow> </math></EquationSource> </InlineEquation>, whose time complexity is <InlineEquation ID="IEq8"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="224_2025_10216_Article_IEq8.gif" Format="GIF" Height="48" Rendition="HTML" Resolution="72" Type="Linedraw" Width="200" /> </InlineMediaObject> <EquationSource Format="TEX">\(\varvec{O}\varvec{(}\varvec{k}\left[ \sum \limits _{\varvec{i=1}}^{\varvec{k}}{\varvec{C}_{\varvec{n(k-1)}}^{\varvec{i}}}\right] ^{\varvec{3}}\varvec{+}\varvec{n}^{\varvec{3k}}\varvec{)}\)</EquationSource> <EquationSource Format="MATHML"><math> <mrow> <mrow> <mi mathvariant="bold-italic">O</mi> </mrow> <mrow> <mo mathvariant="bold" stretchy="false">(</mo> </mrow> <mrow> <mi mathvariant="bold-italic">k</mi> </mrow> <msup> <mfenced close="]" open="["> <munderover> <mo movablelimits="false">∑</mo> <mrow> <mrow> <mi mathvariant="bold-italic">i</mi> <mo mathvariant="bold">=</mo> <mn mathvariant="bold">1</mn> </mrow> </mrow> <mrow> <mi mathvariant="bold-italic">k</mi> </mrow> </munderover> <msubsup> <mrow> <mi mathvariant="bold-italic">C</mi> </mrow> <mrow> <mrow> <mi mathvariant="bold-italic">n</mi> <mo mathvariant="bold" stretchy="false">(</mo> <mi mathvariant="bold-italic">k</mi> <mo mathvariant="bold">-</mo> <mn mathvariant="bold">1</mn> <mo mathvariant="bold" stretchy="false">)</mo> </mrow> </mrow> <mrow> <mi mathvariant="bold-italic">i</mi> </mrow> </msubsup> </mfenced> <mrow> <mn mathvariant="bold">3</mn> </mrow> </msup> <mrow> <mo mathvariant="bold">+</mo> </mrow> <msup> <mrow> <mi mathvariant="bold-italic">n</mi> </mrow> <mrow> <mn mathvariant="bold">3</mn> <mi mathvariant="bold-italic">k</mi> </mrow> </msup> <mrow> <mo mathvariant="bold" stretchy="false">)</mo> </mrow> </mrow> </math></EquationSource> </InlineEquation>. In particular, we take the lightweight block cipher Scream as example to demonstrate the efficiency of our methods, which indicates that the methods in this paper have significant advantages than before.</p>

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Improved Methods to Solve Nonlinear Invariants with Low Algebraic Degree for Linear Transformation

  • Zebin Wang,
  • Chenhui Jin,
  • Jiyan Zhang,
  • Ting Cui

摘要

How to find the nonlinear invariants is the core step for the nonlinear invariant attack. In this paper, to reduce the costs in finding nonlinear invariants for linear transformation, an improved algorithm is proposed to obtain nonlinear invariants with low algebraic degree not more than \(\varvec{k}\) k , whose time complexity is \(\varvec{O}\varvec{(}\left[ \sum \limits _{\varvec{i=1}}^{\varvec{k}}{\varvec{C}}_{\varvec{n}}^{\varvec{i}}\right] ^{\varvec{3}}\varvec{)}\) O ( i = 1 k C n i 3 ) for an \(\varvec{n}\) n -dimension linear transformations on binary field. Besides, for the \(\varvec{m}\times \varvec{n}\) m × n -dimension linear transformation on binary field which applies an \(\varvec{n}\) n -dimension linear transformation on binary field \(\varvec{m}\) m times in parallel, this paper make further improvement of getting its all invariants with algebraic degree not more than \(\varvec{k}\varvec{(}\varvec{k}\varvec{<}\varvec{m}\varvec{)}\) k ( k < m ) , whose time complexity is \(\varvec{O}\varvec{(}\varvec{k}\left[ \sum \limits _{\varvec{i=1}}^{\varvec{k}}{\varvec{C}_{\varvec{n(k-1)}}^{\varvec{i}}}\right] ^{\varvec{3}}\varvec{+}\varvec{n}^{\varvec{3k}}\varvec{)}\) O ( k i = 1 k C n ( k - 1 ) i 3 + n 3 k ) . In particular, we take the lightweight block cipher Scream as example to demonstrate the efficiency of our methods, which indicates that the methods in this paper have significant advantages than before.