有效

基于多方程量子爪查找算法的Feistel-2*密钥恢复攻击方法

周晓东、王晟、方晓明、陈小倩、张松磊、倪文书、张昊、冯宝、卞宇翔、张天兵、巨克真、贾玮
国网福建省电力有限公司

摘要

本发明涉及一种基于多方程量子爪查找算法的Feistel‑2*密钥恢复攻击方法,包括以下步骤:基于Feistel‑2*结构设计方程f<Sub>i</Sub>和g<Sub>i</Sub>;连接方程f<Sub>i</Sub>和g<Sub>i</Sub>,构造函数F(c||x);准备初始态:<Image he="105" wi="1000" file="DDA0003900942120000011.GIF" imgContent="drawing" imgFormat="GIF" orientation="portrait" inline="no"/>其中,s<Sub>b</Sub>,f<Sub>b</Sub>,t<Sub>b</Sub>,a<Sub>b</Sub>分别为寄存器,b=1,2,分别有r(u+1)、rvw、u+1、u+1+vw个量子比特;分别在寄存器s<Sub>b</Sub>和f<Sub>b</Sub>上执行如下酉算子Q<Sub>F</Sub>;如果F(j<Sub>1</Sub>)=F(j<Sub>2</Sub>),则进行翻转相位;执行量子行走算法;重复执行翻转相位和量子行走算法<Image he="131" wi="147" file="DDA0003900942120000012.GIF" imgContent="drawing" imgFormat="GIF" orientation="portrait" inline="yes"/>次;测量寄存器(s<Sub>1</Sub>,s<Sub>2</Sub>)得到(S<Sub>1</Sub>,S<Sub>2</Sub>);如果(j<Sub>1</Sub>,j<Sub>2</Sub>)∈S<Sub>1</Sub>×S<Sub>2</Sub>,则输出量子爪(x<Sub>1</Sub>,x<Sub>2</Sub>),否则无解;根据输出的量子爪(x<Sub>1</Sub>,x<Sub>2</Sub>)以及Grover算法查找所有子密钥。 本发明涉及一种基于多方程量子爪查找算法的Feistel‑2*密钥恢复攻击方法,包括以下步骤:基于Feistel‑2*结构设计方程f和g;连接方程f和g,构造函数F(c||x);准备初始态:其中,s,f,t,a分别为寄存器,b=1,2,分别有r(u+1)、rvw、u+1、u+1+vw个量子比特;分别在寄存器s和f上执行如下酉算子Q;如果F(j)=F(j),则进行翻转相位;执行量子行走算法;重复执行翻转相位和量子行走算法次;测量寄存器(s,s)得到(S,S);如果(j,j)∈S×S,则输出量子爪(x,x),否则无解;根据输出的量子爪(x,x)以及Grover算法查找所有子密钥。