Вопрос проверяет знание различий между двумя основными типами шифрования.
Симметричное - один ключ для шифрования/расшифровки (быстрее). Асимметричное - пара ключей (публичный/приватный), безопаснее для обмена ключами
Симметричное шифрование:
Один секретный ключ
Быстрое выполнение
Используется для:
Шифрования больших объемов данных
SSL/TLS (для шифрования трафика)
Примеры: AES, DES
Асимметричное шифрование:
Пара ключей (публичный/приватный)
Медленнее симметричного
Используется для:
Обмена ключами
Цифровых подписей
Примеры: RSA, ECC
Гибридный подход (SSL/TLS):
Асимметричное для обмена ключами
Симметричное для шифрования данных
Пример RSA в Java:
KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA");
generator.initialize(2048);
KeyPair pair = generator.generateKeyPair();
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, pair.getPublic());
byte[] encrypted = cipher.doFinal(data);