мне было интересно, если есть способ надежно шифровать, шифровать или скрыть номер в m68k (илисборки в общем).Motorola 68000 - Достоверно зашифровать номер
I.e: 01=09, 32=1F
Или что-то непоследовательное.
Спасибо!
мне было интересно, если есть способ надежно шифровать, шифровать или скрыть номер в m68k (илисборки в общем).Motorola 68000 - Достоверно зашифровать номер
I.e: 01=09, 32=1F
Или что-то непоследовательное.
Спасибо!
Короткий ответ: нет.
Более длинный ответ: в большинстве процессоров нет хорошего способа справиться с этим. Процессоры, которые делают это, имеют блок аппаратного шифрования для ввода-вывода, поэтому данные, когда они ссылаются извне окна, зашифрованы. Фактически вы можете сделать определенную математику по зашифрованным данным по определенным типам шифров. Например, вы можете добавить два зашифрованных значения в IDEA и получить зашифрованный вывод, который является этим дополнением, но это не очень полезно.
Ближайшая вещь, о которой я могу думать, заключается в том, чтобы установить некоторое значение смещения в несколько из 68k-регистров, а затем создать простую сеть Fiestel. Это позволит вам работать с данными. Это были бы только некоторые маски ROR и XOR, но это сделало бы это так, чтобы вы могли получать данные и выходить, но вам нужно было бы тратить циклы, чтобы вы могли дезактивировать данные.
Если у вас есть мягкое ядро на FPGA я видел шифрование на уровне регистра с помощью изолированных ключей, используя PRESENT. Компания BEAR OS от Dartmouth интегрируется с оборудованием, чтобы обеспечить вам изоляцию на уровне процесса. Это может быть хорошим местом для начала, если вам нужны несколько потенциальных клиентов. Удачи.
Только я могу думать, не тратя лишних циклов, злоупотребляет тем, что адресная шина 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.
Это действительно хорошая идея. Я помню, что старый MacOS использовал верхние 8 бит для чего-то. –