Pull to refresh
3
0
Send message

Не все из перечисленных алгоритмов являются алгоритмами шифрования, а именно:


  • MD5, SHA1, SHA256,… — алгоритмы хеширования, задачей которых является преобразование массива входных данных произвольной длины в (выходную) битовую строку фиксированной длины, то есть в этом случае, получается некий "отпечаток пальца" для входных данных [wiki], и нет возможности сделать обратное преобразование.


  • HMAC — алгоритмы создания кода проверки подлинности сообщений, использующие алгоримы хеширования [wiki], в этих алгоритмах задействован секретный ключ.


  • base64 — алгоритм позволяющий представить любую байтовую последовательность в виде печатный символов ASCII, и наоборот.


  • AES, DES, 3DES — вот это как раз алгоритмы шифрования! они принадлежат к группе симметричных алгоритмов шифрования, то есть для шифрование и расшифровки используется один и тот же секретный ключ — что не дает возможность его распространения по открытому (незащищенному) каналу!


  • RSA, ECIES — алгоритмы асимметричного шифрования. Данные алгоритмы используют пару ключей: открытый ключ и закрытый ключ. Открытый ключ используется для операций шифрования и проверки подписи, и может распространятся в открытом виде по незащищенным каналам. Закрытый ключ используется для операций расшифровки и создания подписи, и хранится только и владельца.

VirgilSecurity в своей основе использует гибридное шифрование — асимметричное(ECIES) + симметричное(AES256). При таком подходе возникает необходимость в удобном распространении открытых ключей, чем и занимается Virgil Keys Service.

Если координата Х не нужна то зачем её писать?


Используется представление точки на эллиптической кривой в байтовой последовательности без сжатия
SEC 1 Ver. 2.0 см. секцию "2.3.3 Elliptic-Curve-Point-to-Octet-String Conversion"

А если пишите то почему не писать реальные значения?


Пишется на самом деле реальное зачине, просто для Curve25519 оно всегда равно нулю.

Почему в зашифрованном сообщении много AAAA последовательностей?


Зашифрованное сообщение хранит в себе открытую часть эфемерного ключа, который генерируется в соответствии с алгоритмом ECIES, а раз так, то "AAAA" попадают и туда.

Аутентификация сообщений отсутствует?


Аутентификация сообщения обеспечивается режимом GCM алгоритма AES

Код также проверяется статическим анализатором CoverityScan:


Ну свое то однозначно лучше и роднее :)

реализации далеки от оптимальных в плане оптимизации по скорости

Если скорость не устраивает, рекомендую использовать fork от VirgilSecurity и кривую Curve25519, при этом для вычислений используется оптимизированный вариант на базе Ed25519


Уверен что там пачка варнингов при сборке вылезает, если врубить -Wall

Это голословное заявление :) MbedTLS собирается на Travis-CI с флагами -Wall -Werror

А NIST SP 800-90A у вас с дыркой?

Данный алгоритм реализован как часть библиотеки MbedTLS — https://tls.mbed.org/ctr-drbg-source-code
На дынный момент уязвимостей в данном модуле не найдено — https://tls.mbed.org/security

А NIST SP 800-90A у вас с дыркой?

Данный алгоритм реализован как часть библиотеки MbedTLS — https://tls.mbed.org/ctr-drbg-source-code
На дынный момент уязвимостей в данном модуле не найдено — https://tls.mbed.org/security

From the Java/Android documentation


Java Desktop — Maven:


<dependencies>
  <dependency>
    <groupId>com.virgilsecurity.sdk</groupId>
    <artifactId>client</artifactId>
    <version>3.2.0</version>
  </dependency>
</dependencies>

Java Android — Gradle:


compile 'com.virgilsecurity.sdk:android:3.2.0@aar'
compile 'com.squareup.retrofit2:retrofit:2.0.0'
compile 'com.squareup.retrofit2:converter-gson:2.0.0'
3. Криптостойкость управляется непосредственно разработчиком конечного продукта, посредством выбора (ограничения выбора) ключей, которые генерируется в его приложении. Решения аналогичного в Java нет, поэтому ответственность за соблюдение криптографических ограничений, на данный момент, лежит полностью на разработчике.
Можно, если ПК1 содержит открытую часть ключа ПК2, и наоборот.
Зачастую вся соль заключается в том, что нужно зашифровать данные для конечного пользователя зная один из его идентификаторов, например email.

Information

Rating
Does not participate
Registered
Activity