产生随机排列的方法及随机排列产生装置制造方法及图纸

技术编号:9279287 阅读:97 留言:0更新日期:2013-10-25 00:23
本发明专利技术公开了一种产生随机排列的方法及随机排列产生装置。通过以下步骤产生随机排列:将N个数的序列布置在矩阵中;对矩阵的行执行随机布置操作以产生中间矩阵;对中间矩阵的列执行随机布置操作以产生第二中间矩阵;以及将第二中间矩阵的N个数布置为所述N个数的重排序列。

【技术实现步骤摘要】
产生随机排列的方法及随机排列产生装置本申请要求于2012年4月2日向韩国知识产权局(KIPO)提交的韩国专利申请No.10-2012-0033797的优先权,该申请的内容整个地通过引用并入本文。
与示例性实施例一致的方法和设备涉及随机排列产生技术,更具体地讲,涉及一种基于二进制随机源产生随机排列的方法、随机排列产生装置和具有该随机排列产生装置的加密/解密装置。
技术介绍
最近,由于数据安全的重要性增加,安全算法被应用于电子装置使用的数据。通常,因为安全算法的执行需要随机排列,所以加密/解密装置需要包括基于二进制随机源(即,具有二进制形式的源)产生随机排列的随机排列产生装置,其中,随机排列产生装置通过硬件或软件实现。常规的随机排列产生装置可基于常规的随机排列产生方法(比如,Fisher和Yates方法等)产生随机排列。然而,难以通过硬件实现常规的随机排列产生方法。另外,如果常规的随机排列产生方法通过硬件实现,则硬件复杂度可能很高。
技术实现思路
示例性实施例的多个方面提供一种产生随机排列的方法,该方法能够具有低硬件复杂度,并且当基于二进制随机源产生随机排列时能够有效地使用二进制随机源。示例性实施例的多个方面还提供一种能够有效地使用二进制随机源的、具有低硬件复杂度的随机排列产生装置。示例性实施例的多个方面还提供一种具有所述随机排列产生装置的加密/解密装置。根据示例性实施例的一方面,提供一种产生随机排列的方法,该方法包括:将N个数的序列布置在矩阵中的步骤,其中,N为等于或大于2的整数;通过对所述矩阵的每行中的数执行第一随机布置操作来产生第一变化矩阵的步骤,其中,基于行随机数执行第一随机布置操作;通过对第一变化矩阵的每列中的数执行第二随机布置操作来产生第二变化矩阵的步骤,其中,基于列随机数执行第二随机布置操作;以及根据第二变化矩阵的行或列将布置在第二变化矩阵中的N个数作为所述N个数的序列的重排序列输出的步骤。所述N个数可具有二进制形式。所述矩阵可以是方阵或长方阵。产生第一变化矩阵的步骤可包括将布置在所述矩阵的每行中的数在所述矩阵的行方向上旋转行随机数的步骤。产生第二变化矩阵的步骤可包括将布置在第一变化矩阵的每列中的数在第一变化矩阵的列方向上旋转列随机数的步骤。可针对所述矩阵的每行独立选择行随机数。行随机数的范围可以在0与之间,其中,j是布置在所述矩阵的每行中的数的数量。可针对第一变化矩阵的每列独立选择列随机数。列随机数的范围可以在0与之间,其中,k是布置在第一变化矩阵的每列中的数的数量。产生第一变化矩阵的步骤可包括:通过将所述矩阵的每行的数布置在至少一行和至少一列中来产生多个行子矩阵的步骤;通过对所述多个行子矩阵中的每个的每行和每列中的数执行旋转操作来产生多个变化行子矩阵的步骤;以及将布置在所述多个变化行子矩阵中的每个中的数作为第一变化矩阵的每行输出的步骤。产生第二变化矩阵的步骤可包括:通过将第一变化矩阵的每列的数布置在至少一行和至少一列中来产生多个列子矩阵的步骤;通过对所述多个列子矩阵中的每个的每行和每列中的数执行旋转操作来产生多个变化列子矩阵的步骤;以及将布置在所述多个变化列子矩阵中的每个中的数作为第二变化矩阵的每列输出的步骤。根据示例性实施例的一方面,提供一种产生随机排列的方法,该方法包括:将N个数的序列布置在矩阵中的步骤,其中,N为等于或大于2的整数;通过对所述矩阵的每行中的数执行第一随机布置操作来产生第一变化矩阵的步骤,其中,基于第一行随机数执行第一随机布置操作;产生与第一变化矩阵的转置矩阵对应的第二变化矩阵的步骤;通过对第二变化矩阵的每行中的数执行第二随机布置操作来产生第三变化矩阵的步骤,其中,基于第二行随机数执行第二随机布置操作;产生与第三变化矩阵的转置矩阵对应的第四变化矩阵的步骤;以及根据第四变化矩阵的行或列将布置在第四变化矩阵中的N个数作为所述N个数的序列的重排序列输出的步骤。所述矩阵可以是方阵或长方阵。产生第一变化矩阵的步骤可包括将布置在所述矩阵的每行中的数在所述矩阵的行方向上旋转第一行随机数的步骤。产生第三变化矩阵的步骤可包括将布置在第二变化矩阵的每行中的数在第二变化矩阵的行方向上旋转第二行随机数的步骤。可针对所述矩阵的每行独立选择第一行随机数。可针对第二变化矩阵的每行独立选择第二行随机数。产生第一变化矩阵的步骤可包括:通过将所述矩阵的每行的数布置在至少一行和至少一列中来产生多个第一子矩阵的步骤;通过对所述多个第一子矩阵中的每个的每行和每列中的数执行旋转操作来产生多个第一变化子矩阵的步骤;以及将布置在所述多个第一变化子矩阵中的每个中的数作为第一变化矩阵的每行输出的步骤。产生第三变化矩阵的步骤可包括:通过将第二变化矩阵的每行的数布置在至少一行和至少一列中来产生多个第二子矩阵的步骤;通过对所述多个第二子矩阵中的每个的每行和每列中的数执行旋转操作来产生多个第二变化子矩阵的步骤;以及将布置在所述多个第二变化子矩阵中的每个中的数作为第三变化矩阵的每行输出的步骤。根据示例性实施例的一方面,提供一种随机排列产生装置,该随机排列产生装置包括:排列输入单元,被构造为接收N个数的初始排列序列,并且被构造为将所述初始排列序列的N个数布置在矩阵中,其中,N为等于或大于2的整数;第一矩阵变化单元,被构造为通过对所述矩阵的每行中的数执行第一随机布置操作来产生第一变化矩阵,其中,基于行随机数执行第一随机布置操作;第二矩阵变化单元,被构造为通过对第一变化矩阵的每列中的数执行第二随机布置操作来产生第二变化矩阵,其中,基于列随机数执行第二随机布置操作;以及排列输出单元,被构造为通过以下步骤产生所述N个数的最终排列序列:根据第二变化矩阵的行或列将布置在第二变化矩阵中的N个数作为最终排列序列输出,所述最终排列序列是所述初始排列序列的重排序列。第一矩阵变化单元可将布置在所述矩阵的每行中的数在所述矩阵的行方向上旋转行随机数,其中,针对所述矩阵的每行独立选择行随机数。第二矩阵变化单元可将布置在第一变化矩阵的每列中的数在第一变化矩阵的列方向上旋转列随机数,其中,针对第一变化矩阵的每列独立选择列随机数。第一矩阵变化单元可通过将所述矩阵的每行的数布置在至少一行和至少一列中来产生多个行子矩阵,可通过对所述多个行子矩阵中的每个的每行和每列中的数执行旋转操作来产生多个变化行子矩阵,并可将布置在所述多个变化行子矩阵中的每个中的数作为第一变化矩阵的每行输出。第二矩阵变化单元可通过将第一变化矩阵的每列的数布置在至少一行和至少一列中来产生多个列子矩阵,可通过对所述多个列子矩阵中的每个的每行和每列中的数执行旋转操作来产生多个变化列子矩阵,并可将布置在所述多个变化列子矩阵中的每个中的数作为第二变化矩阵的每列输出。根据示例性实施例的一方面,提供一种随机排列产生装置,该随机排列产生装置包括:排列输入单元,被构造为接收N个数的初始排列序列,并且被构造为将所述初始排列序列的N个数布置在矩阵中,其中,N为等于或大于2的整数;第一矩阵变化单元,被构造为通过对所述矩阵的每行中的数执行第一随机布置操作来产生第一变化矩阵,其中,基于第一行随机数执行第一随机布置操作;第一矩阵转置单元,产生与第一变化矩阵的转置矩阵对应的第二变化矩阵;第二矩阵变化单元,被构造为通过对第本文档来自技高网...

【技术保护点】
一种产生随机排列的方法,所述方法包括:将N个数的序列布置在矩阵中,其中,N为等于或大于2的整数;通过对所述矩阵的每行中的数执行第一随机布置操作来产生第一变化矩阵,其中,基于行随机数执行第一随机布置操作;通过对第一变化矩阵的每列中的数执行第二随机布置操作来产生第二变化矩阵,其中,基于列随机数执行第二随机布置操作;以及根据第二变化矩阵的行或列将布置在第二变化矩阵中的N个数作为所述N个数的序列的重排序列进行输出。

【技术特征摘要】
2012.04.02 KR 10-2012-00337971.一种用于加密和解密装置的产生随机排列的方法,所述方法包括:将N个数的序列布置在矩阵中,其中,N为等于或大于2的整数;通过对所述矩阵的每行中的数执行第一随机布置操作来产生第一变化矩阵,其中,基于行随机数执行第一随机布置操作;通过对第一变化矩阵的每列中的数执行第二随机布置操作来产生第二变化矩阵,其中,基于列随机数执行第二随机布置操作;以及根据第二变化矩阵的行或列将布置在第二变化矩阵中的N个数作为所述N个数的序列的重排序列进行输出,以用于加密和解密装置的加密和/或解密,其中,产生第一变化矩阵的步骤包括:通过将所述矩阵的每行的数布置在至少一行和至少一列中来产生多个行子矩阵;通过对所述多个行子矩阵中的每个的每行和每列中的数执行旋转操作来产生多个变化行子矩阵;将布置在所述多个变化行子矩阵中的每个中的数作为第一变化矩阵的每行进行输出,其中,所述N个数为加密和解密装置的秘钥、明文、对明文进行加密的过程中产生的中间数据、密文和对密文进行解密的过程中产生的中间数据中的至少一项,其中,行随机数和列随机数分别为加密和解密装置接收的作为二进制随机源的选择信号。2.根据权利要求1所述的方法,其中,所述N个数具有二进制形式。3.根据权利要求1所述的方法,其中,所述矩阵是方阵和长方阵之一。4.根据权利要求3所述的方法,其中,N为大于或等于4的整数,其中,产生第二变化矩阵的步骤包括:通过将第一变化矩阵的每列的数布置在至少一行和至少一列中来产生多个列子矩阵;通过对所述多个列子矩阵中的每个的每行和每列中的数执行旋转操作来产生多个变化列子矩阵;将布置在所述多个变化列子矩阵中的每个中的数作为第二变化矩阵的每列进行输出。5.一种用于加密和解密装置的产生随机排列的方法,所述方法包括:将N个数的序列布置在矩阵中,其中,N为等于或大于2的整数;通过对所述矩阵的每行中的数执行第一随机布置操作来产生第一变化矩阵,其中,基于第一行随机数执行第一随机布置操作;产生与第一变化矩阵的转置矩阵对应的第二变化矩阵;通过对第二变化矩阵的每行中的数执行第二随机布置操作来产生第三变化矩阵,其中,基于第二行随机数执行第二随机布置操作;产生与第三变化矩阵的转置矩阵对应的第四变化矩阵;以及根据第四变化矩阵的行或列将布置在第四变化矩阵中的N个数作为所述N个数的序列的重排序列进行输出,以用于加密和解密装置的加密和/或解密,其中,产生第一变化矩阵的步骤包括:通过将所述矩阵的每行的数布置在至少一行和至少一列中来产生多个第一子矩阵;通过对所述多个第一子矩阵中的每个的每行和每列中的数执行旋转操作来产生多个第一变化子矩阵;将布置在所述多个第一变化子矩阵中的每个中的数作为第一变化矩阵的每行进行输出,其中,所述N个数为加密和解密装置的秘钥、明文、对明文进行加密的过程中产生的中间数据、密文和对密文进行解密的过程中产生的中间数据中的至少一项,其中,第一行随机数和第二行随机数分别为加密和解密装置接收的作为二进制随机源的选择信号。6.根据权利要求5所述的方法,其中,所述矩阵是方阵和长方阵之一。7.根据权利要求6所述的方法,其中,N为大于或等于4的整数,其中,产生第三变化矩阵的步骤包括:通过将第二变化矩阵的每行的数布置在至少一行和至少一列中来产生多个第二子矩阵;通过对所述多个第二子矩阵中的每个的每行和每列中的数执行旋转操作来产生多个第二变化子矩阵;将布置在所述多个第二变化子矩阵中的每个中的数作为第三变化矩阵的每行进行输出。8.一种用于加密和解密装置的随机排列产生装置,包括:排列...

【专利技术属性】
技术研发人员:李容基崔弘默申钟勋
申请(专利权)人:三星电子株式会社
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1