Задачу можно разделить на несколько вопросов:
1) сколько памяти доступно для хранения подписи?
- не вдаваясь в подробности:
-- Mifare UL - 48 Байт
-- Mifare ULC - 148 Байт
-- Mifare Classic 1K / Mifare Plus 1K - 752 Байт
-- Mifare Plus 2K - 1520 Байт
-- Mifare Classic 4K / Mifare Plus 4K - 3440 Байт
-- Mifare DESFire - 2KБ/4КБ/8КБ (не считал)
Таким образом хранить пару ключей получится не на любой карте семейства MIFARE. Если брать пару ключей длиной 2048, то можно понять что потребуется минимум 512 Байт для их хранения.
2) как организовать хранение ЭП в памяти чипа?
- Здесь каждый может придумать свой велосипед со своим блекджеком.
3) каким middleware пользоваться?
- Мне на текущий момент не известны готовые решения (точнее они есть, но не пользуются большой популярностью), поэтому я предполагаю довольно серьезную разработку такого middleware. Наиболее легким путем мне кажется прикручивание OpenSSL к разрабатываемому ПО.
4) насколько удобна разрабатываемая система?
- С точки зрения обычного пользователя - такая система позволит подписывать файлы с помощью бесконтактного способа - поднес карту и подписал (вроде бы все...), но это является и минусом, т.к. на рабочем месте постоянно требуется наличие бесконтактного считывателя. Конечно можно использовать USB Stick считыватели (например такие:
http://www.smart-card.ru/_catalog/cat_3/?action=fi..., но их стоимость сравнима со стоимостью обычных токенов, используемых для ЭП (ESMART Token, eToken, ruToken и других готовых решений)
Исходя из вышесказанного, записать электронную подпись на карту Mifare возможно, но вопрос требует детальной проработки и качественной разработки.