**VeraCrypt** on ilmainen salausohjelma, jota voidaan käyttää salaamaan tietoa tietokoneella.

Ohjelmaa voidaan käyttää

* salaamaan levyosioita.
* salaamaan kokonaisia tallennuslaitteita kuten kiintolevyjä käyttöjärjestelmineen, mutta vain Windows-käyttöjärjestelmissä. Laitteelle jää salaamattomaksi kuitenkin pieni osio, johon asentuu salauksen yhteydessä salasanan syöttöön ja salauksen purkuun vaadittava esikäynnistys -ohjelma. Myös flash-muistia kuten SSD-levyjä ja USB-tikkuja voidaan salata, mutta VeraCryptin kehittäjät eivät kuitenkaan suosittele tätä.
* luomaan salattuja tiedostoja, joissa on sisällä virtuaalinen levyosio eri tiedostojärjestelmillä kuten FAT ja NTFS osin käyttöjärjestelmäriippuvaisesti. Purettaessa tiedostojen salaus, toimivat niiden levyosiot kuin aidot levyosiot: niihin voidaan siis siirtää tai niiltä voidaan poistaa tiedostoja. Salatut tiedostot voivat olla tavumäärältään muuttumattomia, tai sitten ne voivat olla muuttuvia eli dynaamisia. Jälkimmäisen vaihtoehdon käyttöä VeraCryptin kehittäjät eivät kuitenkaan suosittele sen kryptografisen heikkouden vuoksi.

VeraCrypt on itsenäinen projekti. Se pohjautuu TrueCrypt-salausohjelmaan, jonka kehitystyö on lopetettu. VeraCryptillä voidaan avata TrueCryptin avulla salattua tietoa erityisellä TrueCrypt-moodilla.

VeraCryptin avulla voidaan luoda kaksi rinnakkaista levyosiota samaan tiedostoon tai kiintolevyyn, joista toista kutsutaan piilotetuksi (eng. *hidden*). Kummallekin levyosiolle on omat salasanansa ja salausavaimensa. Ulkopuolisen tahon (kuten poliisin) pakottamana salasanat tunteva henkilö voi siten paljastaa vain toisen osion sisällön ja kieltää salatun osion olemassaolo. Tällöin ulkopuolinen taho saa käsiinsä vain "viatonta" tietoa ja uskoo sitten kuulustelevansa syytöntä henkilöä mahdollisesti lopettaen kiristysyrityksensä. 

VeraCryptissä käyttäjän on myös mahdollista asettaa henkilökohtainen salausavaimen matemaattisten iteraatioiden kerroin (eng. *personal iterations multiplier*, PIM), jolla salausta ja sen avausta voidaan nopeuttaa tai hidastaa, jolloin käytetty salasana vastavuoroisesti joko heikkenee tai vahvenee. PIM on kerroin yhtälössä, joka ilmoittaa kuinka montaa kertaa tiivistefunktiota käytetään muovaamaan ohjelmaan syötettyä salasanaa sen vahventamiseksi: funktio muuntaa salasanan pidemmäksi ja näennäisen satunnaiseksi. Salasanan muovatun version avulla luodaan ylätunnusavain (eng. *header key*). Tällä saadaan levyosiosta auki tietty alue joka sisältää muun muassa pääavaimen (eng. *master keys*), jolla levyosiolla oleva tieto on oikeasti salattu.

Pääavainta tarvitaan, jotta käyttäjä voi vaihtaa salaamansa tiedoston tai levyosion salasanan nopeasti. Jos levyosio olisi salattu suoraan ylätunnusavaimella, täytyisi salasanan vaihtuessa koko levyosion salaus purkaa ja salata uudelleen aikaavievästi (levyosio voi olla useita gigatavuja). Pääavainta käytettäessä ainoastaan sen sisältävä osio täytyy avata ja salata uudelleen salasanavaihdossa: tämä vie paljon vähemmän aikaa (ylätunnusavaimen sisältävä alue on vain 512 tavua). Iteraatioiden suuri lukumäärä suojaa väsytyshyökkäyksiltä estäen siten teoriassa salauksen murtoyritykset tulevaisuudessakin kun tietokoneiden laskentateho kasvaa.

VeraCrypt tukee seuraavia symmetrisiä lohkosalausmenetelmiä: AES, Serpent, Twofish, Camellia ja Kyznyechik. Näitä algoritmeja on ohjelmassa mahdollista yhdistellä erilaisiksi päällekkäisiksi ns. "supersalaus"-yhdistelmiksi, kuten Serpent-Twofish-AES -yhdistelmäksi, jossa kunkin lohkon kerros ensin salataan AES:llä ja lopuksi Serpentillä toisistaan riippumattomilla avaimilla. Tuetut kryptografiset tiivistefunktiot ovat RIPEMD-160, SHA-256, SHA-512, Streebog ja Whirlpool. Salattujen lohkojen järjestelyyn VeraCrypt käyttää XTS toimintatapaa.

Pelkkä tiedon salaus lohkoina ei riitä sen peittämiseen ulkopuolisilta, sillä lohkojen välille voi jäädä tunnistettavia kuvioita. Lohkot pitää myös sekoittaa näennäisen satunnaisesti. **Vasemmalla:** salaamaton kuva. **Keskellä:** lohkosalattu kuva heikkoa ja yksinkertaista ECB-toimintatapaa (eng. *electronic codebook*) käyttäen. **Oikealla:** lohkosalattu kuva esimerkiksi XTS-toimintatapaa käyttäen.
17.10.2016 VeraCryptin version 1.18 lähdekoodi tarkistettiin muun muassa tietoturva-aukkojen, takaovien ym. varalta riippumattoman osapuolen toimesta. Ohjelmasta ei löytynyt tarkoituksellisesti haitallista koodia. Suurimmat auditoinnissa löydetyt tietoturva-aukot korjattiin seuraavana päivänä IDRIX:in julkaisemassa versiossa 1.19.

VeraCrypt, kuten TrueCrypt, josta se forkattiin, väittää olevansa "open source", vaikka Open Source Initiative ei ole hyväksynyt TrueCrypt lisenssiä. Debian kieltäytyi tekemästä VeraCrypt-pakettia, johtuen sen hämäräperäisestä lisenssihistoriasta.

Lähteet
-------

1. ↑  Veracrypt official site *veracrypt.fr*. Viitattu 9.10.2017.
2. 1 2 3 4 5 6  Documentation *veracrypt.fr*. Viitattu 6.8.2018.
3. ↑  Rubens, Paul: VeraCrypt a Worthy TrueCrypt Alternative *esecurityplanet.com*.  16.10.2015.  Arkistoitu 4.1.2018. Viitattu 9.10.2017.
4. ↑  VeraCrypt Audit Results *blog.quarkslab.com*.  Arkistoitu 4.11.2017. Viitattu 9.10.2017.
5. ↑  VeraCrypt Audit *ostif.org*.  Arkistoitu 20.3.2018. Viitattu 9.10.2017.
6. ↑  VeraCrypt Audit Outcome 4.5.2017.  Arkistoitu. Viitattu 9.10.2017.
7. ↑  Simon Phipps: TrueCrypt or false? Would-be open source project must clean up its act Infoworld.
8. ↑  814352 bugs.debian.org