Поддерживает ли PDF защиту от деградации данных?

Таким образом, мы можем добавлять подписи к файлам PDF, которые подписывают хэш содержимого документа. однако, если один бит перевернется из-за битрота, файл будет поврежден, а подпись бесполезна. Есть ли в PDF какая-то встроенная защита целостности данных, которая позволила бы ему в определенной степени восстанавливать битрот?

Я знаю, что это может быть достигнуто на уровне файловой системы, но мне интересно, есть ли в самом формате PDF средства для этого, и если да, то как их можно включить и включены ли они в PDF/A?


person matthias_buehlmann    schedule 24.01.2021    source источник


Ответы (1)


Есть ли в PDF какая-то встроенная защита целостности данных, которая позволила бы ему в определенной степени восстанавливать битрот?

Нет. Наоборот, потоки данных в PDF-файлах могут сжиматься (и часто сжимаются) с использованием FLATE. В потоках несжатого контента битфлип обычно повреждает только одну или две инструкции, часто оказывая влияние только на небольшие части рендеринга страницы. Но в потоке сжатого контента обычно повреждаются все инструкции, начинающиеся с переворота. Если это произойдет в начале потока, вся страница больше не будет отображаться.

person mkl    schedule 24.01.2021
comment
но технически, тем не менее, должно быть возможно применить исправление ошибок после сжатия - конечно, это добавляет немного накладных расходов на данные, но часто гораздо меньше, чем сжатие уменьшило исходные данные. - person matthias_buehlmann; 24.01.2021
comment
Конечно, вы можете разработать сжатие плюс исправление ошибок; насколько мне известно, FLATE не предлагает исправление ошибок. Ни LZW, ни RLE. И это три общих фильтра сжатия, указанные для PDF. Исправление ошибок не было темой в дизайне PDF. - person mkl; 24.01.2021
comment
Спасибо, очень жаль, учитывая, что PDF используется для цифрового долгосрочного хранения, это была бы полезная функция. - person matthias_buehlmann; 25.01.2021
comment
Вероятно. Но вы также можете увидеть это как Разделение ответственности в действии. - person mkl; 25.01.2021
comment
конечно, но вы также можете отделить подписание документов от pdf. Удобно, когда подписи встроены прямо в документ. Было бы здорово, если бы эти подписи были также защищены от битрота прямо внутри документа. - person matthias_buehlmann; 25.01.2021
comment
Есть разница: если вам нужно обрабатывать PDF-файлы из дикой природы, но подписи вас не интересуют, вы можете просто игнорировать их. Если бы PDF-файл был сохранен с применением разумного кода исправления ошибок, и вам приходилось обрабатывать PDF-файлы из дикой природы, но вы не были заинтересованы в исправлении ошибок, вам все равно пришлось бы декодировать через слой исправления ошибок (вероятно, какой-то код Хэмминга, такой как кодирование PDF данные). Таким образом, исправление ошибок затруднит общую обработку PDF, а подписи — нет. - person mkl; 25.01.2021