首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >摩托罗拉68000 -可靠密码

摩托罗拉68000 -可靠密码
EN

Stack Overflow用户
提问于 2015-12-23 01:45:01
回答 2查看 123关注 0票数 0

我想知道是否有一种方法可以可靠地加密、加密或隐藏m68k ( assembly in general)中的数字。

代码语言:javascript
复制
I.e: 01=09, 32=1F

或者其他不一致的东西。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-30 13:33:00

只有这样,我才能在不浪费任何额外周期的情况下,滥用68k地址总线只有24位的事实(至少在一些最早的模型上是这样)。您可以在每一个长字地址之后缩进随机的8位整数。

代码语言:javascript
复制
dc.l ($30<<24)|$FF1234.l
jsr ($EA<<24)|DisplayText
lea ($1F<<24)|MainPalette,a2
clr.b ($1F<<24)|$FF890D.l

这不会影响68k处理器在最轻微的高8位被忽略,但任何人试图使用国际开发协会Pro将发疯,因为国际开发协会Pro使用完全32位的寻址!这意味着,只要高8位不是0或0xFF (分别用于ROM和RAM ),它现在就无法找到任何引用的数据、子例程或RAM地址。当然,任何足够聪明的人,这并不是什么大问题,但这需要更多的手工工作。

您可以尝试的其他加密形式,是使用图灵完整指令集,减少使用的指令,并使程序流程更难理解。然而,它可能会使用更多的CPU时间和ROM空间,这可能不是理想的。尽管如此,如果你想看的话,我只做了些动作。

票数 1
EN

Stack Overflow用户

发布于 2015-12-24 02:07:47

简短回答:不。

更长的答案:在大多数CPU中没有一个很好的方法来处理这个问题。这样做的CPU有一个用于IO的硬件加密块,因此从盒子外部引用的数据是加密的。实际上,你可以对某些类型的密码加密数据进行一定的数学运算。例如,您可以在IDEA中添加两个加密的值,并得到一个加密的输出,即添加,但这不是很有用。

我能想到的最接近的事情是将一些偏移值设置到68k寄存器中的几个,然后围绕它建立一个简单的Fi脂l网络。这将允许您对数据进行操作。它只是一些ROR和XOR掩码,但它会使您能够获取数据进出,但您需要浪费周期,以便您可以去混淆数据。

如果您在FPGA上有一个软核,我已经看到在寄存器级使用了使用PRESENT的隔离密钥进行加密。达特茅斯的熊操作系统与硬件集成,使您在进程级别的隔离。如果你需要线索的话,那可能是个很好的开始。祝好运。

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

https://stackoverflow.com/questions/34427319

复制
相关文章

相似问题

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