SE526070C2 - Arrangemang för datakommunikationssäkerhet och metod - Google Patents

Arrangemang för datakommunikationssäkerhet och metod

Info

Publication number
SE526070C2
SE526070C2 SE0302524A SE0302524A SE526070C2 SE 526070 C2 SE526070 C2 SE 526070C2 SE 0302524 A SE0302524 A SE 0302524A SE 0302524 A SE0302524 A SE 0302524A SE 526070 C2 SE526070 C2 SE 526070C2
Authority
SE
Sweden
Prior art keywords
unit
key
session
signature
synchronization
Prior art date
Application number
SE0302524A
Other languages
English (en)
Other versions
SE0302524D0 (sv
SE0302524L (sv
Inventor
Mathias Widman
Hans Svensson
Christer Johansson
Original Assignee
Impsys Digital Security Ab
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Impsys Digital Security Ab filed Critical Impsys Digital Security Ab
Priority to SE0302524A priority Critical patent/SE526070C2/sv
Publication of SE0302524D0 publication Critical patent/SE0302524D0/sv
Priority to PCT/SE2004/001367 priority patent/WO2005029763A1/en
Priority to EP04775468A priority patent/EP1673898A1/en
Priority to JP2006527945A priority patent/JP2007506392A/ja
Priority to CNA2004800344278A priority patent/CN1883156A/zh
Priority to US10/953,501 priority patent/US20050154896A1/en
Publication of SE0302524L publication Critical patent/SE0302524L/sv
Publication of SE526070C2 publication Critical patent/SE526070C2/sv

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L29/08576
    • H04L29/08621
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

20 25 30 35 526 070 2 väldefinierade kommunicerande parter. Sådana miljöer är t.ex. företag och dess fältarbetare, bank och dess kunder, VPN, o.s.v.
Den internationella patentansökan nummer WO 01/74007 (införlivad häri genom referens) avslöjar en metod och ett system för krypterad transmission eller autenticitetskontroll mellan åtminstone två enheter via en osäker kommunikationskanal. Metoden innefattar stegen att i en initieringsprocedur erhålla ett gemensamt värde, erhålla ett gemensamt utgångsvärde för användning i respektive enhet, synkronisera ett räknarvärde i varje enhet; generera en nyckel baserad på utgångsvärdet och räknarvärdet i varje enhet oberoende av andra enheter; och använda således genererade nycklar i en efterföljande krypterad transmission eller autenticitetskontrollsoperation.
SKG kan implementeras som mjukvara eller hårdvara eller en kombination av de två.
SKG kan använda 160 bitars symmetriska nycklar. Det finns inget behov för en tredje förtroende verifierande part för kommunikationsuppsättningen. SKG kan implementeras som mjukvara på olika typer av hårdvaror eller endast som mjukvarulösning. Implementering som hårdvara tillhandahåller den högsta säkerhetsnivån. På grund av mjukvarans natur och dess "intrångsbarhet" kan en lösning endast baserad på mjukvara inte rekommenderas vid en klientnodposition.
Emellertid är en mjukvaruserver skyddat på annat sätt och kan anses som en säker miljö.
SKG har låga krav på bandbredd och hög säkerhet och är lämplig för handhållna trådlösa utrustningar (t.ex. PDA) och mobiltelefoner så väl som traditionella datorrelaterade utrustningar. Andra besläktade områden med stor potential är telematik och radiokommunikation ("Bluetooth"), WLAN (Wireless Local Area Network).
WO 03/026198 avser en sekvens av transmissioner krypterade som en uppsättning av efterföljare, där varje efterföljare har olika sessionsnycklar. Den sändande enheten avgör när varje ny sessionsnyckel ska verka och sänder denna schemalagda ny- nyckel-start-tiden till den mottagande anordningen. I en fördelaktig utföringsform sänder den sändande anordningen även en förberedd-ny-nyckel instruktion till den mottagande anordningen för att tillhandahålla en tillräcklig utföringstid för den mottagande anordningen för att beräkna den nya sessionsnyckeln. Varje ny nyckel genereras genom att använda en hash-funktion av en räknarindex och en uppsättning nycklar som bestämmes under en initial nyckelbytes session mellan den sändande och 10 15 20 25 30 35 526 070 3 mottagande anordningen. Räknarindexen ökas vid varje schemalagd ny-nyckel-start- tid, vilken producerar en ny sessionsnyckel.
I US 6,377,692 förbereds två nycklar, vilka uppdateras i samma uppdateringscykel vid olika tider som signaturnycklar (huvudnyckel och extra nyckel) för elektronik signatur och uppdateringscykeln av varje nyckel för är delad i t.ex. tre perioder. De första och sista perioderna efter uppdateringen används för den extra nyckeln medan mellanperioden används för huvudnyckeln. Den elektroniska signaturen konfirmeras med endera två konfirmeringsnycklar, vilka uppdateras synkront med uppdatering av de två nycklar som användes som signaturnycklar. Detta eliminerar behovet av att stoppa utfärdandet av den elektroniska signaturen eller begränsning av ett serviceerbjudande vid uppdatering av signaturnycklar.
Enligt US 20020110245 upprätthålles säkerhetsnyckelsynkroniseringen mellan noder i ett optiskt kommunikationssystem genom användning av den bandlösa signaleringen för att indikera att en ny nyckel används för att kryptera nästa informationsblock vid sändningspunkten och att den nya nyckeln borde användas för att dekryptera nästa informationsblock vid mottagningspunkten. En byt-till-ny-nyckel kod kan väljas av en grupp av oanvända koder i en åtta till tio bitars kodningsschema. Koden för byt-till-ny- nyckel kan ersätta en vilande kod som användes för att generera tillräckligt avstånd mellan informationsblocken. Mottagningen av koden för byt-till-ny-nyckel indikerar att den nya nyckeln användes för att kryptera nästa informationsblock vid sändningspunkten och triggar en byt-till-ny-nyckel för dekryptering av nästa informationsblock vid mottagningspunkten.
Amerikanska patentpublikationen nr. 20030003896 visar utföranden innefattande en metod för synkronisering av ett kryptosystem. I ett utförande använder metoden existerande styrdata som sändes som en del av en uppkopplingsetableringsprocess i ett trådlöst kommunikationssystem. I ett utförande analyseras meddelanden som normalt sändes mellan en basstation och en fjärrenhet under uppställning av både utgående och terminerande samtal för att upptäcka ett visst styrmeddelande som indikerar början av telefoni datasändning. Detektering av detta meddelande indikerar en punkt där kryptering/dekryptering kan börja och användes för att synkronisera kryptosystemet. Synkronisering av ett kryptosystem involverar generering av ett RC4- tillståndsutrymme i ett nycklad-autonycklat ("KEK") krypteringssystem. I ett utförande används ett lägre mediums en accesskanal ("LMAC") meddelanden av ett lägre medium i enlighet med ett trådlöst kommunikationsprotokoll. Detta är lämpligt 10 15 20 25 30 35 526 070 4 eftersom LMAC meddelandet passeras genom samma "samhörande styrkanal" ("ACC") behandling som krypterar och dekrypterar telefonidatan.
Enligt WO 02/47319 innefattar ett kommunikationssystem vid ena änden av en kommunikationskanal en första chiffergenerator för generering av en succession av chiffrer, vilken generator innefattar en första slumptalsgenerator för generering av en sekvens av slumptal, varvid varje chiffer av succession av chiffrer baseras på respektive del av en sekvens av chiffrer baserade på respektive successiva del av en sekvens av slumptal, och en symmetrisk krypterare för kryptering av successiva mängder av en information för överföring till den andra änden av kanalen. Varvid varje mängd av informationen krypteras medelst respektive en av successionen av chiffrer. Vid den andra änden av kanalen inkluderar systemet en andra chiffergenerator för synkront generering med den första chiffergeneratorn samma succession av chiffrer som den första chiffergeneratorn, varvid den andra chiffergeneratorn innefattar en andra slumptalsgenerator för generering av samma sekvens av slumptal som den första slumptalsgeneratorn och symmetrisk dekryptor för dekryptering av krypterade successiva mängder av information mottagen från den ena änden av kanalen, varvid varje mängd av information krypteras genom användning av samma respektive en av succession av chiffrer som användes för att kryptera den medelst kryptorn vid ena änden av kanalen.
Alla de tidigare nämnda dokumenten visar olika typer av metoder för kommunicering av säker data inom uppfinningens tekniska område. De visar exempel på känd teknik, t.ex. användning av hash-algoritmer, synkroniserings nyckelgeneratorer, signaturlösningar, symmetriska nycklar och synkronisering i allmänhet. Emellertid motsvarar inga av dokumenten i helhet alla kännetecknen enligt föreliggande uppfinning.
Sammanfattning av uppfinningen Föreliggande uppfinnings syfte är att tillhandahålla en effektiv metod medelst vilken synkronisering och autenticitetskontroll utföres huvudsakligen simultant. Andra ändamål är säker kommunikation utan behov av att sända information om den verkliga nyckel som användes.
Således är det ett ändamål med uppfinningen att tillhandahålla synkroniseringsmetod som garanterar total synkroniserade noder samtidigt som utför autenticitetskontroll. 10 15 20 25 30 35 526 070 5 System SKG är idealiskt för upprätthållande av en hög säkerhetsnivå för autenticitet och kryptering för system i stängda miljöer, såsom BZB ("Business to Business"), VPN (”Virtual Private Network"), telematik, Internet tunnel o.s.v. Dess ringa storlek och låga bandbreddskrav gör det idealiskt för handdatorer ("PDA"), telekommunikation, WAP ("Wireless Application Protoco|”), radiokommunikationsenheter (Bluetooth), WLAN o.s.v. Att systemet är mycket lämpligt för dessa typer av applikationer gör det inte begränsat till dessa utan kan självklart även användas i större antal applikationer så som traditionell Internetsäkerhet.
Av dessa skäl är en metod tillhandahållen för synkronisering av en kommunikationssession för krypterad överföring och/eller autenticitetskontroll mellan åtminstone två kommunicerande enheter, en första enhet och en andra enhet, varvid varje enhet innefattar en sessionsräknare via en kommunikationskanal. Metoden innefattar en handskakningsprocedur varmed synkronisering av sesslonsräknarna erhålles genom successivt kommunicerade signaturer mellan nämnda kommunicerande enheterna.
Företrädesvis genereras identiska och synkrona nycklar i fysiskt separerade platser utan att ange information om nycklarna online eller fristående. Initialt, initieras varje enhet med ett gemensamt frö, en nyckel för synkronisering. Den gemensamma nyckeln används endast i ett initialt steg och kan ersättas när som helst, t.ex. om den förstörs.
Metoden innefattar ytterliggare steg: a. den första enheten initierar kommunikationen genom att sända en datauppsättning innefattande nämnda första enhets identitet, en aktuell sessionsräknare och en första signatur till nämnda andra enhet, b. mottagning av data av den andra enheten, c. verifiering av nämnda signatur för att utföra synkroniseringen, d. hämtning av nämnda första signatur av den andra enheten och sändning av dess identitet, en andra sessionsräknare och nämnda första signatur, e. verifiering av den första signaturen från den andra enheten av den första enheten, f. utföra en synkronisering medelst den första enheten, g. erhållande av en nu nyckel för kryptering medelst den första enheten, om båda enheterna är synkroniserade, h. generering av en ny signatur medelst den första enheten och tillhandahållande av den till den andra enheten, i. verifiering medelst den andra enheten av nämnda andra signatur, och j. generering av en ny nyckel medelst den andra enheten vid positiv verifikation av nämnda andra signatur.
Företrädesvis krypterar nämnda första enhet data och sänder data efter steg h och 10 15 20 25 30 35 526 070 6 nämnda andra enhet avkodar data erhållen från den första enheten efter steg j.
Företrädesvis men inte exklusivt genereras signaturerna som ett HASH-värde av vilken storlek som helst. Signaturerna genereras genom att använda en eller flera av algoritmerna SHA-1, SHA-256 MDS etc. En nyckel återanvänds aldrig genom att komma överens om vilken enhet som har nyckeln med högsta index och använda denna nyckel som en bas för beräkning av nästa sessionsnyckel.
Uppfinningen avser även ett kommunikationsnätverk innefattande åtminstone två kommunicerande enheter kommunicerande via en kommunikationskanal, varje enhet innefattande medel för synkronisering av en kommunikationssession för krypterad överföring och/eller autenticitetskontroll mellan nämnda åtminstone två kommunicerande enheterna, en första enhet och en andra enhet. Varje enhet innefattar medel för en handskakningsprocedur varmed en signatur och en synkroniseringsprocedur utföres genom successivt kommunicerade signaturer mellan nämnda kommunicerande enheterna.
Medlen kan innefatta ett icke-manipulerbart område, ett applikationskodsminne, en processorenhet och ett minne för sessionsnyckel lagring. Medlen består av ett smartkort, mjukvaruapplikation, en USB-nyckel, Bluetooth-enhet, radioenhet, WLAN eller en biometrisk enhet. I den mest föredragna utföringen innefattar mjukvaruapplikation en krypterad datauppsättning innefattande en nyckelmotor och register.
Dessutom hanterar nämnda medel fler än en nyckelgenerator, var och en fungerande som en separat kommunikationskanal.
Uppfinningen avser även ett arrangemang för hantering av en synkron nyckelgenerator (SKG), vilket arrangemang kan användas som en gemensam åtkomstspunkt för flera synkrona nyckelgeneratorer installerade i ett system för synkronisering av en kommunikationssession för krypterad överföring och/eller autenticitetskontroll mellan åtminstone två kommunicerande enheter, en första enhet och en andra enhet, var och en innefattande en sessionsräknare, varvid arrangemanget innefattar åtminstone ett kommunikationsgränssnitt med en viss typ av SKG~enhet, varvid varje enhet innefattar medel för initiering av en handskakningsprocedur varmed synkronisering av sessionsräknarna erhålles genom successivt kommunicering av signaturer mellan nämnda kommunicerande enheter. 10 15 20 25 30 35 526 070 7 Företrädesvis använder en applikation nämnda arrangemang genom att ladda en drivrutin. Hanteringsarrangernanget hanterar ett antal moduler, vilka representerar olika typer av enheter. Varje SKG-enhet innefattar en nyckelgenerator. Företrädesvis är en enhet en av ett smartkort, en USB-nyckel, en fil på en disk eller en databastabell eller andra minnesbaserade enheter.
Företrädesvis innefattar en enhet olika gränssnitt: ett accessgränssnitt, innefattande funktioner för formatering, in-/utloggning, låsning av enhet, ett SKG-gränssnitt innehållande funktioner som hanterar nyckelgeneratorer såsom allokering, initiering, generering och synkronisering, ett registreringsgränssnitt implementerande ett register som används för applikationer för att säkert lagra och återhämta konfiguration och andra typer av beständig data i SKG-enheten, och ett kryptogränssnitt tillhandahållande funktionaliteten för användning av genererade nycklar i kryptering och dekryptering av datablock och även generering av kryptografiskt säkra slumptal. En SKG-enhet stödjer ett åtkomstsgränssnitt och SKG- gränssnitt.
Dessutom avser uppfinningen en metod för synkronisering av en kommunikationssession för krypterad överföring och/eller autenticitetskontroll genom användning av ett arrangemang, innefattande stegen: ett första huvudsteg av initiering från den första enheten, ett andra huvudsteg av verifiering av nämnda andra enhet, ett tredje huvudsteg av verifiering av nämnda första enhet, och ett fjärde huvudsteg av komplettering av synkronisering i nämnda andra enhet.
Nämnda första steg innefattar dessutom: definiering av en första nyckelgeneratoridentitet (SID) genom den första enheten, generera med den första enheten en första signatur, överföra med den fösta enheten nämnda nyckelgeneratoridentitet och nämnda första signatur till den andra enheten.
Företrädesvis lagras nämnda nyckelgeneratoridentitet i ett enhetsregister eller en lokal databas.
Nämnda andra huvudsteg innefattar dessutom: mottaga nämnda nyckelgeneratoridentitet och första signatur av den andra enheten, hitta en nyckelgenerator medelst den andra enheten initierad av den fösta nyckelgeneratoridentiteten, verifiera nämnda första signatur, om verifikationen misslyckas avbryta synkroniseringen och återgå till sitt ursprungliga läge, 10 15 20 25 30 35 526 070 8 om verifikationen lyckas synkronisera nyckelgeneratorn i den andra enheten, generera en första signatur med den andra enheten och sända den tillsammans med en andra nyckelgeneratoridentifierare till nämnda första enhet.
I ovan steg undersökes alla kända moduler och enheter av den andra enheten tills en matchande nyckelgeneratoridentitet hittas. En funktion anropas för att hitta en identitet i ett SKG hanterargränssnitt och ett resultat cachas och används som en referens till alla vidare anrop under sessionen.
Metoden innefattar dessutom eftersökning i lokala enheter för en nyckelgenerator kopplad med en specifik fjärridentitet.
Det tredje steget innefattar dessutom: a. mottagning med den första enheten SID och den andra signaturen genererad i den andra enheten, b. verifiera och synkronisera med den första enheten dess nyckelgenerator om verifikationen lyckas, c. generera en nästa sessionsnyckel med den första enheten, d. generera en andra signatur med den första enheten, och e. sända resultatet till nämnda andra enhet.
I steg e startar den första enheten användning av sessionsnyckeln och sänder krypterad data.
Det fjärde huvudsteget innefattar dessutom: mottaga med den andra enheten nämnda andra signatur, verifiera nämnda andra signatur, hämta en nästa nyckel från nämnda nyckelgenerator och använda den som sessionsnyckel, och använda sessionsnyckeln för kryptering.
Uppfinningen avser även en metod för synkronisering av en kommunikationssession för krypterad överföring och/eller autenticitetskontroll mellan åtminstone två enheter via en osäker kommunikationskanal, innefattande stegen att: i en initieringsprocedur erhålla en gemensam utgångsvärde för att användas i respektive enhet, en handskakningsprocedur varmed en synkronisering uppnås genom successivt kommunicerade signaturer mellan nämnda kommunicerande enheter, generera en nyckel baserad på utgångsvärdet (frö), nuvarande nyckel och sessionsräknarvärde i varje enhet, oberoende av andra enheter, och öka sessionsräknaren med ett tal, använda således generade nycklar i nästa krypterade överföring och/eller autenticitetskontroll. Enligt detta utförande lagras utgångsvärdet på ett dynamiskt och utbytbart sätt åtminstone i en av enheterna och företrädesvis i alla enheterna.
Räknarvärdet genereras i en räknare i varje enhet, varvid synkronisering av 10 15 20 25 30 35 526 070 9 räknarvärdet innefattar synkronisering av räknarna. Efter initieringssynkroniseringen av räknarna exekverar enheterna extra synkroniseringssteg endast vid behov.
Uppfinningen avser även ett datorprogram för synkronisering av en kommunikationssession för krypterad överföring och/elier autenticitetskontroll mellan åtminstone två kommunicerande enheter, en första enhet och en andra enhet, varvid varje enhet innefattar en sessionsräknare via en kommunikationskanal, vilket datorprogram innefattar en uppsättning instruktioner för en handskakningsprocedur, en uppsättning instruktioner för synkronisering av sessionsräknarna erhållna genom successivt kommunicerade signaturer mellan nämnda kommunicerande enheterna.
En andra aspekt av uppfinningen avser ett minne för användning i ett system för synkronisering av en kommunikationssession för krypterad överföring och/eller autenticitetskontroll mellan åtminstone två kommunicerande enheter, en första enhet och en andra enhet, varvid varje enhet innefattar en sessionsräknare via en kommunikationskanal, vilket minne innefattar en datastruktur för en handskakningsprocedur, en datastruktur för synkronisering av sessionsräknarna erhållna genom successivt kommunicerade signaturer mellan nämnda kommunicerande enheterna.
Uppfinningen avser även ett datorprogram läsbart medium lagrad därpå ett Applikations Program Interface (API) för synkronisering av en kommunikationssession för krypterad överföring och/eller autenticitetskontroll mellan åtminstone två kommunicerande enheter, en första enhet och en andra enhet, varvid varje enhet innefattar en sessionsräknare via en kommunikationskanal, vilket medium innefattar en uppsättning instruktioner för en handskakningsprocedur, en uppsättning instruktioner för synkronisering av sessionsräknarna erhållna genom successivt kommunicerade signaturer mellan nämnda kommunicerande enheterna.
Uppfinningen avser även en metod för en nätverksenhet för att synkronisera en kommunikationssession för krypterad överföring och/eller autenticitetskontroll med en andra enhet varje enhet innefattande en sessionsräknare, via en kommunikationskanal, vilken metod innefattar en handskakningsprocedur för synkronisering av sessionsräknarna erhållen genom successivt kommunicerade signaturer mellan nämnda kommunicerande enheterna. 10 15 20 25 30 35 526 070 10 Kort beskrivning av ritningarna I det följande kommer uppfinningen att beskrivas med hänvisning till de bifogade schematiska ritningarna som åskådliggör de föredragna utföringsformerna på ett icke- begränsande sätt: Fig. 1 visar ett diagram som illustrerar synkroniseringen mellan två noder i ett kommunikationsnätverk implementerande föreliggande uppfinning, Fig. 2 visar en schematisk illustration av meddelandeöverföringen mellan noderna i Fig. 1, Fig. 3 visar synkroniseringsstegen i noderna A och B i Fig. 1, Fig. 4 visar ett blockdiagram av ett smartkort, som använder uppfinningens läror, Fig. 5 visar ett annat kommunikationsnätverk implementerande föreliggande uppfinning, Fig. 6 visar ett hierarkiskt blockdiagram över ett kontrollsystem enligt föreliggande uppfinning, Fig. 7 visar ett blockdiagram över en gränssnittsenhet implementerande uppfinningen, Fig. 8 visar synkroniseringsstegen i noderna A och B i Fig. 1 i relation till styrsystemet, och Fig. 9 visar schematiskt ett system som använder föreliggande uppfinning.
Detaljerad beskrivning av de föredragna utföringsformerna Traditionellt används i regel någon sort av klocka för att synkronisera två oberoende noder med kunskap om att klockan alltid måste vara synkroniserad. För att lösa besvären med liknande problem tillhandahåller uppfinningen en "handskakningsmetod". Varje uppstart av en ny kommunikationssession innebär en handskakningsprocess enligt uppfinningen för att verifiera att kommunikationen är delvis det som det antas vara (korrekt signatur) och att samma nyckel genereras på varje sida. Om alla parametrar är korrekta genereras en ny nyckel för användning annars utföres inte kommunikationen.
Enligt uppfinningen är nycklarna algoritmiskt genererade med hjälp av vida accepterade och testade säkra HASH-algoritmer, såsom SHA-1, FIPS 180-1, för att säkerställa högsta säkerhet i systemet. 10 15 20 25 30 35 526 070 11 Fig. 1 visar ett nyckeltransaktionsflöde mellan två noder A och B. Dessa noder genererar nycklarna 0-n, där n är ett heltal, och sänder data krypterad med den skapade nyckeln. När en kommunikationssession startar måste man vara säker att nyckelgeneratorerna på båda sidorna är synkroniserade, d.v.s. de kommer att generera samma nyckel.
Vilken krypteringsmetod som helst kan användas eftersom SKG är endast en nyckelgenerator och - hanterare. Nyckel anropas medelst ett kommando, här kallat GetKey, t.ex. till ett API ("Application Protocol Interface").
Fig. 2 visar hur synkroniseringen utförs när t.ex. nod A initierar kommunikationen.
SKG måste initieras med en gemensam nyckel (frö) för synkroniseringen enligt föreliggande uppfinning. Detta frö används endast i början och kan ersättas när helst men kan inte nås av en utomstående, t.ex. genom begränsningar att accessa hårdvaran.
Synkroniseringen enligt uppfinningen är en metod som använder signaturer för att garantera synkronisering av sessionsräknarna X och Y. A' och B' är SIDn (unik identitet) för varje sida. Funktionen S(KAB) och R(K) är signaturgeneratorfunktioner som beskrivs nedan.
Synkroniseringsprocessens syfte är att garantera att en nyckel aldrig används genom att komma överens vilken sida, A eller B, som har nyckeln med det högsta Indexet och använda denna nyckel som en bas för beräkning av nästa sessionsnyckel. I Fig. 2: 1. A genererar ett meddelande [A'XS(KxA'B')] bestående av A's identitet "A"' sammanlänkad med A's nyckelindex ”X” sammanlänkad med ett hashvärde "S". S-värdet beräknas genom att hasha nyckeln "Kx" med index "X" sammanlänkat med A's identitet ”A"' och B's identitet "B”'. Meddelandet sändes till B. 2. B mottager meddelandet och jämför det med sitt nyckelindex Y med det mottagna X. Om X är större än Y, vet B att den måste generera nycklar upp till index X för att vara synkroniserad. Om X är mindre eller lika med Y, vet B att A måste generera nycklar upp till index Y. S-värdet kan beräknas av B och jämföras med det avsända S-värdet. Om S-värden är lika kan B vara säkert på kravet att A's nuvarande nyckelindex är X, eftersom endast A och B kan genera det rätta S-värdet för en viss nyckel. Om inte, avbrytes synkroniseringsprocessen och B återvänder till dess originella första nyckel Ky. 10 15 20 25 30 35 526 070 12 3. B genererar nu nycklar upp till index X om X var större än Y och därmed etablerar att Y är större eller lika med X. Meddelandet [B'YS(KyB'A')] bestående av B's identitet "B"' sammanlänkat med B's nyckelindex ”Y” sammanlänkat med ett hash-värde "S" genereras. S-värdet beräknas genom hashning av nyckeln ”Ky” med index Y sammanlänkat med B's identitet "B"' och A's identitet Detta meddelande sändes sedan tillbaka till A. 4. A mottager meddelandet och jämför det med sitt nyckelindex X med det mottagna Y. Om A's nyckelindex X är mindre än Y måste A då generera nycklar upp till index Y och därmed etablera ett nyckelindex där X är lika med Y. Detta utföres endast om det mottagna S-värdet kan jämföras med det genererade S- värdet och därmed bekräfta att B's krav att vara vid nyckelindex Y is korrekt. 5. Här är A och B vid samma nyckelindex. A kan generera nästa nyckel (Kx där indexet X ökas med 1), som kommer att användas som sessionsnyckel. Ett R- värde beräknas genom hashning av nyligen genererade nyckel och sändes till B (valfritt tillsammans med det första meddelandet, DO, krypterad med den nya nyckeln genom att använda funktionen Ckx(D0)). Meddelandet [R(Kx)Ckx(D0)] sändes till B. 6. B mottager R-värdet, genererar nästa nyckel och beräknar dess R-värde. R- värdet jämföres och om lika, behåller B detta tillstånd (nyckelindex) i des nyckelgenerator och kan nu avkoda det första meddelandet. Om R-värdet skiljer sig finns då ett fel och hela processen avbrytes och B återgår till dess ursprungliga första nyckel Ky.
Följande är ett exempel, som visas med hänvisning till Fig. 3, illustrerande synkroniseringsmetoden enligt uppfinningen: ø Sida A initierar kommunikationen genom att sända sin identitet A' (SID), nuvarande sessionsräknare X och S-signaturen till B. S signaturen beräknas genom att anropa GetSSig() i API:et.
~ Sidan B anropa också GetSSig () och sänder sin identitet B', sessionsräknare Y och S-signatur. o Sidan A verifierar S-signaturen från B. A anropar VerSSig() för att utföra synkroniseringen. o A vet att A och B är synkroniserade och kallar GetNextKey() för att erhålla nästa nyckel för kryptering. v Sidan A anropar GetRSig() (efter anropet för att erhålla nästa nyckel) och sänder denna signatur till B. A kan nu kryptera data och sända den. 10 15 20 25 30 35 526 070 13 o B kontrollerar denna signatur med dess Ky+1 genom att anropa VerRSig() och om dessa matchar anropar B GetNextKey(). o B vet nu att A och B är synkroniserade och kan avkoda data.
De ovan nämnda funktionerna kan med fördel men inte exklusivt definieras i en nyckelgenerator i API och har följande funktioner: GetS$ig(): hämtar S signatur Tar som parameter SID som identifierar nyckelgeneratorn och en pekare till en buffert innehållande X ll S(KXAB).
VerSSig(): Verifierar S-signaturen.
Tar SID kopplad till en nyckelgenerator och en pekare till en buffert innehållande Y ll S(KYBA).
GetRSigO: Hämtar R-signaturen.
Tar SID som identifierar nyckelgeneratorn och en pekare till en buffert innehållande R(KXAB).
VerRSig(): Verifierar R-signaturen.
Tar SID kopplad till en nyckelgenerator och en pekare till en buffert innehållande R(Kv+1BA)- GetNextKeyO: hämtar nästa nickel från nyckelgeneratorn med erhållen SID.
Tar SID som identifierar nyckelgeneratorn och en referens till nästa nyckel.
Hashning av signaturfunktionsparametern skapar signaturen. Algoritmen SHA-1, till exempel, användes för att hasha olika indata och för att beräkna en koncentrerad representation av ett meddelande eller en datafil. Andra algoritmer kan användas, såsom SHA-256, MDS och liknande.
För att SKG ska kunna implementeras i andra existerande utföranden av maskinvara såsom substratet till smarta kort, några komponenter behövs.
Ett exempel på en sådan miljö är ATMELs AT90SC kisel för smarta kort, i vilket SKG kan implementeras som en autenticitetskontroll och krypteringsmetod, t.ex. för säker chatt ändamål. 10 15 20 25 30 35 526 070 » 14 Fig. 4 visar ett exempel, såsom ett smartkort 400 i vilket uppfinningen är implementerad. Smartkortet innefattar ett icke manipulerbart område 410, ett applikationskodsminne 420, en processorenhet 430 och ett minne 440 för sessionsnyckellagring. Processorenheten styr minnet enheternas funktion och kodminnet och kommunikationen. Det bör förstås att smartkortet och dess funktionella enheter är givna endast som ett exempel och andra förekomster och applikationer kan förekomma. Genom att använda SKG i smartkort förenklas möjligheten att integrera SKG i de existerande miljöerna. För att implementera SKG i en smartkortsmiljö behöver man utvecklingsplattformen för processorkärnan och programmeringsverktyg för det aktuella smartkortet. Smartkortet bör ha icke påverkbart minne (EEPROM/Flash). Detta minnes storlek sätter begränsningen på hur många nycklar som kan genereras. Det är önskvärt att använda hög säkerhetsklassificerad smartkort för bästa säkerhet (EAL 4+).
Enligt ett exempel som illustreras i Fig. 5 kan säker kommunikation uppnås mellan fältklienter S10a-510d och deras företag 520 genom att använda t.ex. ett SKG smartkort 530 som beskrevs tidigare, vid klientnoderna och en WSKG applikation 540 vid företagsnoden. Kommunikationen utföres genom, t.ex. Internet 560 eller annat kommunikationsnätverk. Genom att använda applikationen vid företagsnoden är det möjligt att hantera ett stort antal klienter. Vid klientsidan kan SKG även implementeras som: - Mjukvara - USB programvarunyckel (godtycklig USB-minnesnyckel) 570 ~ Bluetoothenhet 580 - Radioenhet (580) - WLAN enhet - RFID - Biometrisk enhet (580) Alla enheter kan kommunicera via en moduldrivrutin till dess applikation. Dessa drivrutiner kan utvecklas specifikt för enheten. Mjukvara, smartkort och USB nyckelenheter existerar redan på marknaden.
En stark krypterad fil innehållande nyckelmotorn och register kan representera mjukvarumodulen. Detta är vanligast förekommande på serversidan och kan även användas på klienten. 10 15 20 25 30 35 526 070 15 USB nyckeln 579 kan vara antingen ett flashminne eller en mer kraftfull enhet som är mycket lik ett smartkort men med ett USB gränssnitt. Fördelen är att det inte finns behov att använda en specifik läsare för USB-enheten eftersom USB är en gemensam standard i de flesta datorer.
Bluetooth-området lider av tillfredsställande säkerhet. SKG kan enkelt modifieras för att ta hand om nyckelhantering för att bringa Bluetooth till en hög säkerhetsnivå som informationsbärare.
WLAN enligt 802.11, 802.11b o.s.v. lider också av otillfredsställande säkerhet. SKG kan med lätthet anpassas för att ta hand om nyckelhantering.
RF enheter används oftast inom vitt skilda områden men oftast som identifierlngsbrickor i passagesystem. Ett problem är att brickidentitet är en statisk nyckel som ser likadana ut varje gång. Genom implementering av SKG är det möjligt att tillåta brickan trigga SKG som genererar en ny nyckel varje gång en person passerar grinden.
Biometriska enheter är mycket lämpliga för identifiering av användaren och som sådana kan de öka SKG-teknikens värde. Men som en fristående enhet lider den av samma problem som RF, nämligen samma identitet varje gång (ett fingeravtryck).
Genom att låta fingeravtrycket trigga SKG att generera en ny nyckel varje gång en person identifierar sig själv, uppnås högsta säkerhetsnivån.
Genom att konfigurera SKG för att hantera fler än en nyckelgenerator kommer varje sådan generator att agera som en separat kommunikationskanal. Således är det möjligt att använda en enda SKG-enhet för flera kommunikationsändamål/- applikationer. Ett smartkort kan t.ex. användas för passagesystem, datorinloggning, banköverföring o.s.v., där varje applikation använder dess egen SKG kanal. Genom att använda endast en SKG-enhet, såsom ett smartkort, behöver användarna endast _ identifiera sig själva endast mot en enhet genom att använda endast en identifiering, såsom en PIN-kod.
Dessutom kan en SKG försedd enhet ha flera användbarhets lager, t.ex. en användarnivå där användaren kan ändra PIN-kod och en administratörsnivå där uppsättningen för flera kanaler o.s.v. hanteras. Varje lager kan skyddas medelst en krypterad inloggningsrutin. 10 15 20 25 30 35 526 070 16 Fig. 6 visar en SKG hanterare (SKGM) 600, vilken kan användas som en gemensam accesspunkt till alla SKG-motorer installerade i systemet. Dess moduler 610a-610c och ett sub-objekt av SKGM definierar en SKG-motor. Modulen implementerar ett kommunikationsgränssnitt med en viss typ av SKG-enhet 620a-620f. Alla applikationer som vill tillträda dessa motorer kan använda SKG hanteraren som sedan' hanterar resurser.
I den mest fördelaktiga utföringsformen kan en applikation använda SKGM, t.ex. genom att ladda ett Dynamiskt LänkBibliotek (DLL) eller en enhetsdrivare antingen implicit eller explicit. De medföljande startfilerna innehåller definitionerna och deklarationerna som krävs för att använda DLL.
SKGM är en implementering av system SKG på en datorenhet. Hanteraren hanterar ett antal moduler som representerar olika typer av enheter. I SKG-enheten finns nyckelgeneratorerna. En enhet kan vara av olika typer, ett smartkort, en USB-nyckel, en fil på en disk, en databastabell, o.s.v. Enheten 700 som visas i Fig. 7 har fyra olika gränssnitt (funktionalitetsg rupper): - Accessgränssnittet 710 innefattar funktioner för formatering, in-/utloggning, låsning av enhet o.s.v.
- SKG-gränssnittet 720 innehåller alla funktioner som hanterar nyckelgeneratorer såsom allokering, initiering, generering och synkronisering.
- Registreringsgränssnittet 730 implementerar ett mindre register som används för applikationer för att säkert lagra och återhämta konfiguration och andra typer av beständig data i SKG-enheten.
- Kryptogränssnittet 740 tillhandahåller funktionaliteten för användning av genererade nycklar i kryptering och dekryptering av datablock och även generering av kryptografiskt säkra slumptal.
En SKG-enhet behöver inte stödja alla fyra gränssnitt och det finns ett sätt att fråga den för de stödda gränssnitten. Emellertid måste access- och SKG-gränssnitten alltid vara tillgängliga.
I följande hänvisas till figurerna 1 och 8.
När en kommunikationssession ska starta måste nyckelgeneratorerna på båda sidorna synkroniseras, d.v.s. de kommer att generera samma nycklar. 10 15 20 25 30 35 5-26 070 17 För att uppnå detta utför SKG-gränssnittet av SKG hanteraren några användbara API anrop. För att göra en säker synkronisering av de två nyckelgeneratorerna utföres synkroniseringsmetoden enligt uppfinningen.
Varje nod A och B (Fig. 1) har en nyckelgeneratoridentifierare (SID) som speciellt dediceras för kommunikation med andra noder.
Antaga att nod A bestämmer att initiera synkroniseringen.
Steg 1: initiering från nod A (Fig. 8) Applikationen vid nod A måste veta identiteten av nyckelgeneratorn (SID), vilken den använder för kommunikation med nod B. Denna kan lagras i enhetsregistret eileri någon annan lokal databas. När nod A vet vilken nyckelgeneratoridentifierare (SID) den ska använda genererar den en unik signatur (S-signatur) genom att anropa funktionen GetSSig(). Data är nu redo att överföras över applikationsprotokollet som används. Nod A sänder SID och S-signatur (som innefattar inkrementräknaren) till nod B.
Steg2: Verifiering i nod B Applikationen vid nod B mottager SID och S-signaturen genererad i nod A. Ur nod Bs synvinkel är nyckelgeneratoridentifieraren (SID) från nod A, SID-B. Nod B behöver hitta sin egen nyckelgenerator (SID-A) initierad med SID-B och anropar (API-) funktionen GetSidAFromSidB(). Alla kända moduler och enheter måste undersökas tills en matchande SID-A hittas. Ett alternativt sätt är att anropa en funktion FindRemotSID i SKGM-interfacet. En bra utformningsregel är att "cacha" resultatet från denna operation eftersom den returnerade SID-A kommer att användas som en referens till alla API anrop under sessionen. Nod B anropar nu funktionen VerSSig() med S-signaturen erhållen från nod A. Om GetSidAFromSidB() eller VerSSig() misslyckas bör synkroniseringen avbrytas och nod B återgår till dess ursprungliga tillstånd. Det är upp till applikationen om nod A borde meddelas att ingen synkronisering är möjligt. Efter ett lyckat anrop till VerSSig() vet nod B korrekt inkrementräknarvärde och nyckelgenerator är synkroniserad. Emellertid vet inte nod A vilken nyckel som ska användas för denna session och nod B vet inte om A är synkroniserad. Nod B anropar GetSSig() och sänder dessa kända nyckelgeneratoridentifierare (SID) tillsammans med resultatet till nod A. 10 15 20 25 30 35 526 070 18 FindRemoteSid söker de lokala enheterna för en nyckelgenerator kopplad med en specificerad avlägsen SID, även kallad Sidß i vissa funktioner. Den lokala SIDn av nyckelgeneratorn och enheten på vilken denna finns returneras om den hittas.
Steg 3: verifiering i nod A Applikationen vid nod A mottager SIDn och S-signaturen genererad i nod B. Genom att anropa funktionen VerSSig() synkroniserar nod A dess nyckelgenerator om verifieringen lyckas. Nod A vet nu att både A och B är synkroniserade. Det är säkert att generera den nästa sessionsnyckeln genom att anropa funktionen, GetNetxKey().
Nod A måste nu bevisa för nod B att den är synkroniserad. Nod A anropar GetRSig() och sänder resultatet till nod B. Det är även möjligt för applikationen vid nod A att starta använda sessionsnyckeln och sänd krypterad data.
Steg 4: slutföra synkroniseringen i nod B Applikationen vid nod B mottager R-signaturen och för vidare den till funktionen VerRSig(). Denna funktion verifierar för nod B att nod A är synkroniserad och att nod A har framställt rätt nästa nyckel. Nod B vet att denna borde hämta nästa nyckel från nyckelgeneratorn och använda den som nästa sessionsnyckel. Nod B anropar funktionen GetNextKey() och startar användningen av sessionsnyckeln för kryptering.
Fig. 9 visar ett fördelaktigt utförande som använder uppfinningen, vilket avser ett system för säker krypterad överföring/autenticitetskontroll mellan två enheter via en säker kommunikationskanal. Kommunikationskanalen kan vara vilken kanal som helst via vilken data kan överföras och i synnerhet kunde kanalen vara stationär så väl som trådlös. Varje sådan enhet innefattar en nyckelgeneratorenhet 900.
Nyckelgeneratorenheterna innefattar ett minne 910 i vilket identiska utgångsvärden SID, så kallade frön, har lagrats företrädesvis på ett dynamiskt/fast och utbytbart sätt. Lagringen av utgångsvärden utföres med fördel i samband med den inledande initieringen av enheterna och den kan med fördel utföras via en säker kanal. Möjligen behöver de utgångsvärden inte överföras fysiskt utan användarna av de avsedda enheterna kan ange dem själva som ett förbestämt värde. Dessutom kan de utgångsvärden utväxlas vid behov men alternativt används samma utgångsvärden under hela nyckelgeneratorenhetens livscykel. I detta fall behöver de utgångsvärden inte lagras i ett dynamiskt minne utan permanenta minnen kan istället användas.
Dessutom innefattar nyckelgeneratorenheterna en räknare X som representerar antalet genererade nycklar. 10 15 20 25 30 35 526 070 19 Antaget att samma utgångsvärden är lagrade i minnet 910 och att räknarna är synkroniserade att leverera samma räknarvärde kan identiska nycklar genereras i flera nyckelgeneratorenheter oberoende av varandra.
Dessa nycklar kan sedan användas för krypterings- eller autenticitetskontrollsändamål mellan enheterna.
Vidare är nyckelgeneratorenheterna med fördel anpassade för att känna av huruvida de är synkroniserade eller inte och i detta fall är de inte, för att implementera denna synkronisering. Avkänning kan utföras medelst en speciell synkroniseringstest som utföres före nyckelgenereringen.
Alternativt kan dessutom ett behov av synkronisering identifieras när olika nycklar användes och endast därefter omstart av synkronisering kan ske. Synkronisering kan ske t.ex. genom utbyte av räknarvärden mellan enheterna.
Beräkningsenheten innefattar en beräkningsalgoritm F, som hashar utgångsvärdet (frö), närvarande nyckel och räknarvärde som inparametrar. Sedan ökas räknarvärdet med ett tal, d.v.s. "count=count+1". Denna beräkningsalgoritm är med fördel implementerad i hårdvaran i beräkningsenheten eller alternativt är den lagrad i ett icke-dynamiskt och oföränderligt minne. Beräkningsalgoritmen genererar med fördel en 160 bitars nyckel, men nycklar av andra längder är självklart också tänkbara. Varje gång en order ges nyckelgeneratorn för att producera en ny nyckel genereras därför ett nytt pseudoslumpat 160 bitars ord, vilket genereras baserad på "fröet" och räknarvärdet.
Nyckelgeneratorenheten 900 innefattar vidare en gränssnittsdel 912 som möjliggör kommunikation mellan kommunikationsenheten och nyckelgeneratorenheten.
Företrädesvis består denna kommunikation av utsändning av instruktioner till nyckelgeneratorenheten att generera en nyckel och överföringen av en således genererade nyckel tillbaka till kommunikationsenheten.
Med fördel är nyckelgeneratorenheten implementerad i hårdvara och utförs i form av en integrerad krets, vilket gör det svårare att manipulera. Denna krets kan läggas till och användas tillsammans med huvudsakligen alla typer av kommunikativa enheter.
Det är t.ex. möjligt att använda nyckelgeneratorenheten i enlighet med uppfinningen tillsammans med laddningsbara kort, så kallade smartkort, i bärbara eller stationära 10 15 20 25 30 35 526 070 20 datorer, i mobiltelefoner, elektroniska kalendrar och liknande elektronisk utrusning som kan kommunicera.
Emellertid är det likaledes möjligt att implementera nyckelgeneratorenheten i mjukvara, t.ex. i en konventionell dator, och använda existerande minne och liknande.
Detta alternativ är speciellt fördelaktigt för implementering i stationära enheter och speciellt i enheter som används som centralenheter.
Nyckelgeneratorenheten enligt uppfinningen kan användas antingen för punkt-till- punkt kommunikation eller autenticitetskontroll, d.v.s. mellan två enheter, eller mellan en centralenhet, en server, eller flera användare, klienter. En sådan centralenhet innefattar ett antal olika nyckelgeneratorenheter, en för varje klient i kommunikation med centralenheten. Alternativt kan en nyckelenhet bestå av flera olika utgångsvärden, i vilket fall kommandot till nyckelgeneratorenheten att generera en nyckel även innefattar information avseende vilket ursprungligt värde som ska användas. Det är således möjligt för flera enheter att kommunicera med centralenheten för att ha identiska nyckelgeneratorenheter, vilket låter dem att kommunicera med samma nyckelgeneratorenhet i centralenheten.
I detta fall innefattar en centralenhet anordnad att kommunicera med flera enheter företrädesvis medel för implementering av nyckelgeneratorenhet i mjukvara medan klienten har medel implementerat i hårdvara. Klienten kan t.ex. ha smartkort eller mobiltelefoner, datorer och liknande. Således kan systemet enligt uppfinningen användas mellan en bank och dess kunder, mellan företag och dessa anställda, mellan bolag och dessa dotterbolag, o.s.v. Vidare kan systemet användas för att kontrollera access till hemsidor via Internet eller liknande, t.ex. genom att ansluta dess smartkort till en läsare avsedd för detta ändamål och på så sätt blir det möjligt att även kontrollera tillgång till elektronisk utrustning som kommunicerar trådlöst, t.ex. via Bluetooth eller WLAN. Även enheter som inte är centralenheter kan innefatta flera ursprungsvärden i samma nyckelgeneratorenhet eller i en separat enhet för att kommunicera via flera separata kanaler. På så sätt kan enheten användas för kommunikation med flera olika centralenheter. Ett smartkort kan t.ex. användas för kommunikation med flera olika banker eller andra anläggningar.
I det följande kommer en krypterad transmission eller autenticitetskontroll med hjälp av systemet i Fig. 9 att beskrivas. I ett första steg initieras enheter avsedda för 10 15 20 25 30 35 526 070 21 kommande interkommunikation, under vilken process förses de med identiska utgångsvärden och företrädesvis synkroniseras. Systemet är nu klart för användning och vid ett senare tillfälle som kan förkomma efter slutet av en godtycklig tidsperiod efter initieringen, sammankopplas enheterna via en säker kommunikationskanal och åtminstone en av enheterna identifierar sig själv för den andra. I nästa steg bestämmer den andra enheten huruvida den givna identiteten är känd och huruvida den har tillhörande nyckelgeneratorenhet, d.v.s. en nyckelgeneratorkrets som beskrevs tidigare och med ett tillhörande utgångsvärde. Om så är fallet fortsätter processen till nästa steg, annars avbryts processen.
Enheterna kommer sedan överens att exekvera krypterad överföring och/eller autenticitetskontroll varmed var och en beräknar nycklar separat i respektive nyckelgeneratorenhet. Innan detta sker kan en synkroniseringstest ha utförts för att undersöka huruvida räknarna i varje respektive nyckelgeneratorenhet är synkroniserade. Om detta är fallet fortsätter processen direkt till nästa steg i annat fall ett synkroniseringssteg som beskrevs i samband med de tidigare utförandena (Fig. 3 och 8) exekveras först för att nollställa synkroniseringen mellan enheterna.
De beräknade nycklarna används sedan för exekvera krypterad överföring och/eller autenticitetskontroll. Emellertid bör det förstås att krypterad transmission och autenticitetskontroll kan självklart utföras samtidigt och i samma process. Kryptering och autenticitetskontroll kan utföras med hjälp av huvudsakligen vilken krypteringsalgoritm som helst som använder nycklar, såsom den kända DES, RC6 och så vidare.
Uppfinningen kan användas för autenticitetskontroll, d.v.s. verifiera att enheten med vilken man kommunicerar med är den som den påstår vara, så väl som för nyckelgenerering för krypterad överföring. Enheterna som används i samband med föreliggande uppfinning, såsom smartkort, telefoner och liknande kan emellertid med fördel förses med medel anordnade för att försäkra att enhetsanvändaren är korrekt.
D.v.s. autenticitetskontroll mellan användare och kommunikationsenheten. Sådan autenticitetskontroll kan utföras med hjälp av ingivning av en kod, identifiering av fingeravtryck och liknande.
Flera typer av system och metod beskrivna ovan är möjliga. T.ex. beror metoden och systemet av kryptering eller generade nycklar och således kan det användas tillsammans med de flesta kända liknande metoder. Dessutom är nyckelgeneratorenheten med fördel implementerad hårdvaran, vilket gör 10 15 526 070 22 nyckelgenereringsprocessen helt dold för användaren. Det är emellertid möjligt att implementera nyckelgeneratorenheten i mjukvara i en vanlig dator eller processorenhet. Därtill kan enheterna i systemet vara huvudsakligen vilken kommunikativ elektronisk enhet som helst. Räknarna som används för att generera räknarvärden för nyckelgeneratorenheterna kan också vara av vilken typ som helst förutsatt att de genererar räknarvärden som varierar med tiden. Det är likaledes möjligt att utelämna räknarna i en eller flera enheter och i detta fall ersättes synkroniseringssteget med ett steg att utväxla räknarvärden mellan enheterna, i.e. synkronisera räknarvärden före varje nyckelgenereringsoperatlon. Sådana och andra uppenbara varianter måste anses falla inom skyddsomfånget för uppfinningen såsom det senare definieras i de bifogade kraven.
Uppfinningen är inte begränsad till de beskrivna och visade utföringsformerna.
Uppfinningen kan modifieras inom omfattningen av de bifogade kraven på många olika sätt beroende på applikationerna/kraven och önskemål.

Claims (9)

1. 5 10 15 20 25 30 35 526 070 23 PATENTKRAV
2. 1. En metod för synkronisering av en kommunikationssession för krypterad överföring och/eller autenticitetskontroll via en kommunikationskanal mellan åtminstone två kommunicerande enheter, en första enhet och en andra enhet (A, B), varvid varje enhet innefattar en sessionsräknare (X,Y), vilken metod innefattar en handskakningsprocedur varmed synkronisering av sessionsräknarna erhålles genom successivt kommunicerade signaturer (S, R) mellan nämnda kommunicerande enheterna (A, B). .
3. Metod enligt krav 1, vari identiska och synkrona nycklar genereras i fysiskt separerade platser utan att ange information om nycklarna online eller fristående. .
4. Metod enligt krav 1 eller 2, vari varje enhet initieras med ett gemensamt frö och en nyckel (Ko) för synkronisering.
5. Metod enligt krav 3, vari nämnda gemensamma nyckel används endast i ett initialt steg och kan ersättas när som helst. .
6. Metod enligt krav 1, innefattande stegen: a. första enhet (A) initierar kommunikationen genom att sända en datauppsättning innefattande nämnda första enhetens identitet (A'), en aktuell sessionsräknare (X) och en första signatur (S) till nämnda andra enhet (B), b. den andra enheten (B) mottager data, verifiera nämnda signatur för att utföra synkroniseringen, d. den andra enheten (B) hämtar nämnda första signatur (S) och sänder dess identitet (B'), en andra sessionsräknare (Y) och nämnda första signatur, e. den första enheten (A) verifierar den första signaturen från den andra enheten (B), f. den första enheten (A) utför en synkronisering, g. den första enheten (A) erhåller en ny nyckel för kryptering, om båda enheterna är synkroniserade, h. den första enheten (A) genererar en ny signatur (R) och tillhandahåller den till den andra enheten (B), i. den andra enheten (B) verifierar nämnda andra signatur (R), och 10 15 20 25 30 35 10. 11. 12. 13 14. 15. 24 j. den andra enheten (B) genererar en ny nyckel vid en positiv verifikation av nämnda andra signatur.
7. Metod enligt krav 5, vari nämnda första enhet (A) krypterar data och sänder data efter steg h.
8. Metod enligt krav 5, vari nämnda andra enhet (B) avkodar data erhållen från den första enheten (A) efter steg j. Metod enligt något av föregående krav, vari signaturerna genereras som ett HASH- värde av vilken storlek som helst. Metod enligt krav 8, vari nämnda signaturer genereras genom att använda en eller flera av algoritmerna SHA-1, SHA-256 MDS etc. Metod enligt något av föregående krav, vari en nyckel aldrig återanvänds genom att komma överens om vilken enhet (A or B) som har nyckeln med högsta index och använda denna nyckel som en bas för beräkning av nästa sessionsnyckel. Ett kommunikationsnätverk innefattande åtminstone två kommunicerande enheter (A, B) kommunicerande via en kommunikationskanal, varje enhet innefattande medel för synkronisering av en kommunikationssession för krypterad överföring och/eller autenticitetskontroll mellan nämnda åtminstone två kommunicerande enheterna, en första enhet och en andra enhet, kännetecknar därav att varje enhet innefattar medel för en handskakningsprocedur varmed en signatur och en synkroniseringsprocedur utföres genom successivt kommunicerade signaturer mellan nämnda kommunicerande enheterna. .Nätverk enligt krav 11, vari nämnda medel innefattar ett icke-manipulativt område (410), ett applikationskodsminne (420), en processorenhet (430) och ett minne för lagring av sessionsnyckel. Nätverk enligt krav 12, vari nämnda medel består av ett smartkort (400), mjukvaruapplikation, en USB-nyckel (570), Bluetooth-enhet (580), radioenhet (S80), WLAN eller en biometrisk enhet (580). Nätverk enligt krav 13, vari nämnda mjukvaruapplikation innefattar en krypterad datauppsättning innefattande en nyckelmotor och register. 10 15 20 25 30 35 16. 17. 18 1
9. 20. 21. 21. 526 070 25 Nätverk enligt krav 11, vari nämnda medel hanterar fler än en nyckelgenerator, var och en fungerande som en separat kommunikationskanal. Ett arrangemang (600) för hantering av en synkron nyckelgenerator (SKG), vilket arrangemang kan användas som en gemensam åtkomstspunkt för flera synkrona nyckelgeneratorer installerade i ett system för synkronisering av en kommunikationssession för krypterad överföring och/eller autenticitetskontroll mellan åtminstone två kommunicerande enheter (A, B), en första enhet och en andra enhet, var och en innefattande en sessionsräknare (X, Y), varvid nämnda arrangemang innefattar åtminstone ett kommunikationsgränssnitt (610a-610c) med en viss typ av SKG-enhet (620a-620f), varvid varje enhet innefattar medel för initiering av en handskakningsprocedur varmed synkronisering av sessionsräknarna erhålles genom successivt kommunicering av signaturer mellan nämnda kommunicerande enheter. .Arrangemang enligt krav 16, vari en applikation använder nämnda arrangemang genom att ladda en drivrutin. Arrangemang enligt krav 16, vari hanteringsarrangemanget hanterar ett antal moduler, vilka representerar olika typer av enheter. Arrangemang enligt krav 16, vari varje SKG~enhet (620a-620f) innefattar en nyckelgenerator. Arrangemang enligt krav 16, vari en enhet är en av ett smartkort, en USB-nyckel (570), en fil på en disk eller en databastabell eller andra minnesbaserade enheter. Arrangemang enligt krav 20, vari en enhet innefattar olika gränssnitt: ett accessgränssnitt (710), innefattande funktioner för formatering, in-lutloggning, låsning av enhet, ett SKG-gränssnitt (720) innehållande funktioner som hanterar nyckelgeneratorer såsom allokering, initiering, generering och synkronisering, ett registreringsgränssnitt (730) implementerande ett register som används för applikationer för att säkert lagra och återhämta konfiguration och andra typer av beständig data i SKG-enheten, och 10 15 20 25 30 35 22. 23. 24. 25. 26. 526 070 26 ett kryptogränssnitt (740) tillhandahållande funktionaliteten för användning av genererade nycklar i kryptering och dekryptering av datablock och även generering av kryptografiskt säkra slumptal. Arrangemang enligt krav 21, vari en SKG-enhet stödjer åtkomstsgränssnitt och SKG-gränssnitt. En metod för synkronisering av en kommunikationssession för krypterad överföring och/eller autenticitetskontroll genom användning av ett arrangemang enligt något av kraven 16-22, innefattande: ett första huvudsteg av initiering vid den första enheten (A), ett andra huvudsteg av verifiering vid nämnda andra enhet (B), ett tredje huvudsteg av verifiering vid nämnda första enhet (A), och ett fjärde huvudsteg av komplettering av synkronisering vid nämnda andra enhet (B)- Metod enligt krav 23, vari nämnda första steg dessutom innefattar: definiering av en första nyckelgeneratoridentitet (SID) genom den första enheten (A). generera med den första enheten (A) en första signatur (S), överföra med den fösta enheten nämnda nyckelgeneratoridentitet och nämnda första signatur (S) till den andra enheten (B). Metod enligt krav 23, vari nämnda nyckelgeneratoridentitet lagras i ett enhetsregister eller en lokal databas. Metod enligt krav 23, vari nämnda andra huvudsteg dessutom innefattar: a. mottagning av nämnda nyckelgeneratoridentitet och första signatur (S) vid den andra enheten (B), b. hitta en nyckelgenerator (SID-A) medelst den andra enheten (B) initierad av den fösta nyckelgeneratoridentiteten (SID-B), verifiera nämnda första signatur, d. om verifikationen misslyckas avbryta synkroniseringen och återgå till sitt ursprungliga läge, e. om verifikationen lyckas, synkronisera nyckelgeneratorn vid den andra enheten, 10 15 20 25 30 35 27. 28. 29. 30. 31. 32. 33. 526 070 27 f. generera en första signatur vid den andra enheten (B) och sända den tillsammans med en andra nyckelgeneratoridentifierare (SID) till nämnda första enhet (A). Metod enligt krav 26, vari i steg b undersökes alla kända moduler och enheter av den andra enheten tills en matchande nyckelgeneratoridentitet (SID-A) hittas. Metod enligt krav 26, vari i steg b anropas en funktion för att hitta en identitet i ett SKG hanterargränssnitt och ett resultat cachas och används som en referens till alla vidare anrop under sessionen. Metod enligt krav 28, dessutom innefattande eftersökning för lokala enheter för en nyckelgenerator kopplad med en specifik fjärridentitet (SID-B). Metod enligt krav 23, vari nämnda tredje steg dessutom innefattar: a. mottagning av SID vid den första enheten och den andra signaturen genererad i den andra enheten (B), b. verifiering och synkronisering vid den första enheten dess nyckelgenerator om verifikationen lyckas, generering av en nästa sessionsnyckel vid den första enheten, generering av en andra signatur (R) vid den första enheten, och e. sändning av resultatet till nämnda andra enhet (B). Metod enligt krav 30, vari i steg e startar nämnda första enhet (A) användning av sessionsnyckeln och sänder krypterad data. Metod enligt krav 23, vari nämnda fjärde huvudsteg dessutom innefattar: - mottaga med den andra enheten nämnda andra signatur (R), - verifiera nämnda andra signatur, - hämta en nästa nyckel från nämnda nyckelgenerator och använda den som sessionsnyckel, och - använda sessionsnyckeln för kryptering. En metod för synkronisering av kommunikationssession för krypterad överföring och/eller autenticitetskontroll mellan åtminstone två enheter via en osäker kommunikationskanal, innefattande stegen att: - i en initieringsprocedur erhålla en gemensam utgångsvärde för att användas i respektive enhet, 10 15 20 25 30 35 34. 35. 36. 37. 38. 39. 526 070 28 - utföra en handskakningsprocedur varmed en synkronisering uppnås genom successivt kommunicerade signaturer mellan nämnda kommunicerande enheter, - generera en nyckel baserad på utgångsvärdet (frö), nuvarande nyckel och sessionsräknarvärde i varje enhet, oberoende av andra enheter, och öka sessionsräknaren med ett tal, - använda således generade nycklar i nästa krypterad överföring och/eller autenticitetskontroll. Metod enligt krav 32, vari utgångsvärdet lagras på ett dynamiskt och utbytbart sätt åtminstone i en av enheterna och företrädesvis i alla enheterna. Metod enligt krav 32 eller 33, vari räknarvärdet genereras i en räknare i varje enhet, varvid synkronisering av räknarvärdet innefattar synkronisering av räknarna. Metod enligt krav 32, vari följande initieringssynkronisering av räknarna exekverar enheterna extra synkroniseringssteg endast vid behov. Ett datorprogram för synkronisering av en kommunikationssession för krypterad överföring och/eller autenticitetskontroll via en kommunikationskanal mellan åtminstone två kommunicerande enheter, en första enhet och en andra enhet (A, B), varvid varje enhet innefattar en sessionsräknare (X,Y), vilket datorprogram innefattar en uppsättning instruktioner för en handskakningsprocedur, en uppsättning instruktioner för synkronisering av sessionsräknarna erhållna genom successivt kommunicerade signaturer mellan nämnda kommunicerande enheterna. Ett minne för användning i ett system för synkronisering av en kommunikationssession för krypterad överföring och/eller autenticitetskontroll via en kommunikationskanal mellan åtminstone två kommunicerande enheter, en första enhet och en andra enhet, varvid varje enhet innefattar en sessionsräknare (X,Y), vilket minne innefattar en datastruktur för en handskakningsprocedur, en datastruktur för synkronisering av sessionsräknarna erhållna genom successivt kommunicerade signaturer mellan nämnda kommunicerande enheterna. Ett datorprogram läsbart medium lagrat däri ett Applikations Program Interface (API) för synkronisering av en kommunikationssession för krypterad överföring och/eller autenticitetskontroll via en kommunikationskanal mellan åtminstone två 10 15 20 25 30 40. 41. 526 070 29 kommunicerande enheter, en första enhet och en andra enhet, varvid varje enhet innefattar en sessionsräknare (X,Y), vilket medium innefattar en uppsättning instruktioner för en handskakningsprocedur, en uppsättning instruktioner för synkronisering av sessionsräknarna erhållna genom successivt kommunicerade signaturer (S, R) mellan nämnda kommunicerande enheterna (A, B). En metod för en nätverksenhet för att synkronisera en kommunikationssession för krypterad överföring och/eller autenticitetskontroll via en kommunikationskanal med en andra enhet varje enhet innefattande en sessionsräknare (X,Y), vilken metod innefattar en handskakningsprocedur för synkronisering av sessionsräknarna erhållen genom successivt kommunicerade signaturer mellan nämnda kommunicerande enheterna. Metod enligt krav 40, dessutom innefattande stegen att: - den första enhet (A) initierar kommunikationen genom att sända en datauppsättning innefattande nämnda första enhetens identitet (A'), en aktuell sessionsräknare (X) och en första (S) signatur till nämnda andra enhet (B), - mottaga data vid den andra enheten (B), - verifiera nämnda signatur för att utföra synkroniseringen, - hämta nämnda första signatur (S) vid den andra enheten (B) och sändning av dess identitet (B'), en andra sessionsräknare (Y) och nämnda första signatur, - verifiera den första signaturen från den andra enheten (B) vid den första enheten (A), - utföra en synkronisering medelst den första enheten (A), - erhålla en ny nyckel för kryptering medelst den första enheten (A), om båda enheterna är synkroniserade, - generera en ny signatur (R) medelst den första enheten och tillhandahållande av den till den andra enheten (B), - verifiera medelst den andra enheten (B) nämnda andra signatur (R), och - generera en ny nyckel medelst den andra enheten vid en positiv verifikation av nämnda andra signatur.
SE0302524A 2003-09-22 2003-09-22 Arrangemang för datakommunikationssäkerhet och metod SE526070C2 (sv)

Priority Applications (6)

Application Number Priority Date Filing Date Title
SE0302524A SE526070C2 (sv) 2003-09-22 2003-09-22 Arrangemang för datakommunikationssäkerhet och metod
PCT/SE2004/001367 WO2005029763A1 (en) 2003-09-22 2004-09-22 Data communication security arrangement and method
EP04775468A EP1673898A1 (en) 2003-09-22 2004-09-22 Data communication security arrangement and method
JP2006527945A JP2007506392A (ja) 2003-09-22 2004-09-22 データ通信機密保護の仕組みおよび方法
CNA2004800344278A CN1883156A (zh) 2003-09-22 2004-09-22 数据通信安全设备和方法
US10/953,501 US20050154896A1 (en) 2003-09-22 2004-09-30 Data communication security arrangement and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE0302524A SE526070C2 (sv) 2003-09-22 2003-09-22 Arrangemang för datakommunikationssäkerhet och metod

Publications (3)

Publication Number Publication Date
SE0302524D0 SE0302524D0 (sv) 2003-09-22
SE0302524L SE0302524L (sv) 2005-03-23
SE526070C2 true SE526070C2 (sv) 2005-06-28

Family

ID=29212520

Family Applications (1)

Application Number Title Priority Date Filing Date
SE0302524A SE526070C2 (sv) 2003-09-22 2003-09-22 Arrangemang för datakommunikationssäkerhet och metod

Country Status (2)

Country Link
CN (1) CN1883156A (sv)
SE (1) SE526070C2 (sv)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101257304B (zh) * 2008-04-03 2011-11-09 北京大学 一种双环路频率综合器粗调环路的调谐方法
CN101626373B (zh) * 2008-07-11 2012-06-06 华为技术有限公司 超宽带系统的报文处理方法、装置和系统
CN101420306B (zh) * 2008-12-12 2010-12-08 肖佐楠 一种基于rsa加密和签名算法的汽车车载自动诊断方法
JPWO2014147934A1 (ja) * 2013-03-21 2017-02-16 パナソニックIpマネジメント株式会社 通信装置、通信システム及び通信方法
US9763086B2 (en) 2013-08-27 2017-09-12 Qualcomm Incorporated Owner access point to control the unlocking of an entry
CN105721395B (zh) * 2014-12-03 2019-03-01 华为数字技术(苏州)有限公司 数据同步配置方法、设备及系统
FR3046000B1 (fr) * 2015-12-21 2018-02-16 Oberthur Technologies Procede de reception de donnees au sein d'une entite electronique et entite electronique associee
CN108600231B (zh) * 2018-04-27 2020-10-27 广东复安科技发展有限公司 一种基于同步技术的网络安全传输方法
CN110768691B (zh) * 2019-09-30 2022-03-04 星微科技(天津)有限公司 一种听障人士使用的智能腰佩终端及实现方法
CN113315632B (zh) * 2021-07-29 2021-11-02 北京紫光青藤微系统有限公司 用于确定密钥生成器的方法及系统、装置、通信设备

Also Published As

Publication number Publication date
SE0302524D0 (sv) 2003-09-22
SE0302524L (sv) 2005-03-23
CN1883156A (zh) 2006-12-20

Similar Documents

Publication Publication Date Title
US20050154896A1 (en) Data communication security arrangement and method
US9647836B2 (en) Secure storage for shared documents
US8484480B2 (en) Transmitting information using virtual input layout
US11546348B2 (en) Data service system
US10984052B2 (en) System and method for multiple-character wildcard search over encrypted data
CN106980794A (zh) 基于TrustZone的文件加解密方法、装置及终端设备
CN107078899B (zh) 混淆数据的方法
US11025415B2 (en) Cryptographic operation method, method for creating working key, cryptographic service platform, and cryptographic service device
CN107689869A (zh) 用户口令管理的方法和服务器
EP2743842A1 (en) Secure search processing system and secure search processing method
JP4876169B2 (ja) データを安全に記憶するための方法、システム、およびコンピュータ・プログラム
US11784815B2 (en) Method of time-delay encryption with keyword search and system using the same
CN109347839A (zh) 集中式密码管理方法、装置、电子设备及计算机存储介质
GB2574458A (en) Methods and Systems For Secure Data Transmission
CN112073192B (zh) 一种数据处理方法、装置及密码机
SE526070C2 (sv) Arrangemang för datakommunikationssäkerhet och metod
CN111008400A (zh) 数据处理方法、装置及系统
JP2006189925A (ja) 個人情報管理システム、個人情報管理プログラムおよび個人情報保護方法
US10050943B2 (en) Widely distributed parameterization
CN117118598A (zh) 一种数据分享的方法、电子设备及计算机集群
CN115766064A (zh) 一种密码应用方法、装置、设备及存储介质
CN113642009A (zh) 基于区块链的打印方法、装置、计算机设备和存储介质
Usharani et al. Secure Data Storage and Retrieval Operations Using Attribute-Based Encryption for Mobile Cloud Computing
WO2022224213A1 (en) Method and system for secure confidential digital content exchange
WO2022269544A1 (en) Secure asset storage system and wearable device

Legal Events

Date Code Title Description
NUG Patent has lapsed