Diferencinė kriptografija

**Diferencinė kriptografija** ( arba *Workgroup Differential*) – apgalvotas šifravimo metodo susilpininas taip, jog programinės įrangos gamintojo šalies valstybinės saugumo tarnybos prireikus galėtų iššifruoti informaciją prieš siuntėjo valią. Diplomatiniu požiūriu diferencinė kriptografija gali būti reikšminga kuomet taip šifruojamos kitos šalies valstybinės paslaptys.

## Lotus Notes
Plačiausiai pagarsėjęs diferencinės kriptografijos atvejis buvo apie 1997 metus Lotus Notes naudotas 64 bitų šifravimas. Amerikos valstybei reikalaujant, 64 bitais užšifruotos žinutės savyje turėjo 24 šifro rakto bitus, kuriuos pasitelkus Amerikos specialiųjų saugumo tarnybų kompiuteriai galėdavo jas iššifruoti taip, tarsi jos būtų šifruotos tik 40 bitų (40 bitų šifrą kompiuteris gali įveikti). Ši iššifravimo galimybė nebuvo slapta, ji buvo oficialiai paskelbta ir pateikta kaip privalumas, nes visiems kitiems vartotojams (ne Amerikos saugumo tarnyboms) informacija likdavo užšifruota 64 bitais. Eksportuoti įrangą be šio pakeitimo firmai leista nebuvo, tačiau ji vis viena siekė padidinti šifravimo patikimumą, nes oficialiai leistas 40 bitų šifravimas nebetenkino naudotojų.

Tokią įrangą su Amerikos saugumiečiams prieinama saugumo skyle naudojo Vokietijos Gynybos ministerija, Prancūzijos švietimo bei mokslo ministerija ir Latvijos švietimo ministerija. Ją įsigyjant, iš pradžių nebuvo žinoma apie šiuos šifravimo galimybių apribojimus.

Šis skirsnis neturi būti suprantamas kaip neigiamas atsiliepimas apie Lotus, nes saugumo spraga buvo sukurta ne firmos iniciatyva, o realios padėties paaiškinimas, užuot saugojus viską paslaptyje, buvo garbingas poelgis.

## ADVAPI.DLL
ADVAPI.DLL yra Windows 95 sisteminė biblioteka, atliekanti daugumą svarbių šios sistemos kriptografinių funkcijų. Ji glaudžiai saveikauja su Internet Explorer. Ši biblioteka turi daug nedokumentuotų funkcijų ir galimybių.

1999 metais per Microsoft programuotojų neapsižiūrėjimą (eiliniame bibliotekos atnaujinime buvo likusi derinimo informacija) Amerikoje esančios firmos *Cryptonym of Morrisville* ekspertas nustatė, jog biblioteka turi antrąjį raktą, leidžiantį jį žinančioms programoms įveikti saugumo sistemą. Pirmasis (įprastinis) raktas buvo pažymėtas raktažodžiu KEY. Antrasis raktas, kurio neturėtų būti, buvo pažymėtas raktažodžiu NSAKEY. Todėl įtariama, jog antrasis kompiuterio sistemą atveriantis raktas priklauso NSA (). Saugumo ekspertas pristatė šį atradimą kompiuteriniam saugumui skirtoje konferencijoje. Koferencijoje dalyvavę Windows atstovai jo nepaneigė, tačiau kategoriškai atsisakė pasakyti bet ką apie šio antrojo rakto galimybes ir paskirtį.

Kaip ir Lotus, pati Microsoft galėjo tai padaryti paklusdama tiesioginam valstybės interesus ginančių institucijų nurodymui ir pati už tai nebūti atsakinga. Todėl šis skirsnis neturi būti suprastas kaip Microsoft kritika.

Kai kurie šaltiniai rašo, jog nuo Windows 2000 versijos bibliotekoje galbūt atsirado ir trečiasis raktas. Šiems įtarimams pagrindą teikia ADVAPI.DLL programos kodo entropijos analizės rezultatai.

## Kovos priemonės
Diferencinės kriptografijos problemos lengviausiai įveikiamos atsakingose srityse naudojant tokią programinę įrangą, kurios pradinis kodas būtų naudotojui prieinamas (tai nebūtinai turi būti laisvoji ar atviro kodo įranga). Tuomet suinteresuotos valstybės specialistai gali tą kodą nuodugniai išnagrinėti, taip įsitikindami, jog nėra tyčia programuotojo, firmos ar net ir visos eksportuojančios valstybės iniciatyva paliktų spragų. Kaip matyti iš ADVAPI.DLL pavyzdžio, kompiuteriniu saugumu užsiimančios firmos, jei nėra pasirinkimo, nagrinėja taip pat ir sukompiliuotą kodą.

## Literatūra
* IBM analizė 
* Duncan Campbell. Only NSA can listen, so that's OK
* How NSA access was built into Windows