Путей вскрыть ваши данные может быть всего три.
Первый (будет проходить под пунктом 1) - это использование особенностей криптографического алгоритма.
Второй (будет проходить под пунктом 2) - это использование особенностей конкретной криптографической программы (как тут верно подметили - ее реализации) и ее окружения.
Третий (будет проходить под пунктом 3) - это незаконный, в т.ч. ректотермальный.
Обращу внимание, что с участием исключительно эксперта могут быть проведены только 1 и 2 методы. Поэтому вопрос "изъяли и увезли - вскроют?" касается только первых двух.
- Алгоритмы, такие как AES, Twofish, Serpent не имеют на данный момент уязвимостей, что означает, что не зная ключа (это важно, ибо можно и узнать - как - см. ниже), его можно попытаться лишь узнать, подобрав парольную фразу. Подбираться будет именно парольная фраза (если будет), а не ключ шифрования, т.к. если подбирать сам ключ, то подпункты 1.1 и 1.2 не имеют смысла.
1.1. Прямой перебор парольных фраз. Может иметь успех только в случае простых (коротких) парользых фраз, т.к. как правило начинается от коротких паролей к длинным. Это значит, что если ваш пароль достаточно длинный, данный способ сводится на "нет". Продвинутые программы (такие как PGP) имеют индикатор сложности вводимого пароля, постарайтесь заполнять его "под завязку"
1.2. Словарная атака (с модификациями) парольная фраза подбирается как комбинирование слов из словаря друг с другом и с некоторым количеством других символов. Чтобы противодействовать этому, мало придумывать просто длинные пароли, необходимо, чтобы они содержали часто редкие и несуществующие в повседневном языке слова и словосочетания, с намеренно сделанными ошибками и вставками спец.символов и комбинаций цифр.
2. Атака на реализацию программы и ее окружение. В отличие от методов 1-й группы, данные методы не требуют интенсивных вычислений, поэтому будет использоваться в первую очередь.
2.1. Использование известных "уязвимых мест" в текущий реализации программы. Противодействие: использовать только программы с открытым кодом, длительной историей развития, и регулярно следить в новостях об обнаруженных уязвимостях. Стоит отметить, что использование таких уязвимостей дает достаточно малый шанс вскрытия ваших данных, т.к. требует обязательного и одновременного наступления ряда условий. На примере с TrueCrypt 5.1, такими условиями было: нестандартный storage-controller в ПК, и использование режима hibernate при завершении работы. То есть пользователи, которые не использовали hibernate (я думаю таких подавляющее большинство) уже могли "не париться" по поводу данной уязвимости.
2.2. Анализ содержимого виртуальной памяти, временных и ранее удаленных файлов и т.п. Может иметь место, в случае использования шифрования данных в нешифрованной системе. То есть в определенных шифрующих программах не гарантируется, например, что область памяти, где хранится Ваша парольная фраза, не будет сброшена на жесткий диск (в swap-файл), откуда ее может прочитать эксперт. Также возможна ситуация, что вы записали раньше ваш пароль в какой-то файл, а потом его стерли небезопасным образом, и впоследствии его восстановили. Вывод один - все пространство, куда операционная система может что-то записать без вашего ведома - должно быть зашифровано. Иными словами, используйте программы, которые умеют шифровать целые диски, включая операционную систему и свободное место на диске, и используйте их именно в этом режиме. Создание "криптоконтейнеров" в виде отдельных файлов, монтирующихся "как диск", следует использовать лишь как дополнение к полному шифрованию диска, например, для переноса данных на "флешке".
2.3. Парольная фраза, шифрующая Вашу систему, должна быть уникальной. Она не должна совпадать с паролями доступа на ваши любимые интернет-ресурсы - форумы, электронную почту, игровые аккаунты, ICQ. Потому что мало того, что эти пароли ранее передавались по открытому Интернет-каналу, так еще могли быть сохранены в системе теми программами, которые их используют. Принцип тут один - пароль на систему уникален, и не совпадает с паролями, используемыми Вами для других задач.
2.4. Парольная фраза не должна быть записана где-либо, кроме как в Вашей голове, и известна кому-либо, кроме Вас.
3. Привожу здесь "не совсем чистые" методы "добычи" парольной фразы. Здесь одной экспертизой не обойтись. Поэтому их могут использовать против Вас, если данные расшифровать ну очень нужно. Ибо в основном они незаконные. В рамках уг. дела для "палки" по статьям вроде нарушения авторского права, никто такой фигней заниматься не будет.
3.1. Использование программных и аппаратных кейлоггеров. Делаться это будет на этапе ОРД, когда Вы сами о том, что Вы в разработке, знать не будете.
3.1.1. Аппаратный кейлоггер как правило представляет собой "переходник" между клавиатурой и системным блоком. Не исключаю, что существуют варианты, встраиваемые в клавиатуру. Поэтому ограничивайте физический доступ посторонних лиц к вашему ПК в любом случае, хотя такой метод популярен в основном за бугром, а не в РФ.
3.1.2. Программный кейлоггер обычно ставится как троян или руткит. Здесь существует очень большая гибкость, в плане того, как можно увести у Вас парольные фразы. Поэтому привожу набор мер: Используйте шифрование всего жесткого диска (если кейлоггер сохраняет пароли на диск, то при выключенном компьютере они будут недоступны), жестко ограничивайте сетевой трафик (используйте брандмауэры с максимально жесткими настройками - если кейлоггер будет отправлять пароли в сеть/интернет, брундмауэр будет для этого препятствием), следите за списком выполняющихся процессов и используйте руткит-детекторы для отслеживания скрытых процессов, никогда не запускайте программы, которым (или месту, в которых они хранились), Вы не доверяете.
3.2. Принуждение к выдаче пароля юридическими методами. То бишь, угроза привлечения к уголовной ответственности "за воспрепятствование законным действиям следствия/суда". Пока такой вопрос я рассматриваю чисто в теоретической плоскости, ибо по законодательству ряда стран (в т.ч. и у нас в РФ, Вы имеете права отказаться от дачи показаний, если дело возбуждено против Вас). В то же время в мировой судебной практике приравнивание выдачи пароля к свидетельским показаниям неоднозначно (известен минимум 1 случай в Америке, когда требование выдачи пароля в суде признали незаконным, и минимум 1 случай в Великобритании с противоположным результатом). Поэтому я бы не рекомендовал умышленно отказываться от выдачи пароля в случае такой угрозы. Вместо этого его можно "забыть". Как вариант - использование программы TrueCrypt в режиме Hidden Operating System, с выдачей пароля от "ложной" (decoy) ОС.
3.3. Ну, и конечно же, терморектальный криптоанализ, то есть физическое принуждение. Штука это специфичная, и принцип тут такой: против лома нет приема, если нет другого лома. А это значит, что способ должен основываться на том, чтобы Вы сделали такое действие, после которого уже даже Вы при всем своем желании не смогли бы получить доступ к защищенным данным, т.е. по сути утраты данных навсегда. На данный момент могу порекомендовать только 1 надежное решение: использование аппаратных средств двухфакторной аутентификации с аппаратным счетчиком неправильных вводов пароля, и блокировкой. Причем необходимо, чтобы используемое Вами программное обеспечение поддерживало эти средства.
Главное помните: криптографическое ПО - это как оружие: его недостаточно иметь, чтобы чувствовать себя защищенным. Надо еще уметь правильно его использовать.