2015-08-13 10 views
1

Мне нужно использовать nCipher HSM для генерации ключей AES256, а затем экспортировать (записывать в файл) их во внешние системы.Генерировать экспортируемые ключи AES в nCipher с JCE

KeyGenerator kg = KeyGenerator.getInstance("AES", "nCipherKM"); 
kg.init(256); 
SecretKey key = kg.generateKey(); 
//No problem until here 
byte[] raw = key.getEncoded(); 

Выдает исключение для обеспечения безопасности. Не выдавай ключ. Поэтому я использовал подход ниже. Оба ключа генерируются одинаково? Есть ли лучший способ добиться того, что мне нужно?

SecureRandom random = SecureRandom.getInstance("RNG", "nCipherKM"); 
byte[] rand = new byte[32]; 
random.nextBytes(rand); 
SecretKey key = new SecretKeySpec(rand, "AES"); 
byte[] raw = key.getEncoded(); 

Спасибо,

Ведата

ответ

1

Ведата, поставщик nCipherKM генерирует фактический материал ключа на аппаратный модуль безопасности (ов) он соединяет. HSM предназначен для того, чтобы не допустить, чтобы у вас были фактические ключевые биты: сохранение этих секретных целей в жизни.

Вторая последовательность будет получать случайные данные из случайного генератора HSM, который представляет собой специализированную генератор случайных бит NIST Specialized 800-90A, затрачиваемую на основе аппаратной энтропии. Это тот же тип случайного материала, который HSM использует внутри для генерации ключей. Поскольку у вас, похоже, нет каких-либо требований к защите HSM для получаемых ключей, вам должно быть хорошо идти.

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

  • Нет связанных вопросов^_^