Also gleich dem was dabei rauskommen und wie das umgesetzt werden soll ist Java hier eindeutig die falsche Sprache.
Du sagst du darfst keine externen Programme nutzen. Nun, wenn du unter Unix "mount" und unter Windows "subst" bzw "net" callst dann nutzt du doch extrene Programme. Zwar werden diese Programme in diesem Fall als "Systemtools" bezeichnet, ändert aber nichts an der Sache das du ein externes Programm callst.
Und selbst wenn du das irgendwie mit Java implementieren wollen würdest bräuchtest du schon JNI oder JNA wenn es sich um ein "Laufwerk" handeln soll. Java selbst kann das NICHT. Und nur aus Java Systemtools callen ? Das kannst du dir sparen. Dann schreib lieber gleich ein kleines Shell-Script (unter Windows eine BATch) und schreib da die paar Zeilen rein die du sonst umständlich in Java callen würdest.
Mal davon abgesehen kenn Unix überhaupt keine "Laufwerke", denn ein Grundgedanke von Unix und dessen File-Systemen ist "Alles ist eine Datei". Und : "Es gibt nur eine Wurzel". Ergo : wenn du sowas unter Unix machen willst kannst du den Datei-Baum nur erweitern.
Aber das wird zu OT. Zum eingentlichen Problem : on-the-fly de/komprimieren (ich würde hier die worte "Zip" und "(Ent)Packen" vermeiden) und en/decrypten und dann noch übers Netzwerk ?
An sich mit Java kein Problem. Das größere Problem ist das Java so nicht ins File-System eingebunden werden kann das du halt eine Datei nach X:\Y kopierst und dadurch automatisch der Upload getriggert wird.
Auch stellst du dir den "Download" etwas zu simpel vor. Denn damit du erstmal auswählen kannst welches File du laden willst brauchst du eine Ansicht des aktuellen Ordners. Also wäre die erste Aktion für den "Download" erstmal Informationen über das aktuelle Verzeichnis sowie dessen enthaltenen Daten zu erzeugen und im Client darzustellen.
Alles in allem : wie bereits erwähnt : Java ist hier definitiv die komplett falsche Sprache um dieses Vorhaben umzusetzen.
Allerdings gibt es bereits einen Ansatz für Windows : FTP2Drive. Dabei wird ein FTP-Verzeichnis als Netzlaufwerk gemappt. Ist aber in meinen Augen sehr unsicher da FTP wie wir alle wissen ein PLAIN-Protokoll ist. Eventuell wenn man was mit SSH tunneln würde. Oder eine andere VPN-Software. Dann könnte man mal versuchen sich das anzusehen um halbwegs zu verstehen was da abläuft. Aber alleine um überhaupt ein virtuelles Drive zu erzeugen brauchst du mindestens einen System-Treiber. (Wie es genau mit Win-Netzlaufwerken aussieht weis ich nicht, kann mir aber vorstellen das ein entsprechender "Server" hier reichen könnte.) Und das macht den Sinn von Java, nämlich Plattformunabhängigkeit hinfällig.
Wenn du also nicht unbedingt die nächsten Monate damit verbringen möchtest dir irgendwas aus dem Internet zusammen zu klicken würde ich an deine Stelle dieses Projekt an Entwickler abgeben die sich mit System-näheren Sprachen wie C/++ beschäftigen und sowas schon mal gemacht haben. Mit Java wirst du hier nicht zum Erfolg kommen.