Я хотел бы прикрепить модуль SRAM к RasPi.
Моя идея - хранить конфиденциальные (зашифрованные) данные на SD-карте, но хранить ключ на модуле SRAM. Он будет иметь свою собственную резервную батарею (или суперконденсатор ) и защитный переключатель, который удалит содержимое, если корпус был открыт.
Есть ли способ сопряжения с SRAM только с 8 доступными линиями GPIO?
Самому модулю SRAM потребуется емкость не менее 128 бит (размер наименьшего ключа AES ), но даже для 1-битной памяти потребуется 7 адресных строк и одна строка данных плюс 2 или 3 строки управления.
Это можно сделать? Я думаю, что можно обмануть, повторно используя линию ввода / вывода, которая была разработана для чего-то другого.
источник
Вы можете просто использовать небольшой микроконтроллер для эмуляции ОЗУ через SPI или I2C.
Все, кроме самых маленьких микросхем, имели бы 128 бит оперативной памяти для хранения ключа
например
MSP430G2001 имеет 128 байт оперативной памяти.
PIC12F508 имеет 50 байт оперативной памяти (16 байт для ключа, 34 байта свободно).
PIC10F202 имеет 24 байт оперативной памяти (16 байт для ключа, 8 байт свободно).
Если вы действительно предпочитаете последовательное ОЗУ, они также существуют
23K640 - это 64 кбит / 2,7-3,6 В
источник
Вы предполагаете, что на Pi доступно только 8 линий gpio. На самом деле можно иметь до 17.
Я не знаю деталей, как получить к ним доступ, но вы можете найти больше информации здесь
http://elinux.org/RPi_Low-level_peripherals
источник
Вы можете использовать I 2 модулей C SRAM, как PCF8570P £ 1.50ish 256x8Bit SRAM. Он работает от 2,5 В до 6,0 В, имеет режим энергосбережения, потребляющий всего 50 нА, и может быть сложен для создания дополнительной оперативной памяти, если это необходимо.
Подключите его непосредственно к I2C или к мастеру для нескольких устройств I2C. Используются только 2 GPIO, Power и Negative, с возможностью MCU отключать сохранение ОЗУ с помощью небольшой батареи.
Алекс Чамберлейнс К вопросу безопасности следует отнестись серьезно, если вы хотите защитить закрытый ключ. Возможно, подумайте о создании какой-то изоляции в вашем коде, которая требует расширения доступа к SRAM.
источник