首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Gameboy高级串行加密包括目标字节地址?

为什么Gameboy高级串行加密包括目标字节地址?
EN

Cryptography用户
提问于 2017-12-20 05:52:55
回答 1查看 218关注 0票数 3

Gameboy高级加密通过其串口发送的数据。它组合一个随机数来种子一个线性同余生成器。然后,它对这个PRN、数据、对称密钥和文件中的字节偏移量进行PRN处理。

是否有理由这样做?接收方必须知道字节地址,因为它需要知道迭代LCG的次数。

(有关该算法的描述,请参见这里。)

我试图确定该算法是流密码还是CTR模式下块密码的某个版本。

EN

回答 1

Cryptography用户

回答已采纳

发布于 2017-12-20 06:43:11

引用链接的来源:

如果normal_mode然后c=C387h:x=C37Bh:k=43202F2Fh if multiplay_mode然后c=FFF8h:x=A517h:k=6465646Fh m=dword(pp,cc,cc,cc):f=dword(hh,rr,rr,rr,对于ptr=000000C0h to (file_size-4)步骤4 c=c xor dataptr:对于i=1 to 32:c=c shr 1:如果进位,则c=c xor x:next m=(6F646573h*m)+1 send_32_or_2x16 (数据ptr xor (-2000000h-ptr) xor m k)下一个c=c xor f:代表i=1 to 32:c=c shr 1:如果携带,那么c=c xor x:next m= (c) pp调色板_data cc随机client_data1.3从从1-3,如果从服务器不存在,则为11h+client_data1+client_data2+client_data3.,FFh

我把这个问题理解为问xor (-2000000h-ptr)的角色。

它通过默默无闻来发布一小层安全信息,但从密码学的角度来看并没有加强算法,因为被动窃听者只需计算交换的八进制数就可以知道ptr

该算法是用于加密的流密码(该密钥流作为线性同步器m、上述(-2000000h-ptr)和密钥k的异或);以及用于完整性的MAC (使用由x定义的具有反馈多项式的循环冗余校验c )。整件事更多的是通过默默无闻而不是真正的秘密。

更新:ptr术语不能自然地被视为CTR运作模式CTR运作模式的计数器。为此,我们需要密钥流的块作为键和计数器的函数来快速表达,而不需要其他内部状态按顺序演化。这里还有其他这样的内部状态m。否则,就很容易将在CTR模式下工作的密码转换为直接访问,当这里迭代的LCG使得这很不容易。我看不出在任何模式下把这看作是块密码的自然方式。

另一方面,如果我们真的想这样做,可以将LCG m的状态表示为ptr的当前值和初始m0=dword(pp,cc,cc,cc)的函数F,然后密钥流变成(-2000000h-ptr) xor F(ptr,m0) xor k,或者E_{(\mathtt{m_0},\mathtt{k})}(\mathtt{ptr}),我们有一个CTR模式,有一个分组密码E,它的明文输入扩散非常弱。如果我们迭代地实现F,这将是非常低效率的,但是有一些方法可以避免。

票数 5
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/54101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档