CN117978367B - 一种基于risc-v架构的加密方法 - Google Patents
一种基于risc-v架构的加密方法 Download PDFInfo
- Publication number
- CN117978367B CN117978367B CN202410362309.9A CN202410362309A CN117978367B CN 117978367 B CN117978367 B CN 117978367B CN 202410362309 A CN202410362309 A CN 202410362309A CN 117978367 B CN117978367 B CN 117978367B
- Authority
- CN
- China
- Prior art keywords
- data
- byte
- matrix
- column
- encrypted
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种基于RISC‑V架构的加密方法,涉及数据加密技术领域,包括:将获取的待加密数据加载到RISC‑V处理器的SIMD寄存器中;采用扩展S盒表和SIMD指令,并行地对多个字节进行替换;将替换后的数据进行分组,每组数据分别作为一个行向量,通过SIMD指令集中的数据移位指令,对行向量进行并行循环移位;将行移位后的数据进行矩阵变换,并行执行列混淆中的有限域乘法和有限域加法运算,得到列混淆后的数据;采用密钥调度算法,根据初始密钥生成每一轮加密的轮密钥,并行执行轮密钥加操作,将列混淆后的数据与对应的轮密钥进行异或运算,得到轮密钥加后的数据。针对现有技术中存在的数据加密安全性低的问题,本申请提高了数据加密的安全性。
Description
技术领域
本申请涉及数据加密技术领域,特别涉及一种基于RISC-V架构的加密方法。
背景技术
随着信息技术的飞速发展和网络空间的日益开放,数据安全问题已经成为全球关注的焦点。在各行各业的信息化进程中,海量的敏感数据通过网络进行传输和存储,如何保护这些数据免受未经授权的访问、窃取和篡改,成了一个亟待解决的关键问题。数据加密技术作为保障信息安全的核心手段,在现代网络空间安全中扮演着不可或缺的角色。
然而,当前广泛使用的数据加密技术仍然存在着诸多不足之处。传统的加密算法通常采用固定的S盒(Substitution Box)进行字节替换,这种静态的替换方式容易被攻击者通过统计分析等手段破解,降低了加密的安全性。此外,现有的加密算法大多未充分考虑数据自身的特征,对不同类型、不同分布的数据采用相同的加密策略,导致加密效果不理想,数据安全性难以得到有效保障。
在相关技术中,比如中国专利文献CN117240892A中提供了基于RISC-V内核的可拓展信息检测系统,包括:采用AES-256进行加密,从输入的256位密钥生成一系列轮密钥,这些轮密钥将在加密的每个轮次中使用,以进行数据的混淆和置换;在初始轮中,将输入的数据块与第一个轮密钥进行异或操作;进行AES-256的14轮加密,每一轮加密步骤均为,先将数据块中的每个字节替换为预定义的字节,通过查找S盒中的对应值,然后对数据块中的字节进行循环左移,以实现数据的行移位,再对数据块的每一列进行线性变换,最后将轮密钥与数据块进行逐位异或操作,将密钥混入数据;在最后一轮加密中,不包括列混淆步骤,只执行字节代替、行移位和轮密钥加操作,经过数轮加密后,得到最终的密文数据块。但是该方案中数据的置换和重组主要依赖于固定的行移位和列混淆,数据加密的安全性有待进一步提高。
发明内容
1.要解决的技术问题
针对现有技术中存在的数据加密安全性低的问题,本申请提供了一种基于RISC-V架构的加密方法,利用RISC-V处理器结合扩展S盒表等,提高了数据加密的安全性。
2.技术方案
本申请的目的通过以下技术方案实现。
本说明书实施例提供一种基于RISC-V架构的加密方法,包括:获取待加密数据和初始密钥,将获取的待加密数据加载到RISC-V处理器的SIMD寄存器中,SIMD寄存器表示一种单指令多数据寄存器;根据待加密数据的字节分布特征,生成扩展S盒表;将待加密数据作为输入,采用生成的扩展S盒表和SIMD指令,并行地对多个字节进行替换,得到替换后的数据,SIMD指令表示一种同时对多个数据进行相同操作的指令;将替换后的数据进行分组,每组数据分别作为一个行向量,将每个行向量作为输入,通过SIMD指令集中的数据移位指令,对行向量进行并行循环移位,得到行移位后的数据,数据移位指令表示一种同时对多个数据进行位移操作的指令;将行移位后的数据进行矩阵变换,得到变换后的矩阵,将变换后的矩阵作为输入,采用SIMD指令,并行执行列混淆中的有限域乘法和有限域加法运算,得到列混淆后的数据;采用密钥调度算法,根据初始密钥生成每一轮加密的轮密钥,将列混淆后的数据作为输入,采用SIMD指令,并行执行轮密钥加操作,将列混淆后的数据与对应的轮密钥进行异或运算,得到轮密钥加后的数据;将轮密钥加后的数据作为下一轮加密迭代的输入,重复执行上述步骤,直至预设的加密轮次,得到最终的加密数据。
其中,RISC-V是一种开源的指令集架构(ISA),基于精简指令集计算(RISC)原则设计。RISC-V处理器是指实现了RISC-V指令集的处理器,可以执行RISC-V定义的各种指令和操作。RISC-V处理器具有模块化、可扩展、开源等特点,在嵌入式系统、物联网、人工智能等领域有广泛的应用。在本申请中,RISC-V处理器作为加密操作的执行主体,负责获取待加密数据和密钥,执行字节替换、行移位、矩阵变换、列混淆、轮密钥加等一系列加密步骤。RISC-V处理器利用其SIMD指令集和寄存器,实现了加密过程的并行计算和加速。
其中,SIMD寄存器是一种特殊的处理器寄存器,用于支持单指令多数据(SIMD)操作。SIMD寄存器通常具有较大的位宽,如128位、256位或512位,可以同时存储多个数据元素。通过SIMD寄存器,处理器可以在一条指令中对多个数据元素执行相同的操作,实现数据级并行性。在本申请中,RISC-V处理器的SIMD寄存器用于存储待加密数据、中间计算结果以及轮密钥等。通过将数据加载到SIMD寄存器中,处理器可以使用SIMD指令对多个字节或数据元素进行并行计算,如并行字节替换、并行行移位、并行有限域乘法和加法等,显著提高了加密的执行效率。
其中,S盒(Substitution Box)是一种用于字节替换的查找表,将输入字节映射为另一个字节,提供非线性变换。扩展S盒表是指根据待加密数据的字节分布特征,对标准S盒进行优化和扩展得到的S盒表。扩展S盒表针对待加密数据的特点,提供了更加随机和均匀的字节替换,增强了加密的安全性。在本申请中,根据待加密数据的字节分布特征生成扩展S盒表,将其用于字节替换步骤。通过采用扩展S盒表,可以提高字节替换的随机性和不可预测性,增强加密数据的抵抗统计分析和差分分析的能力。
其中,有限域(Finite Field)是一种域的代数结构,其元素数目有限。在密码学中,常使用有限域上的运算,如有限域上的乘法和加法。有限域乘法是指在有限域上执行乘法运算,将两个域元素相乘得到另一个域元素。有限域加法是指在有限域上执行加法运算,将两个域元素相加得到另一个域元素。在本申请中,有限域乘法和有限域加法用于列混淆步骤。将变换后的矩阵作为输入,采用SIMD指令并行执行列混淆中的有限域乘法和有限域加法运算。每个列元素与固定的乘法因子和加法因子在有限域上进行运算,得到混淆后的列元素。有限域运算引入了非线性变换,增强了加密的随机性和抵抗线性攻击的能力。
本申请,通过在RISC-V处理器上利用SIMD寄存器和指令集,并结合扩展S盒表、有限域乘法和有限域加法等技术,上述加密方案实现了高效、安全的数据加密。RISC-V处理器的并行计算能力和灵活性,与加密算法的特点和需求相结合,提供了一种优化的加密实现方案。扩展S盒表和有限域运算则进一步增强了加密的安全强度,提高了抵抗密码分析攻击的能力。
进一步的,根据待加密数据的字节分布特征,生成扩展S盒表,包括:对待加密数据进行分块,得到多个待加密数据块;获取每个待加密数据块的字节分布特征,字节分布特征包含字节值的频率分布和字节之间的关联性;根据获取的字节分布特征,构建多维度的字节替换模式空间,字节替换模式空间中的每个维度对应一种字节分布特征,字节替换模式空间中的每个点表示一个字节替换模式;采用机器学习算法,在字节替换模式空间中进行聚类分析,生成多个字节替换模式簇。
其中,字节值的频率分布是指在待加密数据块中,每个字节值出现的频率或概率分布情况。通过统计每个字节值在数据块中出现的次数,并计算其占数据块总字节数的比例,可以得到字节值的频率分布。在本申请中,获取每个待加密数据块的字节分布特征时,首先分析字节值的频率分布。通过频率分布,可以了解数据块中字节值的分布情况,识别出现频率较高或较低的字节值。这些信息有助于构建更加适应数据特点的字节替换模式,提高加密的安全性和随机性。
其中,字节之间的关联性是指在待加密数据块中,不同字节之间的相关性或依赖关系。通过分析字节之间的统计关联或因果关系,可以发现字节值之间的潜在联系和模式。在本申请中,获取每个待加密数据块的字节分布特征时,除了分析字节值的频率分布外,还考虑字节之间的关联性。通过计算字节之间的相关系数、互信息等指标,可以度量不同字节之间的相关程度和依赖关系。识别出强相关或弱相关的字节对,有助于构建更加复杂和不可预测的字节替换模式,增强加密的安全性。
其中,字节替换模式空间是一个多维度的空间,用于表示不同的字节替换模式。每个维度对应一种字节分布特征,如字节值的频率分布、字节之间的关联性等。字节替换模式空间中的每个点表示一个具体的字节替换模式,即一种将输入字节映射为输出字节的特定方式。在本申请中,根据获取的字节分布特征,构建多维度的字节替换模式空间。通过将不同的字节分布特征作为空间的维度,可以全面刻画字节替换模式的特点和变化。字节替换模式空间提供了一个系统化的框架,用于分析、比较和选择不同的字节替换模式,为生成扩展S盒表提供了理论基础。
其中,字节替换模式簇是指在字节替换模式空间中,通过聚类分析得到的一组相似或相关的字节替换模式。每个字节替换模式簇包含了多个在某些特征上相似的字节替换模式,表示了一种字节替换的共性或趋势。在本申请中,采用机器学习算法在字节替换模式空间中进行聚类分析,生成多个字节替换模式簇。聚类分析可以自动发现字节替换模式之间的相似性和差异性,将具有相似特征的模式归为一类,形成多个模式簇。每个模式簇代表了一种字节替换的基本模式或规律,可以作为生成扩展S盒表的基础。
本申请,通过分析字节值的频率分布和字节之间的关联性,构建字节替换模式空间,并采用机器学习算法进行聚类分析,生成字节替换模式簇,本申请实现了根据待加密数据的字节分布特征生成扩展S盒表的目的。字节分布特征提供了数据块的统计信息和内在规律,字节替换模式空间和字节替换模式簇则提供了一种系统化的方法来分析和选择字节替换模式。通过这种数据驱动的方式,可以生成更加适应待加密数据特点的扩展S盒表,提高加密的安全性和随机性。同时,机器学习算法的引入使得扩展S盒表的生成过程更加自动化和智能化,减少了人工设计的工作量和主观性。
进一步的,根据待加密数据的字节分布特征,生成扩展S盒表,还包括:根据得到的字节替换模式簇,进行模式优化,生成与字节替换模式簇对应的最优字节替换模式,最优字节替换模式表示最大程度地适应对应簇内字节替换模式的字节分布特征;将所有字节替换模式簇的最优字节替换模式组合生成初始扩展S盒表,初始扩展S盒表中的每个字节替换模式与一个字节替换模式簇对应。
其中,模式优化是指在得到字节替换模式簇后,对每个模式簇内的字节替换模式进行优化和改进,生成与该模式簇最匹配、最适应的最优字节替换模式。模式优化的目的是找到能够最大程度地适应对应簇内字节替换模式的字节分布特征的替换模式,以提高扩展S盒表的有效性和安全性。在本申请中,对于每个字节替换模式簇,分析其内部的字节替换模式所对应的字节分布特征。通过计算模式簇内字节替换模式的平均字节值频率分布、平均字节之间的关联性等指标,可以刻画该模式簇的整体字节分布特征。对于模式簇内的每个字节替换模式,评估其与模式簇整体字节分布特征的匹配程度。可以使用相似性度量、距离度量等方法,计算字节替换模式与模式簇特征之间的相似性或差异性。匹配度高的字节替换模式表示更加符合模式簇的特点,能够更好地适应该簇内的字节分布。根据匹配度评估的结果,对模式簇内的字节替换模式进行优化和改进。可以采用启发式算法、优化算法等方法,搜索和调整字节替换模式的参数和结构,以提高其与模式簇特征的匹配度。优化过程可以考虑字节替换的安全性、随机性、效率等因素,生成更加优化和平衡的字节替换模式。经过优化后,从模式簇内选择匹配度最高、最适应模式簇特征的字节替换模式作为最优字节替换模式。最优字节替换模式能够最大程度地适应对应簇内字节替换模式的字节分布特征,具有更好的安全性和有效性。将所有字节替换模式簇的最优字节替换模式组合起来,生成初始扩展S盒表。初始扩展S盒表中的每个字节替换模式与一个字节替换模式簇对应,能够针对不同的字节分布特征提供最优的替换方式。
通过模式优化,本申请能够从字节替换模式簇中提取出最优的字节替换模式,使生成的扩展S盒表更加适应待加密数据的字节分布特征。模式优化过程考虑了字节分布的统计特性和字节替换的安全性要求,通过匹配度评估和优化算法,找到了最佳的字节替换模式。这种优化后的扩展S盒表能够提供更加有效和安全的字节替换,增强加密算法的抵抗能力。
同时,通过将最优字节替换模式组合生成初始扩展S盒表,本申请实现了扩展S盒表的自适应性和多样性。不同的字节替换模式簇对应不同的最优字节替换模式,使得扩展S盒表能够针对不同类型的数据提供最优的替换策略。这种自适应的扩展S盒表生成方法,提高了加密算法的灵活性和适应性,能够更好地应对多样化的加密需求和数据特点。
进一步的,根据得到的字节替换模式簇,进行模式优化,生成与字节替换模式簇对应的最优字节替换模式,包括:对于每个字节替换模式簇,获取簇内所有字节替换模式的字节分布特征,构建字节分布特征矩阵,字节分布特征矩阵的每一行对应一个字节替换模式的字节分布特征向量;采用主成分分析算法,对字节分布特征矩阵进行特征降维处理;计算特征降维后的字节分布特征矩阵的中心向量,作为对应字节替换模式簇的中心字节分布特征;计算特征降维后的字节分布特征矩阵的字节分布特征向量与中心字节分布特征向量之间的欧氏距离,作为差异度;选择差异度最小的字节替换模式,作为对应字节替换模式簇的最优字节替换模式。
其中,字节分布特征矩阵是一个二维矩阵,用于表示字节替换模式簇内所有字节替换模式的字节分布特征。矩阵的每一行对应一个字节替换模式的字节分布特征向量,向量的元素表示该字节替换模式在不同字节值上的频率分布或关联性等特征。在本申请中,对于每个字节替换模式簇,通过获取簇内所有字节替换模式的字节分布特征,构建字节分布特征矩阵。该矩阵汇总了模式簇内字节替换模式的统计特性,为后续的模式优化提供了数据基础。
其中,主成分分析算法是一种常用的特征降维技术,用于将高维特征空间转换为低维特征空间,同时保留数据的主要特征和信息。PCA通过线性变换将原始特征空间中的特征向量转换为新的特征空间中的主成分向量,主成分向量按照重要性排序,前几个主成分向量能够解释数据的大部分方差。在本申请中,采用主成分分析算法对字节分布特征矩阵进行特征降维处理。通过PCA,可以将高维的字节分布特征矩阵转换为低维的主成分矩阵,减少特征的冗余和噪声,提取字节分布特征的主要模式和趋势。降维后的特征矩阵更加简洁和有效,便于后续的中心向量计算和差异度比较。
其中,中心向量是指特征空间中表示数据中心位置的向量,通常用均值向量或中位数向量来表示。在字节分布特征矩阵的情况下,中心向量表示字节替换模式簇内字节分布特征的中心趋势或平均特征。在本申请中,计算特征降维后的字节分布特征矩阵的中心向量,作为对应字节替换模式簇的中心字节分布特征。中心向量反映了模式簇内字节分布特征的共性和平均水平,可以作为评估字节替换模式与模式簇匹配度的参考点。
其中,差异度是指两个向量之间的差异程度,常用欧氏距离、曼哈顿距离等度量方法来计算。在字节分布特征矩阵的情况下,差异度表示字节替换模式的字节分布特征向量与模式簇中心向量之间的差异程度。在本申请中,计算特征降维后的字节分布特征矩阵的字节分布特征向量与中心字节分布特征向量之间的欧氏距离,作为差异度。差异度越小,表示字节替换模式的字节分布特征与模式簇的中心特征越接近,即该字节替换模式与模式簇的匹配度越高。通过比较差异度,可以选择差异度最小的字节替换模式作为对应字节替换模式簇的最优字节替换模式。
通过构建字节分布特征矩阵,采用主成分分析算法进行特征降维,计算中心向量和差异度,本申请实现了对字节替换模式簇进行模式优化,生成与模式簇最匹配的最优字节替换模式。字节分布特征矩阵提供了模式簇内字节替换模式的统计特性,主成分分析算法通过降维简化了特征空间,中心向量和差异度则提供了评估字节替换模式与模式簇匹配度的量化指标。通过选择差异度最小的字节替换模式作为最优模式,保证了生成的扩展S盒表能够最大程度地适应对应模式簇的字节分布特征,提高了加密的有效性和安全性。
进一步的,根据待加密数据的字节分布特征,生成扩展S盒表,还包括:根据获得的最优字节替换模式,构建初始扩展S盒表,初始扩展S盒表中的每个字节替换模式与一个字节替换模式簇对应;将字节替换模式簇的中心字节分布特征作为每个字节替换模式簇的中心点位置;根据字节替换模式簇的中心点位置,对初始扩展S盒表中的字节替换模式进行排序,生成排序后的扩展S盒表,作为最终的扩展S盒表;将最终的扩展S盒表存储在RISC-V处理器的片上存储器内,片上存储器表示RISC-V处理器内部集成的存储器,用于存储加密过程中的数据和操作指令。
其中,初始扩展S盒表是根据获得的最优字节替换模式构建的初步S盒表。它是扩展S盒表生成过程中的一个中间结果,包含了与字节替换模式簇对应的最优字节替换模式。初始扩展S盒表中的每个字节替换模式与一个字节替换模式簇相对应,反映了不同模式簇的最优替换策略。在本申请中,通过将获得的最优字节替换模式组合起来,构建初始扩展S盒表。这一步骤将模式优化的结果应用到S盒表的生成中,确保初始扩展S盒表能够适应不同字节分布特征的数据,提供最优的字节替换效果。初始扩展S盒表为后续的排序和优化提供了基础。
其中,对初始扩展S盒表中的字节替换模式进行排序是指根据字节替换模式簇的中心点位置,对S盒表中的字节替换模式重新排列和组织。通过排序,可以将相似或相关的字节替换模式聚集在一起,形成更加有序和连续的S盒表结构。在本申请中,根据字节替换模式簇的中心点位置对初始扩展S盒表进行排序,生成排序后的扩展S盒表作为最终的扩展S盒表。排序过程考虑了模式簇的中心特征,将与中心特征距离较近的字节替换模式排列在相邻的位置。这种排序方式可以提高S盒表的局部相关性和连续性,使得相似的字节替换模式在S盒表中的分布更加紧凑,从而提高加密的效率和安全性。
其中,片上存储器(On-Chip Memory)是指集成在处理器内部的存储器,与处理器核心紧密耦合。片上存储器通常包括缓存(Cache)、寄存器(Register)和其他类型的存储器,用于存储处理器执行过程中的数据、指令和中间结果。与外部存储器相比,片上存储器具有更低的访问延迟和更高的带宽,可以显著提高处理器的性能。在本申请中,将最终的扩展S盒表存储在RISC-V处理器的片上存储器内。片上存储器提供了快速、高效的存储空间,可以在加密过程中快速访问和读取扩展S盒表。通过将扩展S盒表存储在片上,可以减少访问延迟,提高加密算法的执行效率。同时,片上存储器还可以存储加密过程中的其他数据和操作指令,实现数据和指令的就近访问,进一步优化加密性能。
通过构建初始扩展S盒表,对其进行排序,并将最终的扩展S盒表存储在片上存储器内,上述方案完成了扩展S盒表的生成和优化过程。初始扩展S盒表基于模式优化的结果,包含了适应不同字节分布特征的最优字节替换模式。通过对初始扩展S盒表进行排序,将相似的字节替换模式聚集在一起,提高了S盒表的局部相关性和连续性。最终,将优化后的扩展S盒表存储在片上存储器中,利用片上存储器的快速访问特性,加速了加密过程的执行。这种扩展S盒表的生成和存储方案,充分利用了RISC-V处理器的架构优势,实现了高效、安全的数据加密。通过自适应地生成扩展S盒表,并将其紧密集成到处理器内部,提高了加密算法的性能和灵活性。
进一步的,将待加密数据作为输入,采用生成的扩展S盒表和SIMD指令,并行地对多个字节进行替换,得到替换后的数据,SIMD指令表示一种同时对多个数据进行相同操作的指令,包括:将待加密数据块作为输入,获取对应的字节分布特征;根据待加密数据块的字节分布特征,利用最近邻搜索算法,从存储的扩展S盒表中选择与字节分布特征最匹配的字节替换模式,作为对应数据块的字节替换操作模式;利用SIMD指令,对每个待加密数据块并行执行字节替换操作,每个待加密数据块采用对应的字节替换操作模式,将替换后的数据作为下一步的输入。
其中,最近邻搜索算法是一种常用的数据搜索和匹配算法,用于在给定的数据集合中找到与查询对象最相似或最接近的数据点。该算法基于距离度量(如欧氏距离、曼哈顿距离等)来评估数据点之间的相似性,选择距离最小的数据点作为最近邻。在本申请中,利用最近邻搜索算法从存储的扩展S盒表中选择与待加密数据块的字节分布特征最匹配的字节替换模式。具体而言,将待加密数据块的字节分布特征作为查询对象,计算其与扩展S盒表中各个字节替换模式的字节分布特征之间的距离。通过最近邻搜索,找到距离最小的字节替换模式,作为对应数据块的字节替换操作模式。这种基于最近邻搜索的方式可以自适应地选择最优的字节替换模式,提高加密的有效性和安全性。
其中,字节替换操作是指将数据块中的每个字节根据特定的替换规则或映射关系进行替换,得到替换后的字节值。字节替换操作是许多加密算法中的关键步骤,用于引入非线性变换和混淆,增强数据的随机性和不可预测性。在本申请中,利用SIMD指令对每个待加密数据块并行执行字节替换操作。对于每个数据块,采用通过最近邻搜索选择的字节替换操作模式,将数据块中的字节根据该模式进行替换。SIMD指令可以同时对多个字节进行相同的替换操作,提高了字节替换的并行度和效率。替换后的数据作为下一步操作的输入,用于进一步的加密处理。通过并行执行字节替换操作,可以显著加速加密过程,提高加密的吞吐量和性能。
具体的,获取待加密数据块的字节分布特征,作为查询对象。利用最近邻搜索算法,在存储的扩展S盒表中搜索与查询对象最相似的字节替换模式。这里的相似性基于字节分布特征之间的距离度量。选择距离最小的字节替换模式作为对应数据块的字节替换操作模式。对每个待加密数据块,利用SIMD指令并行执行字节替换操作。每个数据块采用其对应的字节替换操作模式,将数据块中的字节替换为新的字节值。将替换后的数据作为下一步操作的输入,继续进行加密处理。通过最近邻搜索算法和SIMD指令的结合,上述方案实现了自适应和高效的字节替换操作。最近邻搜索算法根据待加密数据块的字节分布特征,动态选择最优的字节替换模式,确保了加密的有效性和安全性。SIMD指令的并行执行能力显著提高了字节替换的效率,加速了加密过程。这种基于数据特征和并行处理的加密方案,充分利用了扩展S盒表的自适应性和SIMD指令的并行性,实现了高性能、高安全的数据加密。通过动态适应数据特点和高效并行处理,提高了加密算法的灵活性和效率。
进一步的,得到列混淆后的数据,包括:将行位移后的数据分组,每组数据构成一个矩阵,矩阵的行数等于SIMD寄存器的数据宽度,矩阵的列数等于行位移后的数据的字节数除以SIMD寄存器的数据宽度;对每个矩阵进行矩阵变换,得到变换后的矩阵;将变换后的矩阵转置,将转置后的矩阵按列划分为多个列向量。
其中,将行位移后的数据分组:确定每组数据的大小,使其等于SIMD寄存器的数据宽度乘以列数。例如,如果SIMD寄存器为128位(16字节),列数为4,则每组数据的大小为64字节。将行位移后的数据按照每组数据的大小进行分组,形成多个数据组。每个数据组包含了多个字节,其中字节数等于SIMD寄存器的数据宽度乘以列数。
其中,每组数据构成一个矩阵:对于每个数据组,将其构成一个矩阵。矩阵的行数等于SIMD寄存器的数据宽度,即每行包含SIMD寄存器能够并行处理的字节数。矩阵的列数等于行位移后的数据的字节数除以SIMD寄存器的数据宽度,即每列包含了多个SIMD寄存器处理后的结果。将数据组中的字节按照行优先的顺序填充到矩阵中,即第一个字节放在矩阵的第一行第一列,第二个字节放在第一行第二列,以此类推,直到填充完整个矩阵。通过将行位移后的数据分组并构成矩阵,可以方便地对数据进行并行处理和矩阵变换操作。矩阵的行数与SIMD寄存器的数据宽度相匹配,使得每行数据可以通过SIMD指令并行处理。矩阵的列数则根据数据的总字节数和SIMD寄存器的数据宽度来确定,以确保所有数据都能被处理。
其中,对变换后的矩阵进行转置:将变换后的矩阵进行转置操作,即将矩阵的行列互换。转置后,原始矩阵的行变成了列,列变成了行。将转置后的矩阵按列划分为多个列向量:对转置后的矩阵,按照列的方向进行划分,将每一列作为一个独立的列向量。每个列向量的长度等于转置前矩阵的行数,即SIMD寄存器的数据宽度。列向量的数量等于转置前矩阵的列数,即行位移后的数据的字节数除以SIMD寄存器的数据宽度。将转置后的矩阵按列顺序依次划分,得到多个列向量,每个列向量包含了一列的数据。通过将转置后的矩阵按列划分为多个列向量,可以方便地对每个列向量进行后续的并行处理,如逐位异或运算和有限域加法运算。列向量的长度与SIMD寄存器的数据宽度相匹配,使得每个列向量可以通过SIMD指令并行处理。列向量的数量则根据原始数据的字节数和SIMD寄存器的数据宽度来确定,以确保所有数据都能被处理。
进一步的,得到列混淆后的数据,还包括:对每个列向量,采用SIMD指令,并行执行逐位异或运算,将所有列向量的有限域乘法结果进行逐位异或,得到列混淆后的中间向量;对列混淆后的中间向量,采用SIMD指令,并行执行有限域加法运算,将中间向量中的所有元素进行有限域加法,得到列混淆后的结果向量;将所有列混淆后的结果向量拼接为列混淆后的数据矩阵;将列混淆后的数据矩阵转置,得到最终的列混淆后的数据。
其中,异或运算是一种二进制运算,用符号“⊕”表示。它的运算规则如下:当两个二进制位不同时(一个为0,另一个为1),异或运算的结果为1。当两个二进制位相同时(都为0或都为1),异或运算的结果为0。在本申请中,异或运算在扩展S盒替换或行位移操作中,用于引入非线性变换和混淆。具体的,将混淆结果拼接为矩阵,并进行转置得到最终的混淆数据:确定矩阵的行数,使其等于SIMD寄存器的数据宽度(例如,如果SIMD寄存器为128位,则行数为16)。确定矩阵的列数,使其等于行位移后的数据的字节数除以SIMD寄存器的数据宽度(例如,如果数据长度为1024字节,则列数为64)。将行位移后的数据按顺序填充到矩阵中,每个字节占据矩阵的一个元素。根据预定义的混淆矩阵或规则,对每个矩阵进行线性变换或非线性变换。变换的目的是引入扩散效应,使得原始数据的每个字节都影响到混淆后的多个字节。变换后的矩阵与原始矩阵具有相同的维度。对每个变换后的矩阵进行转置操作,即将矩阵的行列互换。转置后,原始矩阵的行变成了列,列变成了行。转置操作进一步增强了混淆效果,使得相邻的字节在混淆后的位置发生变化。将转置后的矩阵按列划分,每列形成一个列向量。每个列向量的长度等于SIMD寄存器的数据宽度。将所有列向量按顺序拼接,得到最终的混淆数据。
通过将混淆结果拼接为矩阵,并进行转置操作,上述方案实现了对数据的行列混淆和扩散。矩阵变换引入了复杂的非线性变换,增强了加密的安全性。转置操作进一步打乱了数据的位置关系,使得相邻字节在混淆后的位置发生变化,增加了破解的难度。最终,通过按列划分转置后的矩阵,得到了混淆后的数据,实现了高效、安全的数据混淆。这种基于矩阵变换和转置的混淆方案,充分利用了SIMD寄存器的并行处理能力,提高了加密的效率和吞吐量。同时,通过巧妙的矩阵操作,实现了强大的扩散效应,增强了加密算法的安全性。
进一步的,对每个矩阵进行矩阵变换,得到变换后的矩阵,还包括:将每个矩阵分成多个子矩阵块;对每个子矩阵块,采用行列互换方式,得到变换后的子矩阵块;将变换后的子矩阵块组合为变换后的完整矩阵块;对变换后的完整矩阵块,对矩阵的行和列进行随机交换,得到最终的变换后的矩阵。
其中,矩阵转置是指将矩阵的行列互换,即将矩阵的第i行变成转置后矩阵的第i列,将矩阵的第j列变成转置后矩阵的第j行。转置操作通常用符号“T”表示,例如矩阵A的转置表示为A^T。在本申请中,对每个变换后的矩阵进行转置操作,即将矩阵的行列互换。转置后,原始矩阵的行变成了列,列变成了行。转置操作进一步增强了混淆效果,使得相邻的字节在混淆后的位置发生变化。
其中,将列混淆后的数据矩阵转置:在对每个列向量进行逐位异或运算和有限域加法运算后,得到列混淆后的结果向量。将所有列混淆后的结果向量拼接为列混淆后的数据矩阵。对列混淆后的数据矩阵进行转置操作,即将矩阵的行列互换。转置操作将列混淆后的结果重新排列,得到最终的列混淆后的数据。通过对变换后的矩阵和列混淆后的数据矩阵进行转置操作,上述方案实现了对数据的行列混淆和重排。转置操作改变了数据的位置关系,使得原始数据的相邻字节在混淆后的位置发生变化,增加了破解的难度。同时,转置操作也有助于增强混淆效果,使得混淆后的数据分布更加均匀和随机。
具体的,使用循环遍历矩阵的元素,将第i行第j列的元素赋值给转置后矩阵的第j行第i列。利用SIMD指令,并行处理多个元素的转置操作,提高转置的效率。使用优化的转置算法,如分块转置或者cache友好的转置方法,减少内存访问的开销。通过合理应用矩阵转置操作,上述方案增强了列混淆的效果,使得混淆后的数据分布更加随机和均匀。转置操作与其他步骤的结合,如逐位异或运算和有限域加法运算,进一步提高了加密的安全性和抗攻击能力。这种基于矩阵变换和转置的列混淆方案,充分利用了矩阵运算的特性,实现了高效、可靠的数据混淆。通过巧妙的矩阵操作和SIMD指令的并行处理,提高了加密算法的性能和安全性。
进一步的,获取的初始密钥存储在RISC-V处理器的安全存储区域中,安全存储区域表示一种具有访问保护机制的存储区域。其中,安全存储区域是指在处理器或系统中具有访问保护机制的特定存储区域。它提供了一种安全可靠的方式来存储敏感数据,如密钥、密码、加密参数等。安全存储区域通过硬件或软件的访问控制机制来限制对其内容的访问,防止未经授权的读取、修改或泄露。在本申请中,获取的初始密钥被存储在RISC-V处理器的安全存储区域中。安全存储区域提供了一个受保护的环境,防止初始密钥被未经授权的访问或泄露。只有特权级别足够高的加密模块或操作系统组件才能访问安全存储区域,确保初始密钥的机密性。通过将初始密钥存储在安全存储区域中,可以防止密钥被恶意软件、外部攻击者或物理攻击所获取。安全存储区域采用了加密和完整性保护机制,即使系统遭到入侵或物理攻击,初始密钥也难以被提取或破解。安全存储区域与系统的其他部分相对隔离,防止其他程序或硬件模块对密钥的窥探或干扰。
3.有益效果
相比于现有技术,本申请的优点在于:
通过根据待加密数据的字节分布特征生成自适应的扩展S盒表,替换了传统的固定S盒,增强了加密算法的动态性和不可预测性,提高了加密的安全性;
采用机器学习算法对字节替换模式进行聚类分析和优化,选择最优的字节替换模式,使得字节替换操作更加贴合数据特征,增强了加密的针对性和有效性;
利用RISC-V处理器的SIMD指令和寄存器,实现了高效并行的字节替换和列混淆操作,显著提高了加密的计算效率,同时降低了资源消耗;
引入了行位移和矩阵变换等操作,增加了加密算法的复杂度和混淆度,进一步增强了加密的安全性,抵御了常见的密码分析攻击;
采用安全的密钥管理机制,将初始密钥存储在具有访问保护的安全存储区域,防止密钥泄露,提高了加密系统的整体安全性;
设计了动态轮密钥生成策略,根据初始密钥和密钥调度算法生成每一轮的轮密钥,增强了密钥的随机性和不可预测性,进一步提高了加密的安全性;
通过对列混淆过程进行细粒度的并行化处理,包括列向量划分、有限域运算等,充分发挥了RISC-V架构的并行计算优势,在保证安全性的同时,进一步提高了加密的效率。
附图说明
本说明书将以示例性实施例的方式进一步描述,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书一些实施例所示的一种基于RISC-V架构的加密方法的示例性流程图;
图2是根据本说明书一些实施例所示的获取最优字节替换模式的示例性流程图;
图3是根据本说明书一些实施例所示的获取最终扩展S盒表的示例性流程图;
图4是根据本说明书一些实施例所示的获取最终变换后的矩阵的示例性流程图;
图5是根据本说明书一些实施例所示的获取列混淆后的数据的示例性流程图。
具体实施方式
下面结合附图对本说明书实施例提供的方法和系统进行详细说明。
图1是根据本说明书一些实施例所示的一种基于RISC-V架构的加密方法的示例性流程图,一种基于RISC-V架构的加密方法,包括:获取待加密数据和初始密钥,将获取的待加密数据加载到RISC-V处理器的SIMD寄存器中,SIMD寄存器表示一种单指令多数据寄存器;根据待加密数据的字节分布特征,生成扩展S盒表;将待加密数据作为输入,采用生成的扩展S盒表和SIMD指令,并行地对多个字节进行替换,得到替换后的数据,SIMD指令表示一种同时对多个数据进行相同操作的指令;将替换后的数据进行分组,每组数据分别作为一个行向量,将每个行向量作为输入,通过SIMD指令集中的数据移位指令,对行向量进行并行循环移位,得到行移位后的数据,数据移位指令表示一种同时对多个数据进行位移操作的指令;将行移位后的数据进行矩阵变换,得到变换后的矩阵,将变换后的矩阵作为输入,采用SIMD指令,并行执行列混淆中的有限域乘法和有限域加法运算,得到列混淆后的数据;采用密钥调度算法,根据初始密钥生成每一轮加密的轮密钥,将列混淆后的数据作为输入,采用SIMD指令,并行执行轮密钥加操作,将列混淆后的数据与对应的轮密钥进行异或运算,得到轮密钥加后的数据;将轮密钥加后的数据作为下一轮加密迭代的输入,重复执行上述步骤,直至预设的加密轮次,得到最终的加密数据。
基于本申请的一种基于RISC-V架构的加密装置,包括:RISC-V处理器、片上存储器、安全存储区域和外部存储器。其中,RISC-V处理器内置有SIMD寄存器和扩展S盒表。在加密过程中,首先从外部存储器中读取待加密数据和初始密钥,将它们分别加载到RISC-V处理器的SIMD寄存器和安全存储区域中。
数据分块与字节分布特征提取,处理器首先对待加密数据进行分块处理,将其划分为多个固定大小的数据块。对于每个数据块,提取其字节分布特征,主要包括两个方面:字节值的频率分布和字节之间的关联性。字节值的频率分布反映了数据块中不同字节值出现的频率,可以用一个256维的向量表示,每一维对应一个字节值(0-255),向量的值表示该字节值在数据块中出现的次数。字节之间的关联性反映了数据块中不同字节之间的相关性和依赖性,可以用一个256x256的矩阵表示,矩阵的每个元素(i,j)表示字节值i和字节值j在数据块中同时出现的频率。
字节替换模式空间构建与聚类分析,根据提取的字节分布特征,构建一个多维度的字节替换模式空间。每个字节替换模式对应一个点in the space,其坐标由字节值频率分布向量和字节关联性矩阵展平后的向量拼接而成。采用机器学习中的聚类算法,如K-means或层次聚类,对字节替换模式空间中的点进行聚类分析,将相似的字节替换模式划分到同一个簇中,生成多个字节替换模式簇。聚类的目的是将字节分布特征相似的字节替换模式归为一类,方便后续的模式优化和选择。
字节替换模式优化与最优模式选择,对于每个字节替换模式簇,进一步进行模式优化,以选择最优的字节替换模式。首先,获取簇内所有字节替换模式的字节分布特征,构建一个字节分布特征矩阵,每一行对应一个字节替换模式的特征向量。然后,采用主成分分析(PCA)算法对字节分布特征矩阵进行特征降维处理,将高维的特征向量映射到低维空间中,同时保留主要的特征信息。这样可以去除冗余和噪声,提取字节替换模式的本质特征。在降维后的特征空间中,计算每个字节替换模式与簇中心向量的欧氏距离,选择距离最小、即差异度最小的字节替换模式作为该簇的最优字节替换模式。差异度最小意味着该模式能够最好地代表簇内所有模式的共性特征。
扩展S盒表生成与存储,将每个字节替换模式簇的最优字节替换模式组合起来,形成初始的扩展S盒表。为了进一步优化S盒表的结构,根据各个模式簇的中心点坐标对初始S盒表进行排序,使得相似的字节替换模式在S盒表中相邻,增强S盒表的局部相关性和平滑性。最终得到的扩展S盒表以查找表的形式存储在片上存储器中,方便后续的字节替换操作快速查询和访问。通过以上步骤,RISC-V处理器根据待加密数据的字节分布特征,自适应地生成了一个优化的扩展S盒表,用于后续的加密操作。这种动态生成的S盒表能够更好地适应不同数据的特点,提高加密的安全性和效率。
然后,字节替换模式选择与匹配,处理器首先将待加密数据分块,每个数据块作为字节替换操作的输入。对于每个数据块,提取其字节分布特征,包括字节值频率分布向量和字节关联性矩阵。然后,利用最近邻搜索算法在扩展S盒表中查找与当前数据块字节分布特征最匹配的字节替换模式。最近邻搜索算法通过计算数据块的特征向量与S盒表中各个字节替换模式的特征向量之间的距离(如欧氏距离或余弦相似度),选择距离最小、最相似的字节替换模式作为当前数据块的最优替换模式。这种基于数据特征的自适应模式选择,可以为每个数据块匹配最合适的字节替换规则,提高加密的针对性和有效性。
SIMD指令实现并行字节替换,选择最优字节替换模式后,处理器利用SIMD(SingleInstruction Multiple Data)指令对数据块中的字节进行并行替换。SIMD指令可以同时对多个数据执行相同的操作,大大提高了运算的并行度和效率。具体地,处理器将数据块加载到SIMD寄存器中,每个寄存器可以存储多个字节(如128位寄存器可以存储16个字节)。然后,根据选定的字节替换模式,通过SIMD指令中的查表指令(如vpshufb指令)对寄存器中的所有字节并行执行替换操作。查表指令以字节替换模式为索引,将每个字节映射到对应的替换字节,多个字节可以同时进行映射,实现高效的并行替换。替换后的结果存储在目标SIMD寄存器中,再写回内存,得到替换后的数据180。
数据分组与行移位操作,对替换后的数据180进行分组,每组数据作为一个行向量,存储在SIMD寄存器中。分组的目的是方便后续的行移位操作,将相邻的字节划分到同一组中,形成一个行向量。处理器通过SIMD指令集中的数据移位指令(如vpsllq和vpsrlq指令)对每个行向量进行并行循环移位。循环移位指将行向量中的字节循环左移或右移指定的位数,移出的字节从向量的另一端重新进入。SIMD移位指令可以同时对一个行向量中的所有字节执行移位操作,实现高效的并行移位。每个行向量可以独立地进行不同的移位,增加了加密的混淆度。移位后的结果存储在目标SIMD寄存器中,再写回内存,得到行移位后的数据。通过以上步骤,处理器利用扩展S盒表和SIMD指令实现了高效的并行字节替换和行移位操作,将待加密数据转化为行移位后的数据。这种并行化的处理方式充分利用了RISC-V处理器的SIMD能力,显著提高了加密的速度和效率。同时,自适应的字节替换模式选择和随机化的行移位,增强了加密的动态性和不可预测性,提高了加密的安全性。
数据分组与矩阵构建,处理器首先将行移位后的数据分组,每组数据构成一个矩阵。分组的大小和矩阵的维度可以根据具体需求进行设置,如将数据分为多个128字节的组,每组构成一个16x8的矩阵。矩阵的构建可以通过将每个字节视为矩阵的一个元素,按照行优先或列优先的顺序依次填充到矩阵中。这样,原始数据的字节顺序被映射到矩阵的空间位置关系中,形成了一个二维的数据结构。
子矩阵划分与行列交换,对于每个构建的矩阵,处理器进行子矩阵划分和行列交换操作,以增加数据的混淆度和扩散性。子矩阵划分指将原始矩阵划分为多个更小的子矩阵,每个子矩阵可以独立地进行后续的变换操作。子矩阵的大小和位置可以随机生成或根据预定的规则确定,如将16x8的矩阵划分为4个4x4的子矩阵。对每个子矩阵,处理器执行行列交换操作,即将子矩阵的行与列进行交换,生成一个新的子矩阵。行列交换可以采用不同的策略,如将第i行与第j列交换、将奇数行与偶数列交换等,引入了额外的置换和混淆。子矩阵划分和行列交换的组合,可以在局部范围内对数据进行重组和打乱,增加了加密的复杂度和安全性。
矩阵行列随机交换,在对所有子矩阵完成行列交换后,处理器对整个矩阵的行和列进行随机交换,进一步增加数据的混淆度。行交换指将矩阵的两个不同行的位置进行互换,列交换指将矩阵的两个不同列的位置进行互换。行列交换的位置和顺序可以通过随机数生成器产生,如随机选择两个不同的行号和两个不同的列号,将对应的行和列进行交换。通过随机的行列交换,矩阵中的数据被进一步打乱和重组,增加了加密的不可预测性和抵抗攻击的能力。
变换后矩阵的输出,经过子矩阵划分、行列交换和随机行列交换等一系列变换操作后,处理器得到了最终的变换后矩阵。变换后的矩阵与原始的行移位数据相比,数据的位置和顺序发生了复杂的变化,增强了加密的扩散性和混淆性。处理器将变换后的矩阵输出,作为下一步加密操作的输入。矩阵的输出可以按照行优先或列优先的顺序,将矩阵元素依次写入内存中,得到一个线性的字节序列。通过以上步骤,处理器实现了对行移位后的数据的矩阵变换,生成了变换后的矩阵。矩阵变换引入了多层次的数据重组和置换,显著增强了加密的安全性和抗攻击能力。同时,通过子矩阵划分和行列交换等技术,矩阵变换也提高了加密的并行度和效率,充分利用了RISC-V处理器的计算资源。
矩阵转置与列向量划分,处理器首先对变换后的矩阵进行转置操作,即将矩阵的行和列进行交换,得到转置后的矩阵。转置操作可以通过重新排列矩阵元素的存储顺序实现,如将原矩阵的第i行第j列的元素存储到转置后矩阵的第j行第i列。转置后的矩阵按列划分为多个列向量,每个列向量包含矩阵的一列元素。列向量的长度等于矩阵的行数,多个列向量并行存储在SIMD寄存器中,方便后续的并行计算。
有限域乘法和加法运算,对于每个列向量,处理器使用SIMD指令并行执行列混淆操作,主要包括有限域乘法和有限域加法两种运算。有限域乘法指在有限域上对列向量中的每个元素与一个预定的乘法因子进行相乘,得到一个中间向量。有限域乘法可以通过查表或构建乘法电路来实现,SIMD指令中的乘法指令(如vpmullw指令)可以同时对多个元素进行并行乘法运算。有限域加法指在有限域上对中间向量与一个预定的加法因子进行相加,得到一个结果向量。有限域加法可以通过异或运算来实现,SIMD指令中的异或指令(如vpxor指令)可以同时对多个元素进行并行加法运算。通过有限域乘法和加法的组合,列向量中的每个元素都经过了非线性变换,增加了加密的混淆度和扩散性。
列混淆结果的拼接与转置,处理器对所有列向量执行列混淆操作后,得到了多个列混淆后的结果向量。将这些结果向量按照列的顺序拼接起来,形成了列混淆后的数据矩阵。对列混淆后的数据矩阵再次进行转置操作,将行和列交换回原来的位置,得到最终的列混淆后的数据。这样,原始矩阵的行和列都经过了充分的混淆和扩散,增强了加密的安全性。
SIMD指令的并行计算优势,在列混淆的过程中,处理器充分利用了SIMD指令的并行计算能力,显著提高了运算效率。SIMD指令可以同时对多个数据元素执行相同的操作,如一条SIMD乘法指令可以同时对4个32位整数进行乘法运算。通过将列向量中的元素打包存储在SIMD寄存器中,并使用SIMD指令进行并行计算,处理器可以在一个时钟周期内完成多个元素的有限域乘法和加法运算,大大减少了计算时间和指令数量。此外,SIMD指令还支持数据重排和打包等操作,方便了列向量的划分和结果的拼接,进一步优化了计算流程。通过以上步骤,处理器实现了对变换后的矩阵的列混淆操作,生成了列混淆后的数据。列混淆引入了基于有限域算术的非线性变换,增强了加密的代数复杂度和抗线性攻击能力。同时,通过SIMD指令的并行计算,列混淆的执行效率得到了显著提升,充分发挥了RISC-V处理器的性能优势。列混淆与之前的矩阵变换相结合,构建了一个多层次、高强度的加密网络,为数据安全提供了可靠的保障。
密钥调度算法,处理器采用密钥调度算法,根据初始密钥生成每一轮加密所需的轮密钥。密钥调度算法是一种密钥扩展和生成的方法,通过对初始密钥进行一系列变换和扩展,得到多个不同的子密钥,用于加密过程的不同轮次。常见的密钥调度算法包括基于循环移位、字节替换、异或运算等操作的组合,如AES算法中的密钥扩展过程。密钥调度算法需要满足一定的安全性要求,如子密钥之间的差异性、不可预测性等,以防止攻击者从已知密钥推导出其他密钥。处理器从安全存储区域中读取初始密钥,作为密钥调度算法的输入,经过多轮迭代和变换,生成一系列轮密钥,存储在安全存储区域或寄存器中,供后续的轮密钥加操作使用。
轮密钥加操作,轮密钥加操作是将列混淆后的数据与对应的轮密钥进行组合,得到轮密钥加后的数据。通常采用异或运算来实现轮密钥加,即将数据和密钥的对应比特位进行异或,生成新的数据比特位。异或运算具有如下性质:对两个相同的比特位进行异或得到0,对两个不同的比特位进行异或得到1。异或运算的逆运算就是其本身,即对轮密钥加后的数据再次与the same round key异或,可以得到原始的列混淆数据。轮密钥加操作可以看作是对列混淆数据进行一次基于密钥的扰动和混淆,增加了加密的不确定性和保密性。攻击者在不知道轮密钥的情况下,难以从轮密钥加后的数据中恢复出原始数据。
SIMD指令的并行计算,处理器使用SIMD指令对轮密钥加操作进行并行计算,提高了运算效率。SIMD指令可以同时对多个数据元素执行相同的操作,如一条SIMD异或指令可以同时对4个32位整数进行异或运算。将列混淆后的数据和轮密钥都按照SIMD寄存器的宽度进行划分,每个寄存器中存储多个数据元素或密钥元素。通过SIMD异或指令(如vpxor指令)对寄存器中的数据和密钥进行并行异或运算,得到轮密钥加后的中间结果,再将中间结果合并为完整的轮密钥加后数据。由于SIMD指令可以一次处理多个数据元素,相比于传统的单指令单数据(SISD)模式,SIMD并行计算可以显著减少指令数量和时钟周期,从而加快了轮密钥加操作的速度。
迭代加密和数据流向,轮密钥加操作通常是加密算法中的一个基本步骤,需要与其他步骤(如字节替换、行移位、列混淆等)配合,形成完整的加密流程。处理器将轮密钥加后的数据作为下一轮加密的输入,重复执行字节替换、行移位、列混淆、轮密钥加等步骤,直到完成所有的加密轮次。每一轮使用不同的轮密钥,增加了加密的安全性和抵抗密码分析攻击的能力。经过多轮迭代加密后,处理器得到最终的密文数据,实现了对明文数据的安全保护。通过以上步骤,处理器利用密钥调度算法生成轮密钥,并使用SIMD指令对列混淆后的数据进行并行的轮密钥加操作,得到轮密钥加后的数据。轮密钥加引入了基于密钥的扰动和混淆,提高了加密的保密性和抗攻击性。同时,SIMD并行计算显著加快了轮密钥加的速度,优化了加密的性能。轮密钥加与之前的矩阵变换、列混淆等步骤相结合,构成了一个完整的迭代加密流程,为数据安全提供了全方位的保护。
迭代加密过程,加密算法通常采用迭代结构,通过多轮重复执行一系列基本操作,实现对明文数据的逐步扰动和混淆,最终得到难以破解的密文数据。每一轮加密使用不同的轮密钥,增加了加密的安全性和抵抗密码分析攻击的能力。处理器将轮密钥加后的数据作为新一轮加密的输入,对其依次执行字节替换、行移位、矩阵变换、列混淆等步骤,再与新的轮密钥进行异或运算,得到新一轮的轮密钥加后数据。这个过程重复执行预设的加密轮次,如10轮、12轮或14轮,直至完成所有的加密迭代。每一轮加密的输出作为下一轮加密的输入,形成了一个链式的数据流,使得明文数据经过多次复杂的变换和扰动,逐渐演化为不可识别的密文数据。多轮迭代加密显著增强了加密的安全强度,即使攻击者获取了部分中间结果,也难以推断出原始明文或密钥。
加密轮次的设置,加密轮次是加密算法的一个重要参数,决定了加密过程的迭代次数。加密轮次的选择需要权衡安全性和性能之间的平衡,轮次越多,加密强度越高,但计算开销也越大。常见的加密算法如AES使用10轮、12轮或14轮加密,分别对应密钥长度为128位、192位或256位。DES算法使用16轮加密,密钥长度为56位。加密轮次的设置通常基于安全分析和攻击模型,确保在给定的计算资源下提供足够的安全保障。处理器根据加密算法的规范和安全需求,预设合适的加密轮次,如10轮或12轮。在每一轮加密中,处理器都完整地执行字节替换、行移位、矩阵变换、列混淆和轮密钥加等步骤,保证了加密过程的完整性和一致性。
最终加密结果的输出,经过预设轮次的迭代加密后,处理器得到最终的加密数据,即密文数据。加密数据是明文数据经过多轮复杂变换和混淆后的结果,具有很高的随机性和不可预测性,难以通过统计分析或猜测来破解。处理器将加密数据从内部缓冲区或寄存器中读出,通过系统总线或I/O接口输出到外部存储器中。外部存储器可以是RAM、Flash、硬盘等各种类型的存储设备,用于长期保存加密后的数据。加密数据可以根据需要进行进一步的处理,如填充、格式化、压缩等,以满足不同的应用场景和传输要求。用户可以将加密数据传输到其他设备或系统中,或者将其解密还原为原始的明文数据。
加密流程的优化与加速,处理器在执行加密流程时,充分利用了RISC-V架构的特性和优势,对关键步骤进行了优化和加速。如在字节替换、列混淆和轮密钥加等操作中,都使用了SIMD指令实现并行计算,一次处理多个数据元素,显著提高了运算效率。此外,加密流程还可以采用流水线技术,将不同的操作步骤划分为多个流水级,不同的数据块在不同的流水级上同时进行处理,提高了数据吞吐率和并行度。流水线化的加密流程可以充分利用处理器的计算资源,减少空闲等待时间。处理器还可以针对具体的加密算法和实现方案,对指令序列、数据布局、缓存策略等进行优化,最小化加密过程中的瓶颈和开销,实现高效、高速的加密处理。通过以上步骤,处理器完成了对明文数据的全面加密,生成了最终的加密数据,并将其输出到外部存储器中。多轮迭代加密提供了极高的安全强度,而RISC-V架构的特性和优化技术则保证了加密过程的高效执行。
Claims (5)
1.一种基于RISC-V架构的加密方法,包括:
获取待加密数据和初始密钥,将获取的待加密数据加载到RISC-V处理器的SIMD寄存器中,SIMD寄存器表示一种单指令多数据寄存器;
根据待加密数据的字节分布特征,生成扩展S盒表;
将待加密数据作为输入,采用生成的扩展S盒表和SIMD指令,并行地对多个字节进行替换,得到替换后的数据,SIMD指令表示一种同时对多个数据进行相同操作的指令;
将替换后的数据进行分组,每组数据分别作为一个行向量,将每个行向量作为输入,通过SIMD指令集中的数据移位指令,对行向量进行并行循环移位,得到行移位后的数据,数据移位指令表示一种同时对多个数据进行位移操作的指令;
将行移位后的数据进行矩阵变换,得到变换后的矩阵,将变换后的矩阵作为输入,采用SIMD指令,并行执行列混淆中的有限域乘法和有限域加法运算,得到列混淆后的数据;
采用密钥调度算法,根据初始密钥生成每一轮加密的轮密钥,将列混淆后的数据作为输入,采用SIMD指令,并行执行轮密钥加操作,将列混淆后的数据与对应的轮密钥进行异或运算,得到轮密钥加后的数据;
将轮密钥加后的数据作为下一轮加密迭代的输入,重复执行以上步骤,直至预设的加密轮次,得到最终的加密数据;
根据待加密数据的字节分布特征,生成扩展S盒表,包括:
对待加密数据进行分块,得到多个待加密数据块;
获取每个待加密数据块的字节分布特征,字节分布特征包含字节值的频率分布和字节之间的关联性;
根据获取的字节分布特征,构建多维度的字节替换模式空间,字节替换模式空间中的每个维度对应一种字节分布特征,字节替换模式空间中的每个点表示一个字节替换模式;
采用机器学习算法,在字节替换模式空间中进行聚类分析,生成多个字节替换模式簇;
根据待加密数据的字节分布特征,生成扩展S盒表,还包括:
根据得到的字节替换模式簇,进行模式优化,生成与字节替换模式簇对应的最优字节替换模式,最优字节替换模式表示最大程度地适应对应簇内字节替换模式的字节分布特征;
将所有字节替换模式簇的最优字节替换模式组合生成初始扩展S盒表,初始扩展S盒表中的每个字节替换模式与一个字节替换模式簇对应;
根据得到的字节替换模式簇,进行模式优化,生成与字节替换模式簇对应的最优字节替换模式,包括:
对于每个字节替换模式簇,获取簇内所有字节替换模式的字节分布特征,构建字节分布特征矩阵,字节分布特征矩阵的每一行对应一个字节替换模式的字节分布特征向量;
采用主成分分析算法,对字节分布特征矩阵进行特征降维处理;
计算特征降维后的字节分布特征矩阵的中心向量,作为对应字节替换模式簇的中心字节分布特征;
计算特征降维后的字节分布特征矩阵的字节分布特征向量与中心字节分布特征向量之间的欧氏距离,作为差异度;
选择差异度最小的字节替换模式,作为对应字节替换模式簇的最优字节替换模式;
根据待加密数据的字节分布特征,生成扩展S盒表,还包括:
根据获得的最优字节替换模式,构建初始扩展S盒表,初始扩展S盒表中的每个字节替换模式与一个字节替换模式簇对应;
将字节替换模式簇的中心字节分布特征作为每个字节替换模式簇的中心点位置;
根据字节替换模式簇的中心点位置,对初始扩展S盒表中的字节替换模式进行排序,生成排序后的扩展S盒表,作为最终的扩展S盒表;
将最终的扩展S盒表存储在RISC-V处理器的片上存储器内,片上存储器表示RISC-V处理器内部集成的存储器,用于存储加密过程中的数据和操作指令;
将待加密数据作为输入,采用生成的扩展S盒表和SIMD指令,并行地对多个字节进行替换,得到替换后的数据,SIMD指令表示一种同时对多个数据进行相同操作的指令,包括:
将待加密数据块作为输入,获取对应的字节分布特征;
根据待加密数据块的字节分布特征,利用最近邻搜索算法,从存储的扩展S盒表中选择与字节分布特征最匹配的字节替换模式,作为对应数据块的字节替换操作模式;
利用SIMD指令,对每个待加密数据块并行执行字节替换操作,每个待加密数据块采用对应的字节替换操作模式,将替换后的数据作为下一步的输入。
2.根据权利要求1所述的基于RISC-V架构的加密方法,其特征在于:
得到列混淆后的数据,包括:
将行位移后的数据分组,每组数据构成一个矩阵,矩阵的行数等于SIMD寄存器的数据宽度,矩阵的列数等于行位移后的数据的字节数除以SIMD寄存器的数据宽度;
对每个矩阵进行矩阵变换,得到变换后的矩阵;
将变换后的矩阵转置,将转置后的矩阵按列划分为多个列向量。
3.根据权利要求2所述的基于RISC-V架构的加密方法,其特征在于:
得到列混淆后的数据,还包括:
对每个列向量,采用SIMD指令,并行执行逐位异或运算,将所有列向量的有限域乘法结果进行逐位异或,得到列混淆后的中间向量;
对列混淆后的中间向量,采用SIMD指令,并行执行有限域加法运算,将中间向量中的所有元素进行有限域加法,得到列混淆后的结果向量;
将所有列混淆后的结果向量拼接为列混淆后的数据矩阵;
将列混淆后的数据矩阵转置,得到最终的列混淆后的数据。
4.根据权利要求3所述的基于RISC-V架构的加密方法,其特征在于:
对每个矩阵进行矩阵变换,得到变换后的矩阵,还包括:
将每个矩阵分成多个子矩阵块;
对每个子矩阵块,采用行列互换方式,得到变换后的子矩阵块;
将变换后的子矩阵块组合为变换后的完整矩阵块;
对变换后的完整矩阵块,对矩阵的行和列进行随机交换,得到最终的变换后的矩阵。
5.根据权利要求4所述的基于RISC-V架构的加密方法,其特征在于:
获取的初始密钥存储在RISC-V处理器的安全存储区域中,安全存储区域表示一种具有访问保护机制的存储区域。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410362309.9A CN117978367B (zh) | 2024-03-28 | 2024-03-28 | 一种基于risc-v架构的加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410362309.9A CN117978367B (zh) | 2024-03-28 | 2024-03-28 | 一种基于risc-v架构的加密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117978367A CN117978367A (zh) | 2024-05-03 |
CN117978367B true CN117978367B (zh) | 2024-06-28 |
Family
ID=90848129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410362309.9A Active CN117978367B (zh) | 2024-03-28 | 2024-03-28 | 一种基于risc-v架构的加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117978367B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102013974A (zh) * | 2010-11-30 | 2011-04-13 | 北京航空航天大学 | 基于随机变化的非线性步骤的加密方法 |
CN115348017A (zh) * | 2022-10-18 | 2022-11-15 | 阿里巴巴(中国)有限公司 | 密文处理方法以及装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1510028A4 (en) * | 2002-05-23 | 2008-01-23 | Atmel Corp | CRYPTOGRAPHIC MOTOR OF TECHNICAL EQUIPMENT BASED ON ADVANCED ENCRYPTION STANDARD (AES) |
US8050401B2 (en) * | 2005-09-27 | 2011-11-01 | The Boeing Company | High speed configurable cryptographic architecture |
JP2008209499A (ja) * | 2007-02-23 | 2008-09-11 | Toshiba Corp | Aes復号装置及びプログラム |
CN102142957A (zh) * | 2010-09-17 | 2011-08-03 | 华为技术有限公司 | 数据加密的方法、装置及具有数据加密功能的通信设备 |
CN103684749B (zh) * | 2013-11-26 | 2016-06-29 | 衡阳师范学院 | 一种基于面积与性能平衡优化的klein加密实现方法 |
CN107579813A (zh) * | 2017-09-12 | 2018-01-12 | 四川阵风科技有限公司 | 信息加密、解密方法及装置 |
CN108123791B (zh) * | 2017-12-26 | 2019-03-08 | 衡阳师范学院 | 一种轻量级分组密码scs的实现方法与装置 |
US10797858B2 (en) * | 2018-02-02 | 2020-10-06 | Intel Corporation | Unified hardware accelerator for symmetric-key ciphers |
US11606189B2 (en) * | 2018-08-03 | 2023-03-14 | Arris Enterprises Llc | Method and apparatus for improving the speed of advanced encryption standard (AES) decryption algorithm |
CN112134691B (zh) * | 2020-10-27 | 2023-07-04 | 衡阳师范学院 | 一种部件可重复的nlcs分组密码实现方法、装置及介质 |
CN113645615B (zh) * | 2021-08-12 | 2023-12-22 | 衡阳师范学院 | 轻量级分组密码加密及解密方法 |
CN116318979A (zh) * | 2023-03-17 | 2023-06-23 | 北京电子科技学院 | 一种基于轻量级Piccolo分组密码算法的自编码查找表白盒化构造方法及系统 |
CN117240892A (zh) * | 2023-10-12 | 2023-12-15 | 电子科技大学 | 基于risc-v内核的可拓展信息检测系统 |
CN117411618B (zh) * | 2023-12-07 | 2024-02-20 | 杭州城市大脑有限公司 | 应用于国际赛事的密钥生成方法、装置及加密方法 |
-
2024
- 2024-03-28 CN CN202410362309.9A patent/CN117978367B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102013974A (zh) * | 2010-11-30 | 2011-04-13 | 北京航空航天大学 | 基于随机变化的非线性步骤的加密方法 |
CN115348017A (zh) * | 2022-10-18 | 2022-11-15 | 阿里巴巴(中国)有限公司 | 密文处理方法以及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117978367A (zh) | 2024-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | Fast image encryption algorithm based on parallel computing system | |
Xingyuan et al. | An image encryption algorithm based on ZigZag transform and LL compound chaotic system | |
Kim et al. | Time–space complexity of quantum search algorithms in symmetric cryptanalysis: applying to AES and SHA-2 | |
Luo et al. | Image encryption based on Henon chaotic system with nonlinear term | |
Tezcan | Optimization of advanced encryption standard on graphics processing units | |
Lee et al. | Efficient implementation of AES-CTR and AES-ECB on GPUs with applications for high-speed FrodoKEM and exhaustive key search | |
Feng et al. | Cryptanalysis of the integrated chaotic systems based image encryption algorithm | |
US20180212761A1 (en) | Hardware circuit to perform round computations of arx-based stream ciphers | |
Nishikawa et al. | High-performance symmetric block ciphers on CUDA | |
Andrade et al. | Lyra2: Efficient password hashing with high security against time-memory trade-offs | |
US20250080334A1 (en) | Cryptographic system for post-quantum cryptographic operations | |
CN117527182A (zh) | 一种图像加密方法、装置、终端和存储介质 | |
Zhang et al. | Parallel multi-image encryption based on cross-plane DNA manipulation and a novel 2D chaotic system | |
Patro et al. | An efficient dual-stage pixel-diffusion based multimedia-image encryption using one-type 1D chaotic maps | |
Fan et al. | Quantum image encryption algorithm based on Fisher–Yates algorithm and Logistic mapping | |
Fanfakh et al. | ORSCA-GPU: one round stream cipher algorithm for GPU implementation | |
CN117978367B (zh) | 一种基于risc-v架构的加密方法 | |
Riazi et al. | PriSearch: Efficient search on private data | |
CN109995506B (zh) | Skinny算法优化实现方法、系统、终端、存储介质 | |
Sayed et al. | Split-n-Swap: A New Modification of the Twofish Block Cipher Algorithm | |
Fomin | A timing attack on CUDA implementations of an AES-type block cipher | |
Chen et al. | Deploying scalable and secure secret sharing with gpu many-core architecture | |
Noura et al. | DKEMA: GPU-based and dynamic key-dependent efficient message authentication algorithm | |
Vaz et al. | Improving an Ultra Lightweight AES for IoT Applications | |
CN114254372B (zh) | 数据加密处理方法、系统及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |