thumb|KL-7 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.

Werking thumb|rotor, linkerzijde thumb|rotor, rechterzijde 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 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.

Gebruik 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.