2015-12-23 2 views

ответ

1

Короткий ответ: нет.

Более длинный ответ: в большинстве процессоров нет хорошего способа справиться с этим. Процессоры, которые делают это, имеют блок аппаратного шифрования для ввода-вывода, поэтому данные, когда они ссылаются извне окна, зашифрованы. Фактически вы можете сделать определенную математику по зашифрованным данным по определенным типам шифров. Например, вы можете добавить два зашифрованных значения в IDEA и получить зашифрованный вывод, который является этим дополнением, но это не очень полезно.

Ближайшая вещь, о которой я могу думать, заключается в том, чтобы установить некоторое значение смещения в несколько из 68k-регистров, а затем создать простую сеть Fiestel. Это позволит вам работать с данными. Это были бы только некоторые маски ROR и XOR, но это сделало бы это так, чтобы вы могли получать данные и выходить, но вам нужно было бы тратить циклы, чтобы вы могли дезактивировать данные.

Если у вас есть мягкое ядро на FPGA я видел шифрование на уровне регистра с помощью изолированных ключей, используя PRESENT. Компания BEAR OS от Dartmouth интегрируется с оборудованием, чтобы обеспечить вам изоляцию на уровне процесса. Это может быть хорошим местом для начала, если вам нужны несколько потенциальных клиентов. Удачи.

1

Только я могу думать, не тратя лишних циклов, злоупотребляет тем, что адресная шина 68k составляет всего 24 бита (по крайней мере, на некоторых ранних моделях). Вы можете отложить случайное 8-битное целое число после каждого длинного слова, например.

dc.l ($30<<24)|$FF1234.l 
jsr ($EA<<24)|DisplayText 
lea ($1F<<24)|MainPalette,a2 
clr.b ($1F<<24)|$FF890D.l 

Это не повлияет на 68k процессор при малейшем как высоких 8 битов игнорируются, но кто-то пытается использовать IDA Pro, например, сойдут с ума, так как IDA Pro использует полный 32-бит для адресации! Это означает, что теперь он не может найти какие-либо ссылочные данные, подпрограмму или адрес RAM, если высокие 8 бит не равны 0 или 0xFF (соответственно для ПЗУ и ОЗУ). Конечно, любой умный достаточно, это не большая проблема, но это потребует ручной работы намного больше.

Другие формы шифрования, которые вы можете попробовать, используют полные наборы инструкций Turing, чтобы уменьшить используемые инструкции и затруднить понимание потока программ. Однако, скорее всего, он будет использовать больше времени процессора и ПЗУ, что может быть не идеальным. Тем не менее, I've made something with move only, if you wish to see.

+0

Это действительно хорошая идея. Я помню, что старый MacOS использовал верхние 8 бит для чего-то. –

Смежные вопросы