SE526070C2 - Synchronizing method of communication session between e.g. enterprise and employees, involves performing handshake procedure to synchronize session counters of communication units by successively communicated signatures - Google Patents

Synchronizing method of communication session between e.g. enterprise and employees, involves performing handshake procedure to synchronize session counters of communication units by successively communicated signatures

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
Swedish (sv)
Other versions
SE0302524L (en
SE0302524D0 (en
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/en
Publication of SE0302524D0 publication Critical patent/SE0302524D0/en
Priority to EP04775468A priority patent/EP1673898A1/en
Priority to JP2006527945A priority patent/JP2007506392A/en
Priority to CNA2004800344278A priority patent/CN1883156A/en
Priority to PCT/SE2004/001367 priority patent/WO2005029763A1/en
Priority to US10/953,501 priority patent/US20050154896A1/en
Publication of SE0302524L publication Critical patent/SE0302524L/en
Publication of SE526070C2 publication Critical patent/SE526070C2/en

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

Abstract

The handshake procedure is performed to synchronize session counters of communication units e.g. smart card and mobile phone, by signatures successively communicated between the communication units. Independent claims are also included for the following: (1) communication network; (2) communication session synchronizing program; (3) memory; (4) synchronous key generator management arrangement; and (5) computer readable medium storing communication session synchronizing program.

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. 20 25 30 35 526 070 2 well-defined communicating parties. Such environments are e.g. companies and their field workers, bank and its customers, VPN, etc.

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.International Patent Application No. WO 01/74007 (incorporated herein by reference) discloses a method and system for encrypted transmission or authentication between at least two devices via an insecure communication channel. The method includes the steps of obtaining a common value in an initialization procedure, obtaining a common initial value for use in each unit, synchronizing a counter value in each unit; generate a key based on the output value and the counter value in each unit independently of other units; and thus using generated keys in a subsequent encrypted transmission or authentication operation.

SKG kan implementeras som mjukvara eller hårdvara eller en kombination av de två.SKG can be implemented as software or hardware or a combination of the two.

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.SKG can use 160 bit symmetric keys. There is no need for a third trust verifying party for the communication set. SKG can be implemented as software on different types of hardware or only as a software solution. Implementation as hardware provides the highest level of security. Due to the nature of the software and its "intrusiveness", a software-only solution may not be recommended at a client node location.

Emellertid är en mjukvaruserver skyddat på annat sätt och kan anses som en säker miljö.However, a software server is otherwise protected and can be considered a secure environment.

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).SKG has low bandwidth requirements and high security and is suitable for handheld wireless equipment (eg PDA) and mobile phones as well as traditional computer-related equipment. Other related areas with great potential are telematics and radio communication ("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.WO 03/026198 relates to a sequence of transmissions encrypted as a set of successors, each successor having different session keys. The sending unit determines when each new session key should operate and sends this scheduled new key start time to the receiving device. In an advantageous embodiment, the transmitting device also sends a prepared-new-key instruction to the receiving device to provide a sufficient execution time for the receiving device to calculate the new session key. Each new key is generated using a hash function of a counter index and a set of keys determined during an initial key exchange session between the transmitting and receiving device. The counter index is increased at each scheduled new key start time, which produces a new session key.

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.US 6,377,692 prepares two keys, which are updated in the same update cycle at different times as signature keys (master key and extra key) for electronics signature and the update cycle of each key for is divided into e.g. three periods. The first and last periods after the update are used for the extra key while the intermediate period is used for the master key. The electronic signature is confirmed with either two confirmation keys, which are updated synchronously with updating of the two keys used as signature keys. This eliminates the need to stop the issuance of the electronic signature or restrict a service offer when updating signature keys.

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.According to US 20020110245, the security key synchronization between nodes in an optical communication system is maintained by using the bandless signaling to indicate that a new key is used to encrypt the next information block at the transmission point and that the new key should be used to decrypt the next information block at the reception point. A switch-to-new key code can be selected from a group of unused codes in an eight to ten bit encryption scheme. The change-to-new key code can replace a dormant code that was used to generate sufficient distance between the information blocks. The receipt of the switch-to-new key code indicates that the new key was used to encrypt the next information block at the transmission point and triggers a switch-to-new key to decrypt the next information block at the reception point.

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.U.S. Patent Publication No. 20030003896 shows embodiments comprising a method for synchronizing a cryptosystem. In one embodiment, the method uses existing control data that is transmitted as part of a connection establishment process in a wireless communication system. In one embodiment, messages normally transmitted between a base station and a remote unit are analyzed while setting up both outgoing and terminating calls to detect a particular control message indicating the beginning of telephony data transmission. Detection of this message indicates a point where encryption / decryption can begin and be used to synchronize the cryptosystem. Synchronizing a cryptosystem involves the generation of an RC4 state space in a key-auto-key ("KEK") encryption system. In one embodiment, an access channel ("LMAC") of a lower medium uses a lower medium in accordance with a wireless communication protocol. This is convenient because the LMAC message is passed through the same "associated control channel" ("ACC") processing that encrypts and decrypts the telephony data.

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.According to WO 02/47319, a communication system at one end of a communication channel comprises a first cipher generator for generating a succession of ciphers, which generator comprises a first random number generator for generating a sequence of random numbers, each cipher of succession of ciphers being based on the respective part of a sequence of ciphers based on the respective successive part of a sequence of random numbers, and a symmetric encryptor for encrypting successive amounts of an information for transmission to the other end of the channel. Wherein each amount of the information is encrypted by means of each one of the succession of ciphers. At the other end of the channel, the system includes a second cipher generator for synchronous generation with the first cipher generator the same succession of ciphers as the first cipher generator, the second cipher generator comprising a second random number generator for generating the same sequence of random numbers as the first random number generator and symmetric decryptic decrypting encrypted successive amounts of information received from one end of the channel, each amount of information being encrypted using the same and one of succession of ciphers used to encrypt it by the encryptor at one end of the channel.

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.All the previously mentioned documents show different types of methods for communicating secure data within the technical field of the invention. They show examples of known technology, e.g. use of hash algorithms, synchronization key generators, signature solutions, symmetric keys and synchronization in general. However, none of the documents as a whole correspond to all the features of the present invention.

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.SUMMARY OF THE INVENTION The object of the present invention is to provide an efficient method by means of which synchronization and authentication are performed substantially simultaneously. Other purposes are secure communication without the need to send information about the real key used.

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.Thus, it is an object of the invention to provide a synchronization method which guarantees total synchronized nodes while performing authentication. 10 15 20 25 30 35 526 070 5 System SKG is ideal for maintaining a high level of security for authenticity and encryption for systems in closed environments, such as BZB ("Business to Business"), VPN ("Virtual Private Network"), telematics, Internet tunnel, etc. Its small size and low bandwidth requirements make it ideal for PDAs, telecommunications, WAP (Wireless Application Protoco |), radio communication devices (Bluetooth), WLANs, etc. The fact that the system is very suitable for these types of applications does not limit it to these, but can of course also be used in a larger number of applications such as traditional Internet security.

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.For these reasons, a method is provided for synchronizing a communication session for encrypted transmission and / or authentication between at least two communicating units, a first unit and a second unit, each unit comprising a session counter via a communication channel. The method comprises a hand-shaking procedure whereby synchronization of the session counters is obtained by successively communicated signatures between said communicating units.

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.Preferably, identical and synchronous keys are generated in physically separated locations without providing information about the keys online or stand-alone. Initially, each device is initialized with a common seed, a key for synchronization. The common key is used only in an initial step and can be replaced at any time, e.g. if it is destroyed.

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.The method comprises further steps: a. The first unit initiates the communication by sending a data set comprising said first unit identity, a current session counter and a first signature to said second unit, b. Receiving data of the second unit, c. Verifying said signature to perform the synchronization, d. retrieving said first signature of the second device and sending its identity, a second session counter and said first signature, e. verifying the first signature from the second device of the first device, f. performing a synchronization by the first device, g. obtaining a now key for encryption by the first device, if both devices are synchronized, h. generating a new signature by the first device and providing it to the second device, i. verification by means of the second unit of said second signature, and j. generating a new key by means of the second unit in case of positive ve verification of said second signature.

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.Preferably, said first unit encrypts data and transmits data after step h and said second unit decodes data obtained from the first unit after step 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.Preferably but not exclusively, the signatures are generated as a HASH value of any size. The signatures are generated using one or more of the algorithms SHA-1, SHA-256 MDS etc. A key is never reused by agreeing on which device has the key with the highest index and using this key as a basis for calculating the next session key.

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.The invention also relates to a communication network comprising at least two communicating units communicating via a communication channel, each unit comprising means for synchronizing a communication session for encrypted transmission and / or authentication between the at least two communicating units, a first unit and a second unit. Each unit comprises means for a handshake procedure whereby a signature and a synchronization procedure are performed by successively communicated signatures between said communicating units.

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.The means may include a non-manipulable area, an application code memory, a processor unit and a session key storage memory. The means consists of a smart card, software application, a USB key, Bluetooth device, radio device, WLAN or a biometric device. In the most preferred embodiment, the software application comprises an encrypted data set comprising a key engine and register.

Dessutom hanterar nämnda medel fler än en nyckelgenerator, var och en fungerande som en separat kommunikationskanal.In addition, said means handles more than one key generator, each acting as a separate communication channel.

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.The invention also relates to an arrangement for handling a synchronous key generator (SKG), which arrangement can be used as a common access point for several synchronous key generators installed in a system for synchronizing a communication session for encrypted transmission and / or authentication between at least two communicating units, a first unit and a second unit, each comprising a session counter, the arrangement comprising at least one communication interface with a certain type of SKG ~ unit, each unit comprising means for initiating a handshake procedure whereby synchronization of the session counters is obtained by successively communicating signatures between said communicating units. Preferably, an application uses said arrangement by loading a driver. The management arrangement handles a number of modules, which represent different types of devices. Each SKG unit includes a key generator. Preferably, a device is one of a smart card, a USB key, a file on a disk or a database table or other memory based devices.

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.Preferably, a device comprises different interfaces: an access interface, including functions for formatting, logging in / logging out, locking the device, a SKG interface containing functions that handle key generators such as allocation, initialization, generation and synchronization, a registration interface implementing a register used for applications for securely storing and retrieving configuration and other types of persistent data in the SKG device, and a crypto interface providing the functionality for using generated keys in encrypting and decrypting data blocks and also generating cryptographically secure random numbers. A SKG device supports an access interface and SKG interface.

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.In addition, the invention relates to a method for synchronizing a communication session for encrypted transmission and / or authentication by using an arrangement, comprising the steps: a first main step of initialization from the first unit, a second main step of verification of said second unit, a third main step of verifying said first device, and a fourth main step of completing synchronization in said second device.

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.Said first step further comprises: defining a first key generator identity (SID) by the first unit, generating with the first unit a first signature, transmitting with the first unit said key generator identity and said first signature to the second unit.

Företrädesvis lagras nämnda nyckelgeneratoridentitet i ett enhetsregister eller en lokal databas.Preferably, said key generator identity is stored in a device register or a local database.

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.Said second main step further comprises: receiving said key generator identity and first signature of the second unit, finding a key generator by means of the second unit initiated by the first key generator identity, verifying said first signature, if the verification fails to interrupt the synchronization, and return to its original position. If the verification succeeds in synchronizing the key generator in the second unit, generating a first signature with the second unit and sending it together with a second key generator identifier to said first unit.

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.In the above steps, all known modules and devices are examined by the other device until a matching key generator identity is found. A function is called to find an identity in a SKG handler interface and a result is cached and used as a reference for all further calls during the session.

Metoden innefattar dessutom eftersökning i lokala enheter för en nyckelgenerator kopplad med en specifik fjärridentitet.The method also includes searching local units for a key generator coupled with a specific remote identity.

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.The third step further comprises: a. Receiving with the first unit SID and the second signature generated in the second unit, b. Verifying and synchronizing with the first unit its key generator if the verification is successful, c. Generating a next session key with the first unit, d. generate a second signature with the first device, and e. send the result to said second device.

I steg e startar den första enheten användning av sessionsnyckeln och sänder krypterad data.In step e, the first device starts using the session key and sends encrypted 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.The fourth main step further comprises: receiving with the second device said second signature, verifying said second signature, retrieving a next key from said key generator and using it as a session key, and using the session key for encryption.

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.The invention also relates to a method for synchronizing a communication session for encrypted transmission and / or authentication control between at least two units via an insecure communication channel, comprising the steps of: in an initialization procedure obtaining a common initial value for use in each unit, a handshake procedure with which a synchronization is performed. by successively communicating signatures between said communicating units, generate a key based on the output value (seed), current key and session counter value in each unit, independently of other units, and increase the session counter by a number, thus using generated keys in the next encrypted transmission and / or authentication. According to this embodiment, the initial value is stored in a dynamic and interchangeable manner in at least one of the units and preferably in all the units.

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.The counter value is generated in a counter in each unit, wherein synchronization of the counter value includes synchronization of the counters. After the initial synchronization of the counters, the devices execute additional synchronization steps only when needed.

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.The invention also relates to a computer program for synchronizing a communication session for encrypted transmission and / or authentication between at least two communicating units, a first unit and a second unit, each unit comprising a session counter via a communication channel, which computer program comprises a set of instructions for a handshake procedure , a set of instructions for synchronizing the session counters obtained by successively communicated signatures between said communicating units.

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.A second aspect of the invention relates to a memory for use in a system for synchronizing a communication session for encrypted transmission and / or authentication between at least two communicating units, a first unit and a second unit, each unit comprising a session counter via a communication channel, which memory comprises a data structure for a handshake procedure, a data structure for synchronizing the session counters obtained by successively communicated signatures between said communicating units.

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.The invention also relates to a computer program readable medium stored thereon, an Application Program Interface (API) for synchronizing a communication session for encrypted transmission and / or authentication between at least two communicating units, a first unit and a second unit, each unit comprising a session counter via a communication channel, which medium comprises a set of instructions for a handshake procedure, a set of instructions for synchronizing the session counters obtained by successively communicated signatures between said communicating units.

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.The invention also relates to a method for a network unit for synchronizing a communication session for encrypted transmission and / or authentication control with a second unit each unit comprising a session counter, via a communication channel, which method comprises a handshake procedure for synchronizing the session counters obtained by successive communication. communicating units. BRIEF DESCRIPTION OF THE DRAWINGS In the following, the invention will be described with reference to the accompanying schematic drawings which illustrate the preferred embodiments in a non-limiting manner: Fig. 1 shows a diagram illustrating the synchronization between two nodes in a communication network implementing the present invention, Fig. 2 shows a schematic illustration of the message transmission between the nodes in Fig. 1, Fig. 3 shows the synchronization steps in nodes A and B in Fig. 1, Fig. 4 shows a block diagram of a smart card, which uses the teachings of the invention, Fig. 5 shows another communication network implementing the present invention, Fig. 6 shows a hierarchical block diagram of a control system according to the present invention, Fig. 7 shows a block diagram of an interface unit implementing the invention, Fig. 8 shows the synchronization steps in nodes A and B in Fig. 1 in relation to the control system, and Fig. 9 show is schematically a system utilizing the present invention.

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.Detailed description of the preferred embodiments Traditionally, some kind of clock is usually used to synchronize two independent nodes with the knowledge that the clock must always be synchronized. To solve the problems with similar problems, the invention provides a "handshake method". Each start of a new communication session involves a handshake process according to the invention to verify that the communication is in part what it is assumed to be (correct signature) and that the same key is generated on each page. If all parameters are correct, a new key is generated for use, otherwise the communication is not performed.

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.According to the invention, the keys are algorithmically generated using widely accepted and tested secure HASH algorithms, such as SHA-1, FIPS 180-1, to ensure maximum security in the system. Fig. 1 shows a key transaction flow between two nodes A and B. These nodes generate the keys 0-n, where n is an integer, and send data encrypted with the created key. When a communication session starts, one must be sure that the key generators on both sides are synchronized, i.e. they will generate the same key.

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").Any encryption method can be used because SKG is only a key generator and handler. Key is called by means of a command, here called GetKey, e.g. to an API ("Application Protocol Interface").

Fig. 2 visar hur synkroniseringen utförs när t.ex. nod A initierar kommunikationen.Fig. 2 shows how the synchronization is performed when e.g. node A initiates the communication.

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.SKG must be initiated with a common key (seed) for the synchronization according to the present invention. This seed is used only in the beginning and can be replaced at any time but can not be reached by an outsider, e.g. through restrictions on accessing the hardware.

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.The synchronization according to the invention is a method that uses signatures to guarantee synchronization of the session counters X and Y. A 'and B' are the SID (unique identity) for each page. Functions S (KAB) and R (K) are signature generator functions described below.

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.The purpose of the synchronization process is to ensure that a key is never used by agreeing on which side, A or B, has the key with the highest Index and using this key as a basis for calculating the next session key. In Fig. 2: 1. A generates a message [A'XS (KxA'B ')] consisting of A's identity "A"' linked to A's key index "X" linked to a hash value "S". The S-value is calculated by hashing the key "Kx" with index "X" linked to A's identity "A" 'and B's identity "B"'. The message is sent to B. 2. B receives the message and compares it with its key index Y with the received X. If X is greater than Y, B knows that it must generate keys up to index X in order to be synchronized. If X is less than or equal to Y, B knows that A must generate keys up to index Y. The S value can be calculated by B and compared with the sent S value. If S-values are equal, B can be sure of the requirement that A's current key index is X, since only A and B can generate the correct S-value for a certain key. If not, the synchronization process is interrupted and B returns to its original first key Ky. 10 15 20 25 30 35 526 070 12 3. B now generates keys up to index X if X was greater than Y and thus establishes that Y is greater than or equal to X. The message [B'YS (KyB'A ')] consisting of B's identity "B" 'linked to B's key index "Y" linked to a hash value "S" is generated. The S-value is calculated by hashing the key "Ky" with index Y linked to B's identity "B" 'and A's identity. This message is then sent back to A. 4. A receives the message and compares it with its key index X with the received Y. If A's key index X is less than Y, A must then generate keys up to index Y and thereby establish a key index where X is equal to Y. This is done only if the received S-value can be compared with the generated S-value and thus confirm that B's requirement to be at key index Y is correct. 5. Here are A and B at the same key index. A can generate the next key (Kx where the index X is increased by 1), which will be used as the session key. An R-value is calculated by hashing a newly generated key and sent to B (optionally together with the first message, DO, encrypted with the new key using the Ckx (D0) function). The message [R (Kx) Ckx (D0)] is sent to B. 6. B receives the R-value, generates the next key and calculates its R-value. The R-value is compared and if equal, B retains this state (key index) in its key generator and can now decode the first message. If the R-value differs then an error occurs and the whole process is interrupted and B returns to its original first key 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.The following is an example, shown with reference to Fig. 3, illustrating the synchronization method according to the invention: ø Page A initiates the communication by sending its identity A '(SID), the current session counter X and the S signature to B. The signature is calculated by call GetSSig () in the API.

~ 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.~ Page B also calls GetSSig () and sends its identity B ', session counter Y and S signature. o Page A verifies the S signature from B. A calls VerSSig () to perform the synchronization. o A knows that A and B are synchronized and calls GetNextKey () to obtain the next key for encryption. v Page A calls GetRSig () (after the call to obtain the next key) and sends this signature to B. A can now encrypt the data and send it. 10 15 20 25 30 35 526 070 13 o B checks this signature with its Ky + 1 by calling VerRSig () and if these match, B calls GetNextKey (). o B now knows that A and B are synchronized and can decode 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).The above functions can advantageously but not exclusively be defined in a key generator in API and have the following functions: GetS $ ig (): retrieves S signature Takes as parameter SID which identifies the key generator and a pointer to a buffer containing X ll S (KXAB) .

VerSSig(): Verifierar S-signaturen.VerSSig (): Verifies the S-signature.

Tar SID kopplad till en nyckelgenerator och en pekare till en buffert innehållande Y ll S(KYBA).Takes SID connected to a key generator and a pointer to a buffer containing Y ll S (KYBA).

GetRSigO: Hämtar R-signaturen.GetRSigO: Retrieves the R signature.

Tar SID som identifierar nyckelgeneratorn och en pekare till en buffert innehållande R(KXAB).Takes SID that identifies the key generator and a pointer to a buffer containing R (KXAB).

VerRSig(): Verifierar R-signaturen.VerRSig (): Verifies the R signature.

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.Takes SID connected to a key generator and a pointer to a buffer containing R (Kv + 1BA) - GetNextKeyO: retrieves the next nickel from the key generator with the obtained SID.

Tar SID som identifierar nyckelgeneratorn och en referens till nästa nyckel.Takes SID that identifies the key generator and a reference to the next key.

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.Hashing the signature function parameter creates the signature. The SHA-1 algorithm, for example, was used to hash various input data and to compute a concentrated representation of a message or a data file. Other algorithms can be used, such as SHA-256, MDS and the like.

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.In order for SKG to be implemented in other existing embodiments of hardware such as the substrate for smart cards, some components are needed.

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+).An example of such an environment is ATMEL's AT90SC silicon for smart cards, in which SKG can be implemented as an authentication check and encryption method, e.g. for secure chat purposes. Fig. 4 shows an example, such as a smart card 400 in which the invention is implemented. The smart card includes a non-manipulable area 410, an application code memory 420, a processor unit 430 and a session key storage memory 440. The processor unit controls the memory function of the units and the code memory and communication. It should be understood that the smart card and its functional devices are given as an example only and other instances and applications may occur. Using SKG in smart cards simplifies the possibility of integrating SKG into existing environments. To implement SKG in a smart card environment, you need the development platform for the processor core and programming tools for the current smart card. The smart card should have non-removable memory (EEPROM / Flash). The size of this memory puts the limit on how many keys can be generated. It is desirable to use a high security rated smart card for best security (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.According to an example illustrated in Fig. 5, secure communication can be achieved between field clients S10a-510d and their companies 520 by using e.g. a SKG smart card 530 as previously described, at the client nodes and a WSKG application 540 at the corporate node. The communication is performed by, e.g. Internet 560 or other communication network. By using the application at the company node, it is possible to handle a large number of clients. On the client side, SKG can also be implemented as: - Software - USB software key (arbitrary USB memory key) 570 ~ Bluetooth device 580 - Radio device (580) - WLAN device - RFID - Biometric device (580) All devices can communicate via a module driver to its application. These drivers can be developed specifically for the device. Software, smart cards and USB key devices already exist on the market.

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.A strong encrypted file containing the key engine and register can represent the software module. This is most common on the server side and can also be used on the client. 10 15 20 25 30 35 526 070 15 The USB key 579 can be either an fl memory or a more powerful device that is very similar to a smart card but with a USB interface. The advantage is that there is no need to use a specific reader for the USB device because USB is a common standard in most computers.

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.The Bluetooth area suffers from satisfactory security. SKG can be easily modified to take care of key management to bring Bluetooth to a high level of security as an information carrier.

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.WLAN according to 802.11, 802.11b and so on. also suffers from unsatisfactory security. SKG can easily be adapted to take care of key management.

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.RF devices are most often used in widely differing areas, but most often as identification tags in passage systems. One problem is that badge identity is a static key that looks the same every time. By implementing SKG, it is possible to allow the tag to trigger SKG, which generates a new key every time a person passes the gate.

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).Biometric devices are very suitable for user identification and as such can increase the value of SKG technology. But as a stand-alone unit, it suffers from the same problem as RF, namely the same identity every time (a fingerprint).

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.By letting the av imprint trigger SKG to generate a new key every time a person identifies himself, the highest level of security is achieved.

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.By configuring SKG to handle more than one key generator, each such generator will act as a separate communication channel. Thus, it is possible to use a single SKG unit for several communication purposes / applications. A smart card can e.g. be used for access control systems, computer login, bank transfer, etc., where each application uses its own SKG channel. By using only one SKG device, such as a smart card, users only need to _ identify themselves to only one device by using only one identification, such as a PIN code.

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.In addition, a SKG-equipped unit can have your usability layers, e.g. a user level where the user can change the PIN code and an administrator level where the set for several channels and so on. handled. Each layer can be protected by an encrypted login routine. Fig. 6 shows a SKG handler (SKGM) 600, which can be used as a common access point to all SKG motors installed in the system. Its modules 610a-610c and a sub-object of SKGM define a SKG motor. The module implements a communication interface with a certain type of SKG unit 620a-620f. All applications that want to access these engines can use the SKG manager which then 'manages resources'.

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.In the most advantageous embodiment, an application can use SKGM, e.g. by loading a Dynamic Link Library (DLL) or a device driver either implicitly or explicitly. The included startup files contain the definitions and declarations required to use the 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.SKGM is an implementation of system SKG on a computer unit. The manager handles a number of modules that represent different types of devices. The SKG unit contains the key generators. A device can be of different types, a smart card, a USB key, a file on a disk, a database table, and so on. The unit 700 shown in Fig. 7 has four different interfaces (functionality groups): - The access interface 710 includes functions for formatting, logging in / out, locking the unit, and so on.

- SKG-gränssnittet 720 innehåller alla funktioner som hanterar nyckelgeneratorer såsom allokering, initiering, generering och synkronisering.- The SKG interface 720 contains all functions that handle key generators such as allocation, initialization, generation and synchronization.

- 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.The registration interface 730 implements a smaller register used for applications to securely store and retrieve configuration and other types of persistent data in the SKG unit.

- 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.- The crypto interface 740 provides the functionality for the use of generated keys in encryption and decryption of data blocks and also the generation of cryptographically secure random numbers.

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.A SKG device does not have to support all four interfaces and there is a way to query it for the supported interfaces. However, the access and SKG interfaces must always be available.

I följande hänvisas till figurerna 1 och 8.In the following, reference is made to Figures 1 and 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.When a communication session is to start, the key generators on both sides must be synchronized, i.e. they will generate the same keys. 10 15 20 25 30 35 5-26 070 17 To achieve this, the SKG interface of the SKG manager performs some useful API calls. To ensure a secure synchronization of the two key generators, the synchronization method is performed according to the invention.

Varje nod A och B (Fig. 1) har en nyckelgeneratoridentifierare (SID) som speciellt dediceras för kommunikation med andra noder.Each node A and B (Fig. 1) has a key generator identifier (SID) which is specially dedicated for communication with other nodes.

Antaga att nod A bestämmer att initiera synkroniseringen.Assume that node A decides to initiate the synchronization.

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.Step 1: initialization from node A (Fig. 8) The application at node A must know the identity of the key generator (SID), which it uses for communication with node B. This can be stored in the device register or any other local database. When node A knows which key generator identifier (SID) to use, it generates a unique signature (S-signature) by calling the GetSSig () function. Data is now ready to be transferred over the application protocol used. Node A sends the SID and S-signature (which includes the increment counter) to node 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.Step 2: Verification in node B The application at node B receives the SID and the S-signature generated in node A. From node B's point of view, the key generator identifier (SID) from node A is SID-B. Node B needs to find its own key generator (SID-A) initiated with SID-B and calls the (API) function GetSidAFromSidB (). All known modules and devices must be examined until a matching SID-A is found. An alternative way is to call a FindRemotSID function in the SKGM interface. A good design rule is to "cache" the result of this operation because the returned SID-A will be used as a reference for all API calls during the session. Node B now calls the function VerSSig () with the S-signature obtained from node A. If GetSidAFromSidB () or VerSSig () fails, the synchronization should be interrupted and node B returns to its original state. It is up to the application if node A should be notified that no synchronization is possible. After a successful call to VerSSig (), node B knows the correct increment counter value and the key generator is synchronized. However, node A does not know which key to use for this session and node B does not know if A is synchronized. Node B calls GetSSig () and sends these known key generator identifiers (SIDs) together with the result to node A. 10 15 20 25 30 35 526 070 18 FindRemoteSid searches the local units for a key generator connected to a specified remote SID, also called Sidß in some functions. The local SID of the key generator and the device on which it is located will be returned if found.

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().Step 3: verification in node A The application at node A receives the SID and the S-signature generated in node B. By calling the function VerSSig (), node A synchronizes its key generator if the verification is successful. Node A now knows that both A and B are synchronized. It is safe to generate the next session key by calling the function, 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.Node A must now prove to Node B that it is synchronized. Node A calls GetRSig () and sends the result to node B. It is also possible for the application at node A to start using the session key and send encrypted 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.Step 4: complete the synchronization in node B The application at node B receives the R-signature and forwards it to the function VerRSig (). This function verifies for node B that node A is synchronized and that node A has produced the correct next key. Node B knows that it should retrieve the next key from the key generator and use it as the next session key. Node B calls the GetNextKey () function and starts using the session key for encryption.

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.Fig. 9 shows an advantageous embodiment using the invention, which relates to a system for secure encrypted transmission / authentication control between two units via a secure communication channel. The communication channel can be any channel through which data can be transmitted and in particular the channel could be stationary as well as wireless. Each such unit includes a key generator unit 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.The key generator units comprise a memory 910 in which identical output values SID, so-called seeds, have preferably been stored in a dynamic / fixed and exchangeable manner. The storage of output values is advantageously performed in connection with the initial initialization of the units and it can advantageously be performed via a secure channel. The output values may not need to be physically transferred but the users of the intended devices can specify them as a predetermined value. In addition, the output values can be exchanged if necessary, but alternatively the same output values are used during the entire life cycle of the key generator unit. In this case, the output values do not need to be stored in a dynamic memory but permanent memories can be used instead.

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.In addition, the key generator units comprise a counter X which represents the number of keys generated. Assuming that the same output values are stored in the memory 910 and that the counters are synchronized to deliver the same counter value, identical keys can be generated in several key generator units independently of each other.

Dessa nycklar kan sedan användas för krypterings- eller autenticitetskontrollsändamål mellan enheterna.These keys can then be used for encryption or authentication purposes between the devices.

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.Furthermore, the key generator units are advantageously adapted to detect whether they are synchronized or not and in this case they are not, to implement this synchronization. Sensing can be performed by means of a special synchronization test which is performed before the key generation.

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.Alternatively, in addition, a need for synchronization can be identified when different keys are used and only then can synchronization be restarted. Synchronization can take place e.g. by exchanging counter values between the units.

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.The calculation unit comprises a calculation algorithm F, which hashs the output value (seed), present key and counter value as input parameters. Then the counter value is increased by a number, i.e. "count = count + 1". This calculation algorithm is advantageously implemented in the hardware of the calculation unit or alternatively it is stored in a non-dynamic and immutable memory. The calculation algorithm advantageously generates a 160-bit key, but keys of other lengths are of course also conceivable. Each time an order is given to the key generator to produce a new key, a new pseudo-random 160 bit word is generated, which is generated based on the "seed" and the counter value.

Nyckelgeneratorenheten 900 innefattar vidare en gränssnittsdel 912 som möjliggör kommunikation mellan kommunikationsenheten och nyckelgeneratorenheten.The key generator unit 900 further comprises an interface part 912 which enables communication between the communication unit and the key generator unit.

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.Preferably, this communication consists of sending instructions to the key generator unit to generate a key and the transmission of a key thus generated back to the communication unit.

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.Advantageously, the key generator unit is implemented in hardware and is designed in the form of an integrated circuit, which makes it more difficult to manipulate. This circuit can be added and used together with mainly all types of communication devices.

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.It is e.g. It is possible to use the key generator unit in accordance with the invention together with rechargeable cards, so-called smart cards, in laptops or desktops, in mobile telephones, electronic calendars and similar electronic equipment that can communicate.

Emellertid är det likaledes möjligt att implementera nyckelgeneratorenheten i mjukvara, t.ex. i en konventionell dator, och använda existerande minne och liknande.However, it is also possible to implement the key generator unit in software, e.g. in a conventional computer, and use existing memory and the like.

Detta alternativ är speciellt fördelaktigt för implementering i stationära enheter och speciellt i enheter som används som centralenheter.This option is particularly advantageous for implementation in stationary units and especially in units used as central units.

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.The key generator unit according to the invention can be used for either point-to-point communication or authentication, i.e. between two devices, or between a central device, a server, or multiple users, clients. Such a central unit comprises a number of different key generator units, one for each client in communication with the central unit. Alternatively, a key unit may consist of olika your different output values, in which case the command to the key generator unit to generate a key also includes information regarding which initial value is to be used. It is thus possible for enheter your units to communicate with the central unit to have identical key generator units, which allows them to communicate with the same key generator unit in the central unit.

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.In this case, a central unit arranged to communicate with your units preferably comprises means for implementing the key generator unit in software while the client has means implemented in hardware. The client can e.g. have smart cards or mobile phones, computers and the like. Thus, the system according to the invention can be used between a bank and its customers, between companies and these employees, between companies and these subsidiaries, and so on. Furthermore, the system can be used to control access to websites via the Internet or the like, e.g. by connecting its smart card to a reader intended for this purpose and in this way it becomes possible to also control access to electronic equipment that communicates wirelessly, e.g. via Bluetooth or WLAN. Devices that are not central units can also include several origin values in the same key generator unit or in a separate unit for communicating via several separate channels. In this way, the unit can be used for communication with several different central units. A smart card can e.g. be used for communication with olika your various banks or other facilities.

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.In the following, an encrypted transmission or authentication check using the system in Fig. 9 will be described. In a first step, units intended for incoming intercommunication are initiated, during which process they are provided with identical output values and are preferably synchronized. The system is now ready for use and at a later time which may occur after the end of an arbitrary period of time after initialization, the units are interconnected via a secure communication channel and at least one of the units identifies itself to the other. In the next step, the second unit determines whether the given identity is known and whether it has an associated key generator unit, i.e. a key generator circuit previously described and having an associated output value. If so, the process continues to the next step, otherwise the process is interrupted.

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.The units will then agree to execute encrypted transmission and / or authentication with which each calculates keys separately in the respective key generator unit. Before this happens, a synchronization test may have been performed to check whether the counters in each respective key generator unit are synchronized. If this is the case, the process proceeds directly to the next step, otherwise a synchronization step described in connection with the previous embodiments (Figs. 3 and 8) is executed first to reset the synchronization between the units.

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.The calculated keys are then used to execute encrypted transmission and / or authentication. However, it should be understood that encrypted transmission and authentication can of course be performed simultaneously and in the same process. Encryption and authentication can be performed using essentially any encryption algorithm that uses keys, such as the known DES, RC6 and so on.

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.The invention can be used for authentication, i.e. verify that the device with which you are communicating is the one it claims to be, as well as for key generation for encrypted transmission. However, the devices used in connection with the present invention, such as smart cards, telephones and the like, may advantageously be provided with means provided to ensure that the device user is correct.

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.I.e. authentication between the user and the communication device. Such authentication can be performed by entering a code, identifying fingerprints and the like.

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.Several types of systems and methods described above are possible. For example. depends on the method and system of encryption or generated keys and thus it can be used in conjunction with most known similar methods. In addition, the key generator unit is advantageously implemented in the hardware, which makes the key generation process completely hidden from the user. However, it is possible to implement the key generator unit in software in a standard computer or processor unit. In addition, the devices in the system can be essentially any communicative electronic device. The counters used to generate counter values for the key generator units can also be of any type provided they generate counter values that vary with time. It is also possible to omit the counters in one or more units and in this case the synchronization step is replaced by a step of exchanging counter values between the units, i.e. synchronize counter values before each key generation operation. Such and other obvious variants must be considered to fall within the scope of the invention as the latter is defined in the appended claims.

Uppfinningen är inte begränsad till de beskrivna och visade utföringsformerna.The invention is not limited to the described and shown embodiments.

Uppfinningen kan modifieras inom omfattningen av de bifogade kraven på många olika sätt beroende på applikationerna/kraven och önskemål.The invention can be modified within the scope of the appended claims in many different ways depending on the applications / requirements and desires.

Claims (9)

1. 5 10 15 20 25 30 35 526 070 23 PATENTKRAV1. 5 10 15 20 25 30 35 526 070 23 PATENT REQUIREMENTS 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). .A method of synchronizing a communication session for encrypted transmission and / or authentication via a communication channel between at least two communicating units, a first unit and a second unit (A, B), each unit comprising a session counter (X, Y ), which method comprises a hand-shaking procedure whereby synchronization of the session counters is obtained by successively communicated signatures (S, R) between said communicating units (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. .The method of claim 1, wherein identical and synchronous keys are generated in physically separated locations without providing information about the keys online or stand-alone. . 4. Metod enligt krav 1 eller 2, vari varje enhet initieras med ett gemensamt frö och en nyckel (Ko) för synkronisering.A method according to claim 1 or 2, wherein each unit is initiated with a common seed and a key (Ko) for synchronization. 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. .The method of claim 3, wherein said common key is used only in an initial step and can be replaced at any time. . 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.The method of claim 1, comprising the steps of: a. First unit (A) initiating the communication by sending a data set comprising said first unit identity (A '), a current session counter (X) and a first signature (S) to said second device (B), b. the second device (B) receives data, verifies said signature to perform the synchronization, d. the second device (B) retrieves said first signature (S) and sends its identity (B '), a second session counter (Y) and said first signature, e. the first unit (A) verifies the first signature from the second unit (B), f. the first unit (A) performs a synchronization, g. the first unit (A) receives a new encryption key, if both devices are synchronized, h. the first device (A) generates a new signature (R) and provides it to the second device (B), i. the second device (B) verifies said second signature (R), and 10 15 20 25 30 35 10. 11. 12. 13 14. 15. 24 j. The second unit (B) genere a new key in the event of a positive verification of said second signature. 7. Metod enligt krav 5, vari nämnda första enhet (A) krypterar data och sänder data efter steg h.The method of claim 5, wherein said first unit (A) encrypts data and transmits data after step 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 1A method according to claim 5, wherein said second unit (B) decodes data obtained from the first unit (A) after step j. A method according to any one of the preceding claims, wherein the signatures are generated as a HASH value of any size. Method according to claim 8, wherein said signatures are generated using one or more of the algorithms SHA-1, SHA-256 MDS etc. Method according to any one of the preceding claims, wherein a key is never reused by agreeing which unit (A or B ) which has the key with the highest index and use this key as a basis for calculating the next session key. A communication network comprising at least two communicating units (A, B) communicating via a communication channel, each unit comprising means for synchronizing a communication session for encrypted transmission and / or authentication between the at least two communicating units, a first unit and a second unit, characterized therefrom that each unit comprises means for a handshake procedure whereby a signature and a synchronization procedure are performed by successively communicated signatures between said communicating units. The network of claim 11, wherein said means comprises a non-manipulative area (410), an application code memory (420), a processor unit (430) and a session key storage memory. The network of claim 12, wherein said means comprises a smart card (400), software application, a USB key (570), Bluetooth device (580), radio device (S80), WLAN or a biometric device (580). The network of claim 13, wherein said software application comprises an encrypted data set comprising a key engine and 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.The network of claim 11, wherein said means handles more than one key generator, each functioning as a separate communication channel. An arrangement (600) for handling a synchronous key generator (SKG), which arrangement can be used as a common access point for several synchronous key generators installed in a system for synchronizing a communication session for encrypted transmission and / or authentication between at least two communicating units (A , B), a first unit and a second unit, each comprising a session counter (X, Y), said arrangement comprising at least one communication interface (610a-610c) with a certain type of SKG unit (620a-620f), each unit comprising means for initiating a handshake procedure whereby synchronization of the session counters is obtained by successively communicating signatures between said communicating units. An arrangement according to claim 16, wherein an application uses said arrangement by loading a driver. An arrangement according to claim 16, wherein the handling arrangement handles a number of modules, which represent different types of units. The arrangement of claim 16, wherein each SKG unit (620a-620f) comprises a key generator. An arrangement according to claim 16, wherein a device is one of a smart card, a USB key (570), an fi l on a disk or a database table or other memory-based devices. Arrangement according to claim 20, wherein a unit comprises different interfaces: an access interface (710), comprising functions for formatting, input logging, locking of unit, a SKG interface (720) containing functions that handle key generators such as allocation, initiation, generation and synchronization, a registration interface (730) implementing a register used for applications to securely store and retrieve configuration and other types of persistent data in the SKG unit, and 10 15 20 25 30 35 22. 23. 24. 25. 26. 526 A crypto interface (740) providing the functionality for using generated keys in encrypting and decrypting data blocks and also generating cryptographically secure random numbers. Arrangement according to claim 21, wherein a SKG unit supports access interface and SKG interface. A method of synchronizing a communication session for encrypted transmission and / or authentication using an arrangement according to any one of claims 16-22, comprising: a first main step of initialization at the first unit (A), a second main step of verification at said second unit (B), a third main step of verifying at said first unit (A), and a fourth main step of completing synchronization at said second unit (B) - Method according to claim 23, wherein said first step further comprises: defining a first key generator identity (SID) through the first device (A). generating with the first unit (A) a first signature (S), transmitting with the first unit said key generator identity and said first signature (S) to the second unit (B). The method of claim 23, wherein said key generator identity is stored in a unit register or a local database. The method of claim 23, wherein said second main step further comprises: a. Receiving said key generator identity and first signature (S) at the second unit (B), b. Finding a key generator (SID-A) initiated by the second unit (B) of the first key generator identity (SID-B), verify said first signature, d. if the verification fails to interrupt the synchronization and return to its original position, e. if the verification succeeds, synchronize the key generator at the second unit, 10 15 20 25 30 35 27. 28. 29. 30. 31. 32. 33. 526 070 27 f. Generate a first signature at the second unit (B) and send it together with a second key generator identifier (SID) to said first unit (A). The method of claim 26, wherein in step b, all known modules and units are examined by the other unit until a matching key generator identity (SID-A) is found. A method according to claim 26, wherein in step b a function is called to find an identity in a SKG handler interface and a result is cached and used as a reference to all further calls during the session. The method of claim 28, further comprising searching for local units for a key generator coupled to a specific remote identity (SID-B). The method of claim 23, wherein said third step further comprises: a. Receiving the SID at the first unit and the second signature generated in the second unit (B), b. Verifying and synchronizing at the first unit its key generator if the verification is successful, generating of a next session key at the first unit, generating a second signature (R) at the first unit, and e. sending the result to said second unit (B). The method of claim 30, wherein in step e, said first unit (A) starts using the session key and sends encrypted data. The method of claim 23, wherein said fourth main step further comprises: - receiving with the second unit said second signature (R), - verifying said second signature, - retrieving a next key from said key generator and using it as a session key, and - using the session key for encryption. A method for synchronizing communication session for encrypted transmission and / or authentication between at least two devices via an insecure communication channel, comprising the steps of: - in an initialization procedure obtaining a common initial value for use in the respective device, 10 15 20 25 30 35 34. 35 . other devices, and increase the session counter by one number, - thus use generated keys in the next encrypted transmission and / or authentication. A method according to claim 32, wherein the initial value is stored in a dynamic and interchangeable manner in at least one of the units and preferably in all the units. A method according to claim 32 or 33, wherein the counter value is generated in a counter in each unit, wherein synchronization of the counter value comprises synchronization of the counters. The method of claim 32, wherein the following initialization synchronization of the counters executes the units additional synchronization steps only when needed. A computer program for synchronizing a communication session for encrypted transmission and / or authentication via a communication channel between at least two communicating units, a first unit and a second unit (A, B), each unit comprising a session counter (X, Y), which computer program comprises a set of instructions for a handshake procedure, a set of instructions for synchronizing the session counters obtained by successively communicated signatures between said communicating units. A memory for use in a system for synchronizing a communication session for encrypted transmission and / or authentication control via a communication channel between at least two communicating units, a first unit and a second unit, each unit comprising a session counter (X, Y), which memory comprises a data structure for a handshake procedure, a data structure for synchronizing the session counters obtained by successively communicated signatures between said communicating units. A computer program readable medium stored therein is an Application Program Interface (API) for synchronizing a communication session for encrypted transmission and / or authentication via a communication channel between at least two communicating units, a first unit and a second unit, each unit comprising a session counter (X, Y), the medium comprising a set of instructions for a handshake procedure, a set of instructions for synchronizing the session counters obtained by successively communicated signatures (S, R) between said communicating units (A, Y). B). A method of a network unit for synchronizing a communication session for encrypted transmission and / or authentication via a communication channel with a second unit each unit comprising a session counter (X, Y), which method comprises a handshake procedure for synchronizing the session counters obtained by successively communicated signatures said communicating units. The method of claim 40, further comprising the steps of: - the first unit (A) initiates the communication by sending a data set including the identity of the first unit (A '), a current session counter (X) and a first (S) signature to said second unit (B), - receive data at the second unit (B), - verify said signature to perform the synchronization, - retrieve said first signature (S) at the second unit (B) and send its identity (B '), a second session counter (Y) and said first signature, - verify the first signature from the second unit (B) at the first unit (A), - perform a synchronization by means of the first unit (A), - obtain a new key for encryption by means of the first unit (A), if both units are synchronized, - generate a new signature (R) by means of the first unit and provide it to the second unit (B), - verify by means of the second unit (B) said second signature (R), and - generate a new key by the second device upon a positive verification of said second signature.
SE0302524A 2003-09-22 2003-09-22 Synchronizing method of communication session between e.g. enterprise and employees, involves performing handshake procedure to synchronize session counters of communication units by successively communicated signatures SE526070C2 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
SE0302524A SE526070C2 (en) 2003-09-22 2003-09-22 Synchronizing method of communication session between e.g. enterprise and employees, involves performing handshake procedure to synchronize session counters of communication units by successively communicated signatures
EP04775468A EP1673898A1 (en) 2003-09-22 2004-09-22 Data communication security arrangement and method
JP2006527945A JP2007506392A (en) 2003-09-22 2004-09-22 Data communication security mechanisms and methods
CNA2004800344278A CN1883156A (en) 2003-09-22 2004-09-22 Data communication security device and method
PCT/SE2004/001367 WO2005029763A1 (en) 2003-09-22 2004-09-22 Data communication security arrangement and method
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 (en) 2003-09-22 2003-09-22 Synchronizing method of communication session between e.g. enterprise and employees, involves performing handshake procedure to synchronize session counters of communication units by successively communicated signatures

Publications (3)

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

Family

ID=29212520

Family Applications (1)

Application Number Title Priority Date Filing Date
SE0302524A SE526070C2 (en) 2003-09-22 2003-09-22 Synchronizing method of communication session between e.g. enterprise and employees, involves performing handshake procedure to synchronize session counters of communication units by successively communicated signatures

Country Status (2)

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

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101257304B (en) * 2008-04-03 2011-11-09 北京大学 Method for tuning gross adjustment loop circuit of double-loop circuit frequency synthesizer
CN101626373B (en) * 2008-07-11 2012-06-06 华为技术有限公司 Method, device and system for message processing of ultra wide band system
CN101420306B (en) * 2008-12-12 2010-12-08 肖佐楠 Automobile mounted automatic diagnosis method based on RSA ciphering and signature algorithm
WO2014147934A1 (en) * 2013-03-21 2014-09-25 パナソニック株式会社 Communication device, communication system and communication method
US9763086B2 (en) * 2013-08-27 2017-09-12 Qualcomm Incorporated Owner access point to control the unlocking of an entry
CN105721395B (en) * 2014-12-03 2019-03-01 华为数字技术(苏州)有限公司 Data synchronous configuration method, equipment and system
FR3046000B1 (en) * 2015-12-21 2018-02-16 Oberthur Technologies METHOD FOR RECEIVING DATA WITHIN AN ELECTRONIC ENTITY AND ELECTRONIC ENTITY THEREFOR
CN108600231B (en) * 2018-04-27 2020-10-27 广东复安科技发展有限公司 Network security transmission method based on synchronization technology
CN110768691B (en) * 2019-09-30 2022-03-04 星微科技(天津)有限公司 Intelligent waist-worn terminal for hearing-impaired people and implementation method
CN113315632B (en) * 2021-07-29 2021-11-02 北京紫光青藤微系统有限公司 Method, system, device and communication equipment for determining key generator

Also Published As

Publication number Publication date
SE0302524L (en) 2005-03-23
SE0302524D0 (en) 2003-09-22
CN1883156A (en) 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 (en) TrustZone-based file encryption and decryption method and device and terminal equipment
US11025415B2 (en) Cryptographic operation method, method for creating working key, cryptographic service platform, and cryptographic service device
CN107078899B (en) Method of obfuscating data
CN107689869A (en) The method and server of user password management
EP2743842A1 (en) Secure search processing system and secure search processing method
CN101815091A (en) Cipher providing equipment, cipher authentication system and cipher authentication method
US11784815B2 (en) Method of time-delay encryption with keyword search and system using the same
CN109347839A (en) Centralized password management method and centralized password management, device, electronic equipment and computer storage medium
CN112073192B (en) Data processing method and device and cipher machine
GB2574458A (en) Methods and Systems For Secure Data Transmission
SE526070C2 (en) Synchronizing method of communication session between e.g. enterprise and employees, involves performing handshake procedure to synchronize session counters of communication units by successively communicated signatures
CN117561508A (en) Cross-session issuance of verifiable credentials
CN111008400A (en) Data processing method, device and system
JP2006189925A (en) Private information management system, private information management program, and private information protection method
US10050943B2 (en) Widely distributed parameterization
US11133926B2 (en) Attribute-based key management system
CN117118598A (en) Data sharing method, electronic equipment and computer cluster
CN115766064A (en) Password application method, device, equipment and storage medium
US11502840B2 (en) Password management system and method
CN113642009A (en) Block chain based printing method and device, computer equipment and storage medium

Legal Events

Date Code Title Description
NUG Patent has lapsed