De KL-7 is een tactische lichtgewicht elektromechanische rotor-codeermachine (cryptomachine) met elektronische componenten, die vanaf 1945 door de U.S. Army Security Agency (ASA) werd ontwikkeld onder de naam MX-507. De machine diende als opvolger van de SIGABA- en M-209-codeermachines die tijdens de Tweede Wereldoorlog door het Amerikaanse leger werden gebruikt. In 1949 werd de ontwikkeling van de ASA overgedragen aan de Armed Forces Security Agency (AFSA) die de machine de naam AFSAM-7 gaf. In 1953 werd de machine door de opvolger van AFSA, de National Security Agency (NSA) geïntroduceerd bij de US Army, US Air Force en ASA, en vanaf 1954 bij de FBI en CIA. In 1955 wijzigde de naam in TSEC/KL-7, volgens de nieuwe nomenclatuur voor cryptoapparaten. Vanaf 1956 werd de KL-7 ook gebruikt door alle leden van de Noord-Atlantische Verdragsorganisatie (NAVO), hun ambassades en ministeries van defensie.
De KL-7 was een offline-rotormachine waarbij de tekst via een toetsenbord werd ingevoerd en vercijferd. Optioneel kon de HL-1 vijf-bits ponsbandlezer gebruikt worden. Dit aparte toestel werd met de KL-7 verbonden via een kabel en de KLX-7-keyboardadapter, gemonteerd tussen het toetsenbord en het contactpaneel eronder. De vercijferde of ontcijferde tekst, al naargelang de functie die werd gekozen, werd op een papierstrook afgedrukt. Deze papierstroken werden met lijm op het berichtformulier of telegram geplakt. Er waren twee procedures voor vercijfering, met de codenamen POLLUX en ADONIS. Die verschilden in de wijze waarop de message indicator (i.e. willekeurige startpositie rotors voor elk nieuw bericht) werden overgemaakt aan de ontvanger. De POLLUX-procedure voor low-level Army en Air Force berichten gebruikte een onvercijferde message indicator. De veiligere ADONIS procedure voor high-level berichten gebruikte een message indicator die vercijferd werd voor hij aan de ontvanger werd overgemaakt.
De KL-7 heeft een rotorkooi met acht rotors, waarvan zeven rotors op een heel onregelmatige manier, al dan niet één stap zetten na elke vercijfering van een teken. De vierde rotor van links beweegt nooit. Iedere rotor heeft 36 ronde contactplaten in een cirkelpatroon aan de linkerkant, die verhaspeld zijn verbonden met de 36 verende contacten aan de rechterkant. De rotors zorgen voor de eigenlijke vercijfering en ontcijfering. De zogenaamde sleutelinstellingen worden ingesteld door selectie van acht verschillende rotors uit een set van twaalf rotors (later uitgebreid tot dertien), de positie van de draaibare alfabet-ring op de rotor, de selectie en positie van de plastic nokkenring op de rotor, en de volgorde en de beginstand van de rotors in de rotorkooi.
Zowel de rotors als hun inwendige bedrading, de vorm van de nokkenringen, hun volgorde in de rotorkooi en de bedrading van het systeem om de rotors voor te bewegen in de machine zelf, waren geheim. De rotors werden regelmatig herbedraad door de National Security Agency om de veiligheid te garanderen. Het was verboden om zelf de rotors uit te meten of te herstellen, en moesten daarvoor steeds aan de NSA overgemaakt worden.
Alle belangrijke delen van de KL-7, de motor, stappeneenheid, afneembare rotorkooi, en toetsenbord, zijn op een contactpaneel gemonteerd dat verende contacten heeft op de bodemplaat. Hierdoor konden defecte delen van de machine makkelijk en snel vervangen worden. Vooraan bevindt zich het toetsenbord, met links een hendel met vier standen: off (uit), plain (klare tekst), encipher (vercijferen) en decipher (ontcijferen). Die hendel bedient een naar links en rechts schuivende contactplaat, net onder het toetsenbord, die verschillende processen schakelt en de richting van de toetsenbord signalen door de rotors kan omkeren. Dit is nodig omdat de vercijfering niet-reciproke is (ver- en -ontcijfering zijn omgekeerd).
Achter het toetsenbord bevindt zich de stappeneenheid voor het bewegen van de rotors, met bovenop de afneembare rotorkooi die acht bedrade rotors bevat, waar de eigenlijke vercijfering gebeurt. De stappeneenheid bevat ook ook zeven drukknoppen om de startpositie van de rotors (message key) manueel in te stellen. Links van de rotorkooi bevindt zich de 24 volt-motor die zowel de printer als het voortbewegen van de rotors mechanisch aandrijft. In dezelfde behuizing van de motor zit ook een wisselstroomgenerator die de spanning (+200, +220 en −72 volt) levert voor de elektronica. De 24 volt-motor/generator maakt voeding via een voertuigbatterij mogelijk. Voor vaste installaties was ook een AC power converter voorzien, die 110 V of 220 V omzette naar 24 volt voor de KL-7.
De contacten tussen het contactpaneel en aan weerszijden van de afneembare rotorkooi zijn in twee groepen verdeeld: telkens een groep van 26 contacten en een groep van tien contacten samen aan één kant. De twee groepen van 26 contacten verbinden de toetsen met de pulsgenerator voor de printer. De twee groepen van tien contacten zijn rechtstreeks met elkaar verbonden.
Bij het indrukken van een letter of cijfer op het toetsenbord wordt het signaal verbonden met een van de 26 contacten aan de linkerkant van de rotorkooi, gaat door de verhaspelde bedrading van de acht rotors (de eigenlijke vercijfering) en verlaat de rotorkooi aan de rechterkant. Indien het signaal de rotorkooi verlaat via een van de 26 contacten, dan wordt het signaal rechtstreeks naar de pulsgenerator gestuurd. Echter, indien het signaal de rotorkooi aan de rechterkant verlaat via een van de tien contacten, dan wordt het signaal teruggestuurd naar de linkerkant van de rotorkooi om nogmaals vercijferd te worden. Afhankelijk van de stand van de rotors en hun interne bedrading, kan een signaal meerdere keren vercijferd worden (maximaal elf keer). Deze techniek, re-entry of re-flexing genoemd, maakte de vercijferen zeer complex. Uiteindelijk verlaat het signaal de rotorkooi en komt aan bij een van de 37 spoelen van de pulsgenerator van de printer.
De printer, aangedreven door de motor, bestaat uit drie delen: de ronde printtrommel met alle tekens in reliëf rondom de printtrommel, de printhamer met elektromagneet, en ten slotte de pulsgenerator met 37 elektromagneten voor alle letters, cijfers en de spatie. De printer heeft een as waarop zowel de printtrommel zit, als een magnetisch anker om het signaal in de pulsgeneratorspoelen op te wekken. Tussen de printtrommel en het papier beweegt een inktlint op twee spoelen, vergelijkbaar met het inktlint op een schrijfmachine
Wanneer men een toets indrukt, gaat het signaal van het toetsenbord via de linkerkant van de rotorkooi door de interne bedrading van de acht rotors en verlaat de rotorkooi aan de rechterkant (eventueel na meerdere passages) naar de pulsgenerator, waar de vercijferde of ontcijferde versie van het signaal met een van de spoelen (letter of cijfer) in de pulsgenerator wordt verbonden. Wanneer het magnetisch anker die spoel passeert, wordt een spanningspuls gegenereerd. Die puls wordt door de elektronica (vacuümbuizen) versterkt en naar de printhamer gestuurd. Gezien de printtrommel en het magnetisch anker op dezelfde as zitten, wordt elke karakter op het juiste moment door de printhamer afgedrukt op een papierlint.
De opgewekte puls activeert via de elektronica ook een of meerdere elektromagneten van de stappeneenheid, verantwoordelijk voor het onregelmatig bewegen van de rotors. Elke rotor heeft een unieke, instelbare en uitwisselbare nokkenring. De stappeneenheid bevat onder de zeven bewegende rotors zeven nokkenschakelaars (de vierde rotor van links niet, die is stationair). Alle schakelaars zijn op een complexe wijze met elkaar verbonden, waarbij een of meerdere schakelaars verantwoordelijk zijn voor het voortbewegen van een andere rotor dan die boven de betrokken schakelaar. Na het vercijferen en afdrukken van een letter, wordt ook een signaal naar de stappeneenheid verstuurd. Afhankelijk van de stand van de nokkenringen, en hun effect op de nokkenschakelaars, kunnen een of meerdere stap-elektromagneten geactiveerd worden. Die geven een mechanisme vrij, waardoor de motor de betrokken rotor(s) één stap voortbeweegt. De nokkenringen op de rotors resulteren daarom in een zeer complexe beweging van de rotors, en daarmee ook een complexe vercijfering.
De printer drukt vercijferde tekst af in groepen van vijf letters, en ontcijferd klare tekst met spaties tussen de woorden. Het toetsenbord bevat letters, cijfers en een spatie. De vercijferde tekst bestaat echter enkel uit letters. Om dit mogelijk te maken kan de KL-7 tussen letters en cijfers schakelen via de toetsen LET en FIG. Een neonlampje boven het toetsenbord brandt wanneer de machine in FIG-modus is. Om die omschakeling naar FIG of LET mogelijke te maken moeten de FIG- en LET-signalen "meeliften" op de letters J, Y en V, en de spatie op de letters Z en X. Het was een geniale oplossing waarbij de gekozen letters minimaal effect hebben op de leesbaarheid van de ontcijferde tekst. In militaire berichten worden getallen echter meestal voluit gespeld met behulp van het NAVO-alfabet, zodat bij één typfout, of één fout ontcijferd karakter, het getal nog steeds foutloos leesbaar was, bijvoorbeeld 105 in ONE ZERO FIVE, terwijl bij getallen in cijfers één fout cijfer altijd een fout getal wordt, mogelijk met grote gevolgen. Belangrijke afkortingen werden daarom ook voluit gespeld, bijvoorbeeld UK in UNIFORM KILO.
De KL-7 was vanaf 1953 in dienst bij het Amerikaanse leger, de inlichtingendiensten, het Witte Huis en enkele overheidsdiensten, en vanaf 1956 in gebruik bij de NAVO-landen en in Zuid-Korea, Zuid-Vietnam en Taiwan in bruikleen. Vanaf de jaren 70 werd hij geleidelijk vervangen door elektronische crypto-apparatuur zoals de KW-26 en de KW-37, maar bleef meestal nog in gebruik als backup, veelal dubbel vercijferd op andere systemen. Exacte datums van het uit omloop nemen van de machine zijn niet gekend, maar voor zover bekend verstuurde het Canadese leger het laatste bericht met de KL-7 in 1983.
Het was de operators enkel toegestaan om berichten te vercijferen of te ontcijferen, indien zij de nodige veiligheidsmachtiging hadden. De hoofding van een vercijferd bericht toonde nooit de veiligheidsclassificatie in het berichtgedeelte met klare tekst. Als de operator tijdens het ontcijferen de veiligheidsclassificatie tegenkwam, en deze hoger was dan zijn eigen machtiging, moest hij stoppen en het bericht verder laten ontcijferen door iemand die wel de nodige veiligheidsmachtiging had. De rotors, geldig voor 24 uur, waren geheim en werden enkel geselecteerd, ingesteld en in de rotorkooi geplaatste door een persoon met de nodige cryptomachtiging. Gewoonlijk behield men de rotorkooi met instellingen van de vorige dag. Kwam er een bericht binnen van de vorige dag, dan kon de operator de huidige rotorkooi snel wisselen met die van de vorige dag, om het late bericht te ontcijferen. Nadien plaatste hij de rotorkooi voor de huidige dag terug in de machine plaatsen. Dit vermeed constante aanwezigheid van cryptopersoneel om een nieuwe rotorkooi samen te stellen.
De KL-7 was niet altijd geliefd bij de operators. De kans op een slecht contact was groot, vanwege de honderden contactpunten tussen de onderling draaiende rotors, de rotorkooi, het toetsenbord en de verbinding tussen alle componenten en het contactpaneel op de bodemplaat. Als een van die honderden contacten niet werkte, kon het signaal niet doorgegeven worden aan de printer en stopte de machine volledig, een zogenaamde dead-rove. De enige manier om dit enigszins te beperken was zeer regelmatig en zorgvuldig kuisen van alle contacten, vooral die onder het toetsenbord. Bij het inschakelen maakten de tandwielen van de motor een typisch gierend geluid, en duurde het ook even voor de vacuümbuizen waren opgewarmd en de machine kon gebruikt worden. Er was ook een kleine box met gereedschap. Die bevatte o.a. borstels, reinigingsmiddel voor contacten, gom, olie, gereedschap, reserve-vacuümbuizen en een neonlampje (fig mode) en gloeilamp.
Er waren in de lange geschiedenis van de KL-7 ook twee belangrijke veiligheidsincidenten. Joseph Helmich diende in 1963 in het Amerikaanse leger als crypto-custodian in Frankrijk, in 1964-65 in Vietnam, en later in Fort Bragg. Vanwege financiële problemen verkocht hij sleutellijsten van de KL-7 aan de inlichtingendiensten van de Sovjet-Unie. Na een tip van een overloper startte de FBI een intensief onderzoek met surveillance, wat in 1980 leidde tot de arrestatie van Helmich. In 1967 was de KL-47 (U.S. Navy versie van de KL-7) een van de cryptosystemen waarvan John Anthony Walker, een Navy-communicatiespecialist, de technische handleiding en de sleutellijsten doorspeelde naar de Sovjet-Unie, en dit tot zijn arrestatie in 1985. Beiden kregen levenslang.
De machine was ontworpen om in die tijd elke gekende cryptoanalyse (i.e. kraken) te weerstaan, ook als het ontwerp van de machine was gecompromitteerd en gekend door de tegenstander. Bovendien waren de sleutelinstellingen slechts maximaal 24 uur geldig. Er waren voor de verschillende geografische, tactische en legeronderdelen verschillende KL-7 sleutelinstellingen voorzien, ook wel crypto nets genoemd. De bovenstaande gevallen van spionage betrof dus enkel een beperkt aantal toestellen van één bepaald netwerk en compromitteerde daarom nooit de KL-7-communicatie van alle eenheden op all niveaus en all militaire of geografische locaties. Deze techniek noemt compartimentaliseren. Desalniettemin betekende de spionage van Helmich en Walker een enorm risico, mocht er een conflict uitbreken en sommige communicatie ontcijferd kon worden door de vijand.
De TSEC/KL-7 was een van de laatste elektromechanische cryptomachines, decennia lang veelvuldig gebruikt over de ganse wereld door de Amerikaanse strijdkrachten, de NAVO en enkele Aziatische landen. Het is dan ook een echt cryptologisch icoon van de Koude Oorlog.