EP4179694A1 - Bereitsteller- und empfänger-kryptosysteme mit kombinierten algorithmen - Google Patents

Bereitsteller- und empfänger-kryptosysteme mit kombinierten algorithmen

Info

Publication number
EP4179694A1
EP4179694A1 EP21742801.0A EP21742801A EP4179694A1 EP 4179694 A1 EP4179694 A1 EP 4179694A1 EP 21742801 A EP21742801 A EP 21742801A EP 4179694 A1 EP4179694 A1 EP 4179694A1
Authority
EP
European Patent Office
Prior art keywords
cryptographic
data
algorithms
algorithm
cryptosystem
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
EP21742801.0A
Other languages
English (en)
French (fr)
Inventor
Klaus-Dieter Wirth
Frank Byszio-Wegener
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bundesdruckerei GmbH
Original Assignee
Bundesdruckerei GmbH
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 Bundesdruckerei GmbH filed Critical Bundesdruckerei GmbH
Publication of EP4179694A1 publication Critical patent/EP4179694A1/de
Pending legal-status Critical Current

Links

Classifications

    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • H04L9/16Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Definitions

  • the invention relates to a method and system for data exchange between two cryptographic systems using an asymmetric cryptographic algorithm.
  • Asymmetric cryptographic algorithms also referred to as asymmetric cryptographic methods, consist of two functionally complementary cryptographic algorithms that are to be executed by the respective participants in the method, such as encryption and decryption, signing and signature verification. tion and key agreement procedures. The types of procedures mentioned are indispensable for security-related IT applications. At the moment there are only a few asymmetric cryptographic methods in practical use. This is probably at least partly due to the fact that asymmetric cryptographic methods often have several participants who are organisationally independent. All participants must support a specific asymmetric cryptographic method (e.g.
  • a problem with this approach is the need to rewrite the software used to perform the cryptographic operations, because the additional cryptographic data is no longer contained in the fields in which the participants previously expected this data according to established cryptographic standards.
  • the approach is limited to X.509 certificates and requires the definition of certificate verifications for these certificates.
  • the invention is based on the object of creating an improved method and system for data exchange between a provider cryptosystem and a recipient cryptosystem.
  • the objects on which the invention is based are each achieved with the features of the independent patent claims.
  • Embodiments of the invention are given in the dependent claims. the The embodiments listed below can be freely combined with one another, provided they are not mutually exclusive.
  • the invention relates to a method for data exchange between a provider cryptosystem and a recipient cryptosystem.
  • the procedure includes:
  • the input data can be, for example, a data value, a data set, a key, a part of a key, a message, a part of the message or one derived from the data value, the data set, the key, the message or a part of the message value (e.g. a flash value of the message).
  • the result data can be, for example, a reconstructed copy of at least parts of the input data, the result of a signature check, a jointly agreed or random key, or the like.
  • the provision of the combined cryptographic data can, for example, take place directly via an interface between the two cryptosystems, for example by the provider cryptosystem sending a message with the combined generated cryptographic data and transmitted it to the recipient cryptosystem, for example via a network, for example the Internet.
  • the provider cryptosystem may provide the composite cryptographic data indirectly, e.g., by storing the composite cryptographic data in a storage medium readable by the recipient cryptosystem.
  • the data can be stored in a database, e.g. an archive.
  • the recipient cryptosystem then reads the composite cryptographic data from the database.
  • the provider cryptosystem and the receiver cryptosystem are different cryptosystems.
  • the provider cryptosystem and the recipient cryptosystem can be identical.
  • the provider cryptosystem can first generate the composite cryptographic data by encrypting input data and store it in a database. At a later point in time, possibly years later, the same cryptosystem reads this data again in its function as recipient cryptosystem and has to decrypt the data again.
  • embodiments of the invention may be used to make RSA cryptosystems quantum computer secure.
  • RSA is an asymmetric cryptographic method that can be used by RSA cryptosystems for both encryption and digital signing. It uses a key pair consisting of a private key, which is used to decrypt or sign data, and a public key, which is used to encrypt or verify signatures. The private key is kept secret and cannot be calculated from the public key.
  • the security of the RSA method is essentially based on the difficulty of factoring large numbers. This security is called into question by the advent of quantum computers, so that embodiments of the invention can be used to use RSA algorithms as the first and/or second cryptographic algorithms together with other quantum computer-safe algorithms to generate or create composite cryptographic signatures process.
  • embodiments of the invention can also be used to calculate algorithms such as DSA and DH, whose security is based on the difficulty of finding the discrete logarithm, and the algorithms ECDSA and ECDH, whose security is based on the difficulty of finding the discrete logarithm on elliptic rule Curves consists of replacing with quantum computer-safe algorithms.
  • algorithms such as DSA and DH, whose security is based on the difficulty of finding the discrete logarithm
  • ECDSA and ECDH whose security is based on the difficulty of finding the discrete logarithm on elliptic rule Curves consists of replacing with quantum computer-safe algorithms.
  • the provider cryptosystem only provides the composed cryptographic data and preferably also an identifier of the second control algorithm and optionally parameters for the implementation of the second control algorithm.
  • additional data is also provided.
  • the composite cryptographic data may be a composite signature of a message.
  • the electronic document for which the signature was generated is preferably provided in addition to the composite signature.
  • Embodiments of the invention may have the advantage that both the provider cryptosystem and the recipient cryptosystem are highly flexible. Both on the provider cryptosystem and on the receiver cryptosystem, several algorithms, each functionally complementary, for example, which belong to different asymmetric cryptographic methods, can be implemented. These are now selected and/or combined according to the information in the first or second control algorithm in order to generate the composite cryptographic data.
  • the composite cryptographic data can thus contain the results of two or more different first cryptographic algorithms. This can mean, for example, that the composite cryptographic data contains multiple digital signatures that were generated for the same electronic document using different signature algorithms (first cryptographic algorithms).
  • the transmission of such a composite signature to the recipient system has the advantage that at least when the recipient system supports at least one signature verification algorithm that corresponds to a signature generation algorithm used to generate the composite signature, the recipient system may already be able to do so to verify the signature.
  • the composite cryptographic data can also be be a composite encrypted data set generated by encrypting input data using multiple cryptographic keys (in parallel or sequentially), or a communication key generated by combining multiple participant-specific key agreement algorithms. Since the combined cryptographic data transmitted is composed of the cryptographic output of two or more different first cryptographic algorithms, the information content of the transmitted data is higher than if only the output of a single cryptographic algorithm were transmitted. This allows the recipient cryptosystem to respond in a very flexible way.
  • the second control algorithm can be specified in such a way that several second cryptographic algorithms must be successfully applied to the composite cryptographic data obtained in order for a correct result or a confirmation of integrity to be obtained of the signed document is obtained.
  • the first control algorithm specifies a selection and/or sequence of first cryptographic algorithms that is functionally complementary to the selection and/or sequence of the second cryptographic algorithm(s) specified in the second control algorithm.
  • the provisioning cryptosystem can contain multiple encryption algorithms V1-V10.
  • the receiver cryptosystem can contain several decryption algorithms E1-E10, each of which is complementary to the corresponding encryption algorithm.
  • E1 can decrypt a ciphertext formed by V1
  • E2 can decrypt a ciphertext formed by V2, and so on be applied as follows:
  • V1 (input data) output1 ;
  • V2(Output1 ) Output2;
  • the individual encryption algorithms can also be used in parallel, so that the combined cryptographic data can be formed, for example, as a concatenation of the individual ciphertext.
  • the second control algorithm could identify one or more decryption keys, which are then combined and applied to the corresponding ciphertext in such a way that the original input data or parts thereof are reconstructed.
  • the provider cryptosystem implements several first control algorithms.
  • the recipient cryptosystem implements a number of second control algorithms.
  • a large number of first and/or second control algorithms can be advantageous, since this allows the provider and the recipient cryptosystem to agree in a very flexible manner which cryptographic algorithms are to be used in which sequence in order to ensure data exchange in to be carried out in the desired manner.
  • Such changes may be necessary for various reasons. For example, it may turn out that a certain cryptographic algorithm is no longer secure enough or is technically problematic for other reasons. In this case it is possible to change only one algorithm identifier of the first cryptographic algorithms used in the creation of the combined cryptographic data within the first control algorithm.
  • the first and/or second control algorithms are in the form of editable instructions, such as a script file, rule, or configuration file. It is also possible Leaned that the first control algorithm to generate the composite cryptographic data uses a larger number of first cryptographic algorithms than the second control algorithm to process this data. This can have the advantage that several different first cryptographic algorithms of the same type of procedure (eg For example, several different signing algorithms or several different encryption algorithms or several different provider-side key agreement algorithms) are used to generate the composite cryptographic data. At least if the different first algorithms are used in parallel, it may be sufficient for the second control algorithm to use a single one second cryptographic algorithm is specified, which is able to correctly process at least part of the composite cryptographic data.
  • At least one of the first cryptographic algorithms is an encryption, signing, or key agreement algorithm.
  • At least one of the one or more second cryptographic algorithms is an algorithm complementary to the at least one first cryptographic algorithm for decryption, signature verification and key agreement
  • each of the first cryptographic algorithms is assigned an algorithm identifier (also “algorithm identifier”).
  • the provider cryptosystem is designed to provide the assembled cryptographic data together with parameters for the execution of the second control algorithm.
  • the parameters for the execution of the second control algorithm comprise algorithm identifiers of the second cryptographic algorithms to be used by the second control algorithm for processing the combined cryptographic data.
  • the algorithm identifiers of the second cryptographic algorithms can be identical to the algorithm identifiers of the first cryptographic algorithms used to generate the composite cryptographic data.
  • the algorithm identifier of the "RSA" method can be used both by the first control algorithm to identify a first cryptographic algorithm that implements the provider-side steps of the RSA method and by the second control algorithm to identify a second cryptographic algorithm identify who implements the receiver-side steps of the RSA method.
  • the parameters for the execution of the second control algorithm include one or more parameters which control the individual second cryptographic algorithms and are transferred, for example, as arguments to these second cryptographic algorithms.
  • These parameters are also referred to below as "component parameters”.
  • the component parameters can be identical or different. be different from the component parameters used by the corresponding first cryptographic algorithms.
  • the parameters for the execution of the second control algorithm also include input parameters for the second control algorithm, which are used by it directly, ie do not serve as input parameters of individual second cryptographic algorithms. These parameters, which directly control the execution of the second control algorithm, are referred to below as control parameters.
  • the control parameters can, for example, specify the minimum number of second cryptographic algorithms that must be successfully executed for the result obtained to be considered valid.
  • the second control algorithm is designed to select the second cryptographic algorithm or algorithms used for the calculation of the result data using an algorithm identifier contained in the parameters.
  • the algorithm identifier of the first and second cryptographic algorithms which are functionally complementary to one another, is identical and designates an asymmetric cryptographic method of which the first cryptographic algorithm implements the provider-side steps and of which the second cryptographic algorithm implements the receiver-side steps.
  • the algorithm identifiers of the first and second cryptographic algorithms are each selected from a group comprising:
  • an algorithm identifier of a key agreement algorithm between a first and a second subscriber system wherein the first cryptographic algorithm identified by the algorithm identifier implements the steps performed by the first subscriber system for key agreement and wherein the functionally complementary second cryptographic algorithm implements the steps performed by the second subscriber system for key agreement implemented;
  • An algorithm identifier of an asymmetric cryptographic algorithm for encrypted transmission from a first subscriber system to a second subscriber system the first cryptographic algorithm identified by the algorithm identifier implementing the steps carried out by the first subscriber system for encrypting data in a ciphertext and the functionally complementary second cryptographic algorithm implements the steps performed by the second subscriber system for decrypting the ciphertext;
  • an algorithm identifier of an asymmetric cryptographic algorithm for creating a digital signature by a first subscriber system and for checking this signature by a second subscriber system the first cryptographic algorithm identified by the algorithm identifier implementing the steps performed by the first subscriber system for generating the signature and wherein the functional complementary second cryptographic algorithm implemented by the second subscriber system steps to check the signature.
  • Embodiments of the invention can thus support a large number of different cryptosystems and their conversion to other, possibly more secure, cryptographic algorithms.
  • the first control algorithm specifies that the plurality of first cryptographic algorithms are sequentially applied to the output of the previously executed first cryptographic algorithm.
  • the first control algorithm may specify that the plurality of first cryptographic algorithms are applied to the input data or portions of the input data in parallel.
  • the provider cryptosystem may include a plurality of first control algorithms, some of which provide for parallel execution and others of which provide for sequential execution of a plurality of first cryptographic algorithms.
  • the second control algorithm specifies that the plurality of second cryptographic algorithms are applied sequentially to the output of the previously executed second cryptographic algorithm, or that the plurality of second cryptographic algorithms are applied in parallel to the composite cryptographic data or parts of the composite cryptographic data .
  • a sequential execution of algorithms can be advantageous in application scenarios where a particularly high level of security is required. Because both the provider side and the receiver side must support and execute several cryptographic algorithms at the same time in order to transform input data correctly into the composite cryptographic data or to reconstruct or verify this input data using the composite cryptographic data. Running algorithms in parallel can be advantageous in application scenarios where compatibility with a large number of heterogeneous receiver systems that may support different algorithms of the same type is to be established. Because when the first cryptographic algorithms are used in parallel, the composite cryptographic data preferably includes partial data that can be processed individually by a corresponding cryptographic algorithm, regardless of whether the receiver system supports all second cryptographic algorithms that are required to process all of these partial data would be required. This can have the advantage of providing a particularly flexible, adaptable data exchange method for cryptosystems for the most varied of applications and security requirements.
  • the second control algorithm is a complementary algorithm to the first control algorithm that specifies that the plurality of second cryptographic algorithms are to be applied in a functionally complementary sequential or parallel manner to the composite cryptographic data and/or the output of the respectively previously applied second algorithm , as specified in the first control algorithm.
  • the first control algorithm can provide for a sequential application of the first encryption algorithms V1, V2 and V3 and the second control algorithm must provide for a sequential application of the corresponding decryption algorithms E3, E2 and E1.
  • At least the first control algorithm contains Boolean operators and/or arithmetic operators which connect several of the first cryptographic algorithms with one another, the operators specifying how the cryptographic data output by the individual first cryptographic algorithms is to be processed combine to obtain the composite cryptographic data.
  • the second control algorithm contains Boolean operators and/or arithmetic operators, which connect several of the second cryptographic algorithms with one another in such a way that their combined application to the transmitted composite cryptographic data and/or to an output of a previously executed second cryptographic Algorithm leads to a functionally complementary data processing to the execution of the first cryptographic algorithms.
  • the first (or second) cryptographic algorithms may implement provider-side (or receiver-side) steps of different cryptographic key agreement keys.
  • the first (or second) control algorithm may contain instructions and arithmetic operators that specify how the keys generated by each first (or second) cryptographic algorithm can be combined into a 'final key'.
  • the combination can be done bit by bit using an XOR combination. It is also possible that a bit of a certain key (or several of the keys) is entangled (eg by multiplication or addition) by a factor (eg "3" or any other number) according to an arithmetic operator.
  • first and second control algorithms can be defined that must functionally correspond to each other and can be used, for example, in applications where knowledge of a specific control algorithm (and its exact operators and factors) is required to prove identity or authorization is used.
  • the first and/or second control algorithm have an identifier.
  • the first and have one to this functionally complementary second control algorithm a common identifier.
  • this identifier (and the corresponding functionality of the control algorithms) is designed as one of the following identifiers (whereby the provider cryptosystem and/or the recipient cryptosystem can contain several control algorithms that use different ones of the following mentioned identifiers and functions supported):
  • the SIGNATURE AND identifier identifies a first control algorithm of the provider cryptosystem.
  • This first control algorithm specifies that a signature is to be calculated in each case by means of one or more first cryptographic algorithms, each of which implements a signing algorithm.
  • the SIGNATURE AND identifier identifies a second control algorithm of the recipient cryptosystem, which specifies, by means of one or more second cryptographic algorithms, each of which implements a signature verification algorithm, to verify a signature that corresponds to this signature verification algorithm (i.e. is functionally complementary ) signing algorithm was created.
  • the second control algorithm specifies that the result data is calculated in such a way that it confirms the integrity and/or authenticity of the composed cryptographic data precisely when all of the signature checks carried out by the signature checking algorithms show that the checked signature is valid.
  • the SIGNATURE-OR identifier identifies a first control algorithm of the provider cryptosystem. This first control algorithm specifies that a signature is to be calculated in each case by means of one or more first cryptographic algorithms, each of which implements a signing algorithm.
  • the SIGNATURE-OR identifier identifies a second control algorithm of the recipient cryptosystem.
  • the second control algorithm specifies that one or more second cryptographic algorithms, each of which implements a signature verification algorithm, are used to verify a signature that was created using a signature verification algorithm that corresponds to the signature verification algorithm, at least until at least one of the signature verification algorithms comes to the conclusion that the signature is valid or until all signature verification algorithms of the recipient cryptosystem have been carried out.
  • the result data are calculated in such a way that they confirm the integrity and/or authenticity of the combined cryptographic data precisely when at least one of the signature verification algorithms has the result that the signature checked in each case is valid.
  • the SIGNATURE K out of N identifier identifies a first control algorithm of the provider cryptosystem.
  • This first control algorithm specifies that a signature is to be calculated in each case by means of one or more first cryptographic algorithms, each of which implements a signing algorithm.
  • the SIGNATURE K out of N identifier identifies a second control algorithm of the recipient cryptosystem.
  • the second control algorithm specifies, by means of K second cryptographic algorithms, each of which implements a signature verification algorithm, to verify a signature that was created using a corresponding signing algorithm, at least until at least K of the signature verification algorithms come to the conclusion that the respectively verified signature is valid or until all of the signature verification algorithms have been performed.
  • the result data are calculated in such a way that they confirm the integrity and/or authenticity of the assembled cryptographic data precisely when at least K of the signature verification algorithms result in the signature being verified being valid, with K being a number greater than 0, preferably greater 1 is K and N are integers greater than 0, with N being greater than or equal to K.
  • the "Signature K out of N” method is an example of how the parametric specifications of two functionally complementary first and second control algorithms can be different.
  • the parameter “K” has no function in the provider system.
  • it defines the minimum number of second cryptographic algorithms that must be successfully applied to the composed cryptographic data in order to be able to successfully complete the procedure (e.g. signature verification, key agreement, decryption, etc.).
  • the KEY AGREEMENT AGGREGATE identifier identifies a first control algorithm of the provider cryptosystem.
  • This first control algorithm specifies using one or more first cryptographic algorithms, each of which implements key agreement steps on the provider side according to a specific key agreement method, to calculate a cryptographic key in each case and to calculate a final key by aggregating all of these keys.
  • the aggregation may include the steps of: bringing all keys to a uniform length, e.g., by truncating some of the keys to a predefined length and/or padding some of the keys to the desired length with predefined values; bitwise aligning (matching) the keys of predefined length; and aggregating the bit information of the aligned keys bit by bit using an XOR function or another aggregation function.
  • the result is an end key of the desired length.
  • any other function that aggregates the bits of several keys at a specific position in a defined way can also be used.
  • the KEY AGREEMENT AGGREGATE identifier identifies a second control algorithm of the recipient cryptosystem.
  • the second control algorithm specifies, by means of one or more second cryptographic algorithms, the respective receiver-side steps of a key agreement method implement computing a cryptographic key at a time, and computing a final key by aggregating all of these keys.
  • the DATA ENCRYPTION ITERATIVE identifier identifies a first control algorithm of the provider cryptosystem.
  • the first control algorithm specifies that a ciphertext is to be calculated according to a specific encryption method using one or more first cryptographic algorithms, each of which implements an encryption algorithm.
  • the encryption algorithms are executed sequentially.
  • the first encryption algorithm executed uses the input data as input and all encryption algorithms executed subsequently use the ciphertext generated by the previously executed encryption algorithm as input.
  • the DATA ENCRYPTION ITERATIVE identifier identifies a second control algorithm of the receiver cryptosystem.
  • the second control algorithm specifies using one or more second cryptographic algorithms, each of which implements a decryption algorithm, to decrypt a ciphertext according to a specific decryption method in order to obtain decrypted data.
  • the decryption algorithms are executed sequentially.
  • the first decryption algorithm executed uses the ciphertext provided by the provider computer system as input and all subsequently executed decryption algorithms use the decrypted data generated by the previously executed decryption algorithm as input.
  • the decryption algorithm executed first (second cryptographic algorithm) are made available to the recipient cryptosystem.
  • the component parameters of the second cryptographic algorithms performed later are then only extracted step by step in the course of the sequential decryption, for example when the first control algorithm applies the individual encryption algorithms to the output of the previously executed encryption algorithm.
  • the algorithm identifiers and component parameters required by some algorithms of all second cryptographic algorithms to be executed can be seen directly from the parameters provided by the provider cryptosystem in addition to the combined cryptographic data, so that the recipient cryptosystem can determine all the second cryptographic algorithms before the start of execution whether it supports all of the second cryptographic algorithms defined in the parameters for the second control algorithm by means of the algorithm identifiers.
  • the DATA ENCRYPTION- PARALLEL identifier identifies a first control algorithm of the provider cryptosystem.
  • the first control algorithm specifies calculating a ciphertext using one or more first cryptographic algorithms, each of which implements an encryption algorithm, with each of the encryption algorithms using the input data or parts thereof as input.
  • the DATA ENCRYPTION- PARALLEL identifier identifies a second control algorithm of the recipient cryptosystem.
  • the second control algorithm specifies using a plurality of second cryptographic algorithms, each of which implements a decryption algorithm, to decrypt a ciphertext according to a specific decryption method in order to obtain decrypted data, with each of the decryption algorithms using the ciphertext provided by the provider computer system as a inputs used.
  • the parallel encryption of data using several encryption methods can make sense, particularly in the context of encrypted data archives, to ensure that even after years and decades, at least one decryption method that is then still widespread can be used to at least extract the partial data corresponding to this decryption method from the composite cryptographic to be able to decrypt the data set.
  • KEY CONTAINER The KEY-CONTAINER identifier identifies a first control algorithm of the provider cryptosystem. This first control algorithm specifies how an individual, composite key is formed using one or more first cryptographic algorithms, each of which describes a key.
  • This composite key can, for example, be a concatenate of individual keys, each of which is formed by one of the first cryptographic algorithms.
  • the individual cryptographic keys can have different functions, e.g. serve as an encryption key or signing key or decryption key or signature verification key.
  • the execution of a "KEY CONTAINER" control algorithm can thus be used to form a key concatenate, which serves as a container for several cryptographic keys of the same or different function.
  • the recipient cryptosystem can be provided with a large number of keys for a wide variety of purposes, so that the number of data exchange steps and the associated number of data exchanges via the network increases Amount of data transferred Reduced resource consumption for establishing a connection.
  • the KEY-CONTAINER identifier also identifies a second control algorithm of the recipient cryptosystem, which specifies how one or more cryptographic keys can be extracted from the composite cryptographic data and/or used via one or more second cryptographic algorithms.
  • the second cryptographic algorithms used by the second control algorithm each specify a method for extracting, reconstructing and/or using a cryptographic key from those parts of the composite cryptographic data that was created using a first cryptographic algorithm that corresponds to this second cryptographic algorithm.
  • the result data consist of the cryptographic keys extracted and/or reconstructed from the container or the combined cryptographic data.
  • the composite cryptographic data contains algorithm identifiers and optionally component parameters of at least some of the second cryptographic algorithms to be used for processing the composite cryptographic data.
  • the algorithm identifiers and component parameters can be part of the assembled cryptographic data, eg in some embodiments with iterative encryption the algorithm identifiers and component parameters provided by the previously executed encryption algorithm can also be encrypted in order to form a ciphertext.
  • the algorithm identifiers and optional component parameters are provided separately but together with the composite cryptographic data (and optional control parameters for the second control algorithm). This has the advantage that the recipient cryptosystem can very quickly determine by analyzing the separately provided algorithm identifiers whether it can perform the second control function with the second cryptographic algorithms identified by the algorithm identifiers at all, or whether individual second cryptographic algorithms, for example are not supported at all.
  • the composite cryptographic data can be provided, for example, in the same data structure together with the said parameters (algorithm identifiers of the second cryptographic algorithms to be used by the second control algorithm and optional component parameters of these second cryptographic algorithms and control parameters), the composite cryptographic data and the parameters eg are stored in different fields.
  • the algorithm identifier of the individual second cryptographic algorithms can, for example, be an identifier of the cryptographic method implemented by the respective first cryptographic algorithm, such as "RSA" or "DH” or the algorithm identifiers used according to established standards.
  • Embodiments can have the advantage that the provider cryptosystem can ensure a minimum level of security on the receiver side during data processing by specifying the selection of the second cryptographic algorithms by the first control function and storing them in the data structure. Precise knowledge of the recipient cryptosystem Supported cryptographic algorithms is not necessary, however, since a second control algorithm, which provides an OR or K-out-of-N operation, can also work if only a single or an arbitrarily composed selection K of the second cryptographic algorithms specified in the data structure provided is used supported by the receiving system.
  • the recipient cryptosystem could perform a first control function which is a SIGNATURE OR control function and which applies three different signing methods to input data to obtain the composite cryptographic signature, namely RSA, Tesla and Dilithium.
  • the data structure provided contains the "SIGNATURE-OR" identifier of the second control algorithm and the corresponding algorithm identifiers Tesla, Dilithium and RSA of the second signature verification method to be combined. This means that older, non-quantum-secure recipient cryptosystems can also check the composite signature, provided they support RSA. Receiver systems that have already completely switched to quantum-secure processes such as Tesla or Dilithium can also check the composite signature.
  • the method also includes an identification of each of the second cryptographic algorithms used for the calculation of the result data within a plurality of second cryptographic algorithms by the recipient cryptosystem before or during the calculation of the result data using the algorithm identifier, provided along with the composite cryptographic data.
  • Each of the identified second cryptographic algorithms implements receiver system-side steps of the same cryptographic method as a sem corresponding (functionally complementary) first cryptographic algorithm.
  • one of the first cryptographic methods is an RSA algorithm
  • an identifier identifying the RSA algorithm is provided as the algorithm identifier of that first cryptographic algorithm by the provider cryptosystem along with the composite cryptographic data.
  • the RSA algorithm identifier thus also automatically determines that the second cryptographic algorithm corresponding to it is RSA.
  • the identifier of the second control algorithm and optionally its control parameters are provided by the provider cryptosystem, but not algorithm identifiers and control parameters of the individual second cryptographic algorithms.
  • the identifier of the second control algorithm only determines the type of combination of the individual second algorithms (e.g. AND or OR variant, SEQUENTIAL or PARALLEL variant, K out of N variant, etc.), not the selection of the second algorithm.
  • the recipient cryptosystem can be configured, for example, in such a way that all second cryptographic algorithms supported by the recipient system are used and combined according to the second control algorithm.
  • the second control algorithm is provided as a template that is completed by the recipient cryptosystem in response to receipt of the composed cryptographic data and the associated parameters (algorithm identifiers of the second cryptographic algorithms and optionally also their component parameters and optional control parameters).
  • algorithm identifiers of the second cryptographic algorithms are not included in the template in this embodiment.
  • one of the first cryptographic methods used by the first control algorithm is an RSA algorithm rithmus
  • an algorithm identifier of the RSA algorithm is transmitted from the provider cryptosystem to the recipient cryptosystem along with the composite cryptographic data.
  • the RSA algorithm identifier is transferred to the template as an input parameter for the second control algorithm specified in the template, and the template and thus also the second control algorithm are completed.
  • the provider cryptosystem and the recipient cryptosystem do not have to have agreed in advance that the provider-side or recipient-system-side steps of the RSA method must be carried out when executing the first or functionally complementary second control algorithm. Rather, this information is defined dynamically and individually for the concretely transmitted composite cryptographic data by the parameters transmitted together with these and can therefore be dynamically and very flexibly for each of the recipients' System to be used second cryptographic algorithms are set.
  • the provider cryptosystem is designed to enable a user via a GUI to specify the first cryptographic algorithms used by the one or more of the first control algorithms, with the specification preferably being reversible, so that it can be changed during the operation of the provider -Kryptosystems can be changed at any time.
  • the method includes the receipt of configuration data from a user or an application program by the provider cryptosystem, eg via the GUI, the configuration data specifying several first cryptographic algorithms and, for example, algorithm identifiers and optionally also component parameters.
  • the first control function is created or modified such that the first cryptographic algorithms used by the first control algorithm are those identified in the configuration data.
  • the executed first cryptographic algorithms define the identity of the second cryptographic algorithms selected and/or combined by the second control algorithm (e.g. by means of the algorithms contained in the transferred parameters rithm identifiers, which can be supplemented by the optional component parameters).
  • the recipient cryptosystem is designed to select the second control algorithm based on an identifier provided together with the composite cryptographic data and the second cryptographic algorithms used by the second control algorithm based on the algorithm identifiers also provided.
  • provider cryptosystem can specify which second control algorithm must be executed with which second cryptographic algorithm in order to process the combined cryptographic data.
  • the provider cryptosystem can thus determine the security level of the receiver-side processing.
  • providing the composite cryptographic data includes storing the composite cryptographic data in a single first predefined field of a data structure agreed between the provider cryptosystem and the recipient cryptosystem.
  • the recipient cryptosystem is configured to read and parse the first predefined field of the data structure to obtain the composite cryptographic data.
  • this data structure can be transmitted directly to the recipient cryptosystem, e.g. via a network.
  • the data structure can also be stored in a volatile or non-volatile data memory, e.g. in a database used as an archive, with the recipient system currently or at a future point in time having read rights with regard to this data memory.
  • the provider cryptosystem can generate a number of different signatures using a number of signature generation methods, which are stored (for example in concatenated form) as composite cryptographic data in the first predefined field.
  • the composite th cryptographic data can also contain several ciphertexts generated in parallel or one ciphertext generated sequentially or an agreed final key or a Key container etc. included.
  • the provider cryptosystem stores an identifier of the second control algorithm to be executed by the recipient cryptosystem in order to select those second cryptographic algorithms and to coordinate their combination that are to be used to process the composite cryptographic data provided .
  • the identifier can be, for example, one of the above identifiers, e.g., SIGNATURE-OR, SIGNATURE-AND, etc.
  • the identifier of the second control algorithm is stored in a second predefined field of the data structure.
  • the recipient cryptosystem reads and parses the identifier from the second predefined field of the data structure and selects the second control algorithm based on the read identifier.
  • the algorithm identifiers of the second control algorithms to be used by the second control algorithm and optionally the component parameters required by them and optionally the control parameters required by the second control algorithm are also stored in the data structure saved. This data is preferably stored as parameters of the second control algorithm.
  • the second field of the data structure has a structure predefined in a standard with a predetermined first input area for a single (conventional) cryptographic algorithm identifier and a predetermined second input area for the parameters of this (conventional) cryptographic algorithm, the identifier of the second control algorithm in the first input area and said parameters of the second control algorithm are stored in the second input area.
  • the agreed data structure is a certificate, in particular an X.509 certificate.
  • the first predefined field is a field defined in a standard, in particular a conventional standard for cryptographic algorithms and/or data structures, for specifying a single cryptographic algorithm. Examples of such standards are:
  • the multiple first cryptographic algorithms include multiple cryptographic signing algorithms according to multiple different signing methods.
  • the second cryptographic algorithms include several cryptographic signature checking algorithms, each of which is implemented according to one of the different signing methods.
  • computing the composite cryptographic data includes:
  • the signature can, for example, include parameters (in particular algorithm identifiers and optionally used component parameters of the signing algorithm used in each case) which identify the signing method used by the respective cryptographic signing algorithm and which also implicitly identify a suitable signature verification algorithm;
  • each parameter created may be part of the composite cryptographic data or, preferably, provided separately and in connection with the composite cryptographic data;
  • the parameters (algorithm identifiers and optionally used component parameters of the respectively applied signing algorithms as well as optional control parameter) stored in a second predefined field of the data structure.
  • the transmission of at least the combined cryptographic data from the provider cryptosystem to the recipient cryptosystem takes place in the course of a transmission of the input data and the data structure to the recipient cryptosystem.
  • each signature generated by one of the first cryptographic algorithms consists of a pair of algorithm identifier and the value of the signature.
  • the algorithm identifier can be provided in conjunction with parameters that the identified algorithm needs as input in order to be able to verify the signature.
  • the signatures of the individual signing algorithms are preferably stored as a composite signature in the first field.
  • the algorithm identifiers and component parameters of the signing algorithms and optionally control parameters of the second control algorithm are stored as parameters for the second control algorithm together with the identifier of the second control algorithm in the second field.
  • the parameters may include a plurality of component parameters and algorithm identifiers “composite” from the component parameters of the first cryptographic algorithms and may be considered “composite parameters” stored separately from the composite cryptographic data.
  • the composite cryptographic data on the one hand and the combination of the identifier of the second control algorithm with the "composite" parameters on the other hand form a tuple of cryptographic data, (control) algorithm identifiers and parameters, which is entered into the corresponding fields and input areas of standard-compliant cryptographic data structures can be stored without having to break up or change the data structure, although the combined cryptographic data and parameters have a significantly higher information content and can be used more flexibly than the corresponding data and parameters of individual cryptographic algorithms for which these data structures were originally designed.
  • the composite cryptographic data can thus be provided as a pair similar to cryptographic data from individually used cryptographic algorithms, namely, for example, as a combination of the (composite) cryptographic data on the one hand and an algorithm identifier (of the second control algorithm) and its parameters on the other.
  • the calculation of the result data by the recipient cryptosystem includes:
  • the result data may include a result as to whether the provider cryptosystem or a message from the provider cryptosystem is to be treated as having integrity and/or as originating from a particular provider entity.
  • the second control algorithm is specified by the first control algorithm and an identifier of the specified second control algorithm is stored in the data structure along with the composite cryptographic data.
  • a specific cryptographic program or program module for specific applications or functions run a specific first control algorithm that specifies, for example, that a certain number (eg three) signing algorithms each have a digital Generate a signature for an electronic document and write these three signatures as the composite cryptographic data in the first field of the data structure.
  • the first control algorithm can be designed to write a "SIGNATURE AND" identifier and the algorithm identifiers of the used signing algorithms together with optional component parameters and optional control parameters for the SIGNATURE AND control algorithm in the second field of the data structure.
  • the recipient cryptosystem is configured to select and execute the second control algorithm depending on the identifier specified in the second field.
  • the multiple first cryptographic algorithms include multiple cryptographic encryption algorithms according to multiple different encryption methods.
  • the multiple second cryptographic algorithms include multiple cryptographic decryption algorithms corresponding to the multiple different encryption methods.
  • computing the composite cryptographic data includes:
  • the encrypted data output from each of the encryption algorithms can optionally include parameters; these parameters can include algorithm identifiers for the encryption methods used by the respective cryptographic encryption algorithm and optionally also component parameters for these encryption methods and/or control parameters for the second control algorithm; Preferably, however, these parameters do not go into the subsequent encryption algorithms as input, but are output separately in the form of composite parameters together with the composite cryptographic data; and
  • the multiple cryptographic encryption algorithms are applied sequentially to the input data or to the output of the most recently performed encryption algorithm.
  • the output of the most recently applied cryptographic encryption algorithm is used as the composite cryptographic data.
  • the composite cryptographic data can be sequentially encrypted data, which are transformed back into the input data by sequentially applying the second cryptographic algorithms to the output of the previously executed second algorithm.
  • the application of the multiple cryptographic encryption algorithms is such that each of the multiple encryption algorithms is applied to the input data to produce an encrypted output value, respectively, and the computation of the composite cryptographic data is a concatenation or other form of combination of the encrypted output values to the combined cryptographic data.
  • the concatenation can take place in such a way that a delimiter, which is also known to the second control algorithm, separates the partial data generated by the individual first cryptographic algorithms.
  • the second control algorithm can use the delimiter to divide the combined cryptographic data into partial data and assign the individual second cryptographic algorithms for further processing.
  • the concatenation is preferably not based on a delimiter, but on the basis of a TLV (tag length value), ie a fixed character sequence length that can be specified, for example, in ASN.1 Distinguished Encoding Rules (DER) coding, or using XML , so that the receiver system provides the various first cryptographic algorithms provided parts of the composite cryptographic data based on the fixed set character sequence length can determine.
  • TLV tag length value
  • DER Distinguished Encoding Rules
  • the calculation of the result data by the recipient cryptosystem includes:
  • the result data containing at least one part of the input data in unencrypted form.
  • This step can also be carried out together with the previous step of generating the decrypted data, for example when the second cryptographic algorithms are used serially.
  • the multiple cryptographic decryption algorithms are applied sequentially to the output of the last decryption algorithm performed. The output of the most recently applied cryptographic decryption algorithm is used as the result data.
  • the application of the multiple cryptographic decryption algorithms is such that each of the multiple decryption algorithms is applied to the encrypted data contained in the field to generate decrypted data, respectively, using the decrypted data of one of the decryption algorithms as the result data.
  • the plurality of first cryptographic algorithms comprises a plurality of provider-side key agreement algorithms according to a plurality of different key agreement methods.
  • the second cryptographic algorithms include several receiver-side key agreement algorithms, which are each implemented corresponding to one of the different key agreement methods.
  • computing the composite cryptographic data includes:
  • key data are cryptographic keys and/or seeds (data values, e.g. random numbers used as basis of a calculation) or parameters for generating cryptographic keys or these wherein the key data comprises algorithm identifiers and optionally associated component parameters that identify the key agreement method used by the respective provider-side key agreement algorithm;
  • the parameters of the individual key agreement algorithms can be provided in the composite cryptographic data or, preferably, linked to it separately;
  • the algorithm identifiers and optionally associated component parameters of the individual first cryptographic algorithms, the identifier of the second control algorithm and optional control parameters are preferably stored in a second data field of the data structure.
  • the transmission of at least the combined cryptographic data from the provider cryptosystem to the recipient cryptosystem takes place in the course of a transmission of the input data and the data structure to the recipient cryptosystem.
  • the calculation of the result data by the recipient cryptosystem includes:
  • receiver-side key agreement algorithms as a function of those provider-side key data generated with a corresponding to the receiver-side key agreement algorithm corresponding provider-side key agreement algorithm barungsalgorithm were generated;
  • the input data contain a text, at least one parameter of a cryptographic method, and/or at least one cryptographic key.
  • the invention relates to a provider cryptosystem.
  • the provider cryptosystem includes a volatile or non-volatile storage medium with a plurality of first cryptographic algorithms and with at least one first control algorithm, with a first control algorithm being a calculation rule for selecting and/or combining two or more of the first cryptographic algorithms.
  • the provider cryptosystem further includes at least one processor configured to:
  • the composed cryptographic data can be stored in a data structure, eg a certificate, in a predefined first field.
  • the data structure can be part of a message that contains additional data.
  • the message can comprise an electronic document and contain a certificate, in the first field of which a signature composed of several individual signatures is contained instead of a conventional signature, with a second field of the data structure containing the cryptosystem used by the recipient to process the data in the first field contained data to be used second control algorithm is specified by means of an identifier.
  • the message can also only consist of the data structure.
  • the provider cryptosystem can only use the data structure or provide a larger data set or a message that contains additional data in addition to the data structure, eg a signed electronic document.
  • the provider cryptosystem is designed to carry out the provider system-side steps of the method.
  • the provider cryptosystem includes:
  • the first application program is free of cryptographic algorithms and can implement any application, eg a mail program, a program for generating and providing medical data, etc.
  • the first application program is interoperable with the first cryptographic application and is configured to carry out the following steps :
  • the separation of application logic and cryptography-related functions into different programs and/or modules described here can have the advantage that the application program remains unchanged, even if an old cryptographic application, which always returned very specific cryptographic data for a very specific algorithm, is replaced by a new cryptographic application that now returns composite cryptographic data.
  • the application program saves the composite Cryptographic data continues in the same predefined field that is already used, for example, according to today's standards for storing cryptographic data such as signatures or cryptographic keys. Thus, nothing changes for the application program if the previously used cryptographic module, which according to the existing standards wrote individual cryptographic values in individual fields provided for this purpose, is replaced by a new cryptographic program or module, which now contains composite cryptographic writes data into this one field.
  • provider cryptosystems with a correspondingly modular separation of application logic and cryptographic functions, it can be ensured that the provider cryptosystem can be switched to new, quantum computer-secure cryptographic algorithms without having to rewrite and/or rewrite application programs for this purpose would have to be compiled.
  • the invention relates to a recipient cryptosystem.
  • the recipient cryptosystem includes a volatile or non-volatile storage medium with one or more second cryptographic algorithms and at least one second control algorithm.
  • the second control algorithm is a calculation rule for selecting and/or combining one or more of the second cryptographic algorithms.
  • the recipient cryptosystem further includes at least one processor configured to:
  • the recipient cryptosystem is designed to carry out the recipient system-side steps of the method.
  • the recipient cryptosystem includes: - a second cryptographic application that uses the second cryptographic
  • a second application program which is free of cryptographic algorithms and algorithms with the second cryptographic application is interopera bel.
  • the second application program is configured to:
  • the first and/or second application program can be designed to process S/MIME messages and certificates or signatures associated therewith, with the actual cryptographic operations being outsourced to the cryptographic application that is interoperable with this application program.
  • S/MIME stands for Secure / Multipurpose Internet Mail Extensions and designates a standard for the encryption and signing of MIME objects using a hybrid cryptosystem.
  • S/MIME is used in many cryptographic processes to secure the application layer. Typical uses of S/MIME are e-mail, AS2 and many others.
  • S/MIME content layer
  • TLS transport layer
  • the first or second cryptographic application can execute the cryptographic operations in the S/MIME processing on the transport layer.
  • the invention relates to a data structure.
  • the data structure has a format which has been agreed between a provider cryptosystem and a recipient cryptosystem according to a cryptographic standard.
  • the cryptographic standard can in particular be a conventional cryptographic method and/or data structure standard.
  • the data structure contains a first predefined field which, according to the cryptographic standard, is used to store cryptographic data for exactly one cryptographic algorithm.
  • the first predefined field contains (contrary to this conventional cryptographic standard) composite cryptographic data.
  • the composite cryptographic data is composed of partial cryptographic data, each generated by a plurality of cryptographic algorithms.
  • the plurality of cryptographic algorithms can be, for example, a plurality of first cryptographic algorithms implemented on a provider cryptosystem.
  • the data structure preferably contains a second predefined field which, according to the cryptographic standard, is used to store an algorithm identifier for exactly one cryptographic algorithm.
  • the second predefined field contains an identifier of the second control algorithm and algorithm identifiers of the second cryptographic algorithms to be used by this and optionally component parameters and/or control parameters of the second control algorithm.
  • Such a data structure can have the advantage that its processing at the application level (eg by an S/MIME program) can be largely identical to the processing of corresponding data structures in which the first field contains the content according to the conventional cryptographic standard.
  • the composite cryptographic data generated by a plurality of cryptographic algorithms are according to embodiments. These can be read out by the application program in the same way as before and forwarded to the cryptographic application for processing. Adjustments may be required only in the case of the cryptographic application, since these are designed for this needs to write to or read from the first field and process composite cryptographic data rather than the results of a single cryptographic algorithm.
  • the data structure includes a format identifier, e.g., a cryptographic standard identifier or a data structure type identifier.
  • a format identifier e.g., a cryptographic standard identifier or a data structure type identifier.
  • an X.509 certificate contains a field that shows the version of the X.509 certificate.
  • the default value is version 1. If the issuer unique identifier or the subject unique identifier exist, the value must be version 2. The majority of applications used today use V3.
  • the data structure is a certificate.
  • the certificate can be an X.509 certificate, for example.
  • the X.509 certificate can be designed as a TLS certificate, for example.
  • the certificate can be a CV certificate (Card Verifyable Certificate).
  • the data structure is an X.509 from version V1 or higher, which is assigned to an entity.
  • entity can be, for example, a natural or legal person or a technical device or object.
  • the cryptographic data of exactly one cryptographic algorithm (to be stored in the first field according to the conventional cryptographic standard) is a ciphertext, a cryptographic key or a digital signature.
  • the cryptographic partial data is in each case a ciphertext, a cryptographic key or a digital signature.
  • the first field is a field designated according to a cryptographic standard for storing cryptographic data generated by a single cryptographic algorithm.
  • the second field is a field designated according to a cryptographic standard for storing an algorithm identifier of a single cryptographic algorithm including optionally present parameter values.
  • each of the partial data contains parameters, with the parameters identifying an algorithm identifier that identifies the second cryptographic algorithm with which the partial data is to be processed, and optionally also component parameters that control the processing.
  • the composite cryptographic data may include pairs of the outputs generated by each of the first cryptographic algorithms and the algorithm identifiers and optionally also component parameters of the respective second cryptographic algorithm.
  • the algorithm identifiers of the second cryptographic algorithms, component parameters optionally assigned to them and optionally present control parameters are stored and provided together as “composite parameters” separately but linked to the composite cryptographic data and an identifier of the second control algorithm.
  • the recipient cryptosystem is designed to use an analysis of the composite cryptographic data, which also contain algorithm identifiers, to determine, before the second control algorithm is executed, whether the second cryptographic algorithms identified in the second control algorithm by the recipient - Cryptosystem supported. If not, the second control algorithm is not executed, which saves resources.
  • the algorithm identifiers and/or component parameters of the second cryptographic algorithms also implicitly specify the bit length and/or first position of the cryptographic data. This data can enable the recipient cryptosystem to identify the beginning and/or the end of this partial data within the field when the data content of the field is parsed by the recipient cryptosystem.
  • the invention relates to a provider cryptosystem with a plurality of first cryptographic algorithms and at least one first control algorithm, which is configured to generate a data structure according to one of the embodiments described here.
  • the invention relates to a recipient cryptosystem with a plurality of second cryptographic algorithms and at least one second control algorithm, which is configured to process a data structure according to one of the embodiments described here.
  • the invention relates to a provider cryptosystem.
  • the provider cryptosystem comprises at least one processor and a volatile or non-volatile storage medium with a plurality of first cryptographic algorithms and at least one first control algorithm.
  • a first control algorithm is a calculation rule for selecting and/or combining one or more of the first cryptographic algorithms.
  • the at least one processor is configured to:
  • the data structure having a format agreed between the provider cryptosystem and a recipient cryptosystem, wherein the first predefined field is filled with the composite cryptographic data;
  • the format of a data structure is understood here in particular as a specification of the type and/or position and/or the content of various fields of a data structure.
  • the invention relates to a recipient cryptosystem.
  • the recipient cryptosystem comprises at least one processor and a volatile or non-volatile storage medium with a plurality of second cryptographic algorithms and at least one second control algorithm.
  • a second con- trollalgorithmus is a calculation rule for the selection and/or combination of one or more of the second cryptographic algorithms.
  • the at least one processor is configured to:
  • the invention relates to a system comprising one or more provider cryptosystems and one or more recipient cryptosystems according to one of the embodiments described here.
  • a “cryptosystem” or “cryptographic system” is understood here to mean a data processing system that uses cryptographic algorithms.
  • the data processing system can be a standard computer, a notebook, a portable telecommunications device, a server, any other data processing system, or a combination of several of these components.
  • a “cryptographic algorithm” is understood here as an algorithm that serves to protect data from unauthorized reading or manipulation and/or at least to make such manipulation recognizable.
  • a cryptographic algorithm can be, for example, an encryption algorithm, a decryption algorithm, a signing algorithm, an algorithm for checking a digital signature, or an algorithm for executing user-specific steps of a key agreement method.
  • “Composite cryptographic data” is understood here as data that is understood by the combined application of a plurality of (first) cryptographic algorithms and/or by a combination of the data generated by a plurality of first cryptographic algorithms.
  • the assembled cryptographic data can be the result of the application of signature generation algorithms (signing algorithms), encryption algorithms or key agreement algorithms, for example.
  • sequential execution of algorithms means iterative execution of those algorithms, where the first algorithm executed in the sequence is applied to the input data, and each of the subsequently executed algorithms is applied to the data generated by the immediately preceding algorithm be returned.
  • a “parallel” execution of algorithms is understood here as an execution of several algorithms, with each of these algorithms being applied to the input data or parts thereof and producing an output.
  • the multiple algorithms can be executed in any sequence in terms of time, e.g. simultaneously or one after the other in any order.
  • a “final key” is understood here as a cryptographic key that is calculated as a function of several other keys (intermediate key).
  • Partial data of composite cryptographic data is understood here to mean data that is calculated by a single first cryptographic algorithm that was used by the first control algorithm to calculate the composite cryptographic data.
  • a "field” is used here to refer to a physical and/or logical area within a data structure which, according to an agreement between two or more cryptosystems, is used to store data of a predefined meaning and/or function and with predefined properties (e.g. data type, length, Position, etc.) is provided.
  • a data field can contain multiple input areas, which are also subject to the data storage agreement are provided with a predefined meaning and/or function and with predefined properties.
  • the storage of data other than that intended in the data field and/or in an input area within the data field typically leads to errors or to the data processing being aborted.
  • the agreement can be implemented, for example, in the form of a cryptographic standard such as X.509 for certificates.
  • a “parameter” is a data value or set of data values with a specific function or meaning.
  • control parameter is a parameter that directly controls the manner in which a first or second control algorithm is executed.
  • a control parameter can, for example, be passed as an argument to a control algorithm.
  • a "component parameter” is a parameter that directly controls the manner of execution of a first or second cryptographic algorithm, and optionally thereby also indirectly controls the execution of a control algorithm that uses the first or second cryptographic algorithm.
  • a component parameter can be passed as an argument to a cryptographic algorithm and/or the control algorithm that uses this cryptographic algorithm.
  • aspects of the present invention may be embodied as an apparatus, method, or computer program or computer program product. Accordingly, aspects of the present invention may take the form of a flardware-only embodiment, a software-only embodiment (including firmware, in-memory software, micro-code, etc.), or an embodiment combining software and flardware aspects, all of which are herein may be referred to generically as "circuit", "module” or “system”. Furthermore, aspects of the present invention may take the form of a computer program product carried by one or more computer-readable media in the form of computer-executable code. A computer program also includes the computer executable code. "Computer executable code” may also be referred to as "computer program instructions”.
  • the computer-readable medium can be a computer-readable signal medium or a computer-readable storage medium.
  • the computer-readable storage medium may be referred to as a computer-readable non-transitory storage medium.
  • the computer-readable storage medium may also be referred to as a tangible computer-readable medium.
  • a computer-readable storage medium may also be capable of storing data that is capable of being accessed by the processor of the computing device.
  • Examples of computer-readable storage media include, but are not limited to: a floppy disk, a magnetic hard disk, a solid-state hard disk, flash memory, a thumb drive, random access memory (RAM), read-only memory (ROM), an optical disk, a magneto-optical disk, and the register file of the processor.
  • Examples of optical discs include compact discs (CD) and digital versatile discs (DVD), for example CD-ROM, CD-RW, CD-R, DVD-ROM, DVD-RW or DVD-R discs.
  • the term computer-readable storage medium also refers to various types of recording media capable of being retrieved by the computing device over a network or communications link. For example, data can be retrieved over a modem, over the Internet, or over a local area network.
  • Computer-executable code executing on a computer-readable medium may be transmitted over any suitable medium, including but not limited to wireless, wired, fiber optic, RF, etc., or any suitable combination of the foregoing media.
  • a computer-readable signal medium may include a propagated data signal containing the computer-readable program code, for example, in a base signal (baseband) or as part of a carrier signal (carrier wave). Such a propagation signal may be in any form including, but not limited to, electromagnetic form, optical form, or any suitable combination thereof.
  • a computer-readable signal medium it can any computer-readable medium, other than a computer-readable storage medium, that can transmit, distribute, or transport a program for use by or in connection with any instruction-executing system, apparatus, or apparatus.
  • a “computer memory” or “memory” is an example of a computer-readable storage medium.
  • Computer memory is any memory accessible to a processor.
  • a “computer memory” or “data storage” is another example of a computer-readable storage medium.
  • Computer data storage means any volatile or non-volatile computer-readable storage medium. In some embodiments, computer memory can also be computer data storage, or vice versa.
  • a "processor” as used herein includes an electronic component capable of executing a program or machine-executable instruction or computer-executable code.
  • Reference to computing device including a "processor” should be interpreted to include possibly more than one processor or processing cores.
  • the processor may be a multi-core processor.
  • a processor can also refer to a collection of processors within a single computer system or distributed across multiple computer systems.
  • the term computing device or computer shall also be construed to possibly refer to a collection or network of computing devices or computers, each including a processor or processors.
  • the computer-executable code may be executed by multiple processors, which may be distributed within the same computing device or even across multiple computers.
  • Computer-executable code may include machine-executable instructions or a program that causes a processor to perform an aspect of the present invention.
  • Computer-executable code for performing operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object-oriented programming language such as Java, Smalltalk, C++, or the like, and conventional procedural programming languages such as the “C” programming language or similar programming languages, and translated into machine-executable instructions.
  • the computer-executable code may be in high-level language or pre-compiled form and used in conjunction with an interpreter that generates the machine-executable instructions.
  • the computer-executable code may run entirely on a user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on the remote computer or server .
  • the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (e.g. via the internet using an internet service provider).
  • LAN local area network
  • WAN wide area network
  • an internet service provider e.g. via the internet using an internet service provider
  • the computer program instructions can be executed on one processor or on multiple processors. In the case of multiple processors, these can be distributed across multiple different entities (e.g. clients, servers). Each processor could execute a part of the instructions intended for the respective entity. Thus, where reference is made to a system or method that includes multiple entities, the computer program instructions should be understood as being adapted to be executed by a processor associated or associated with each entity.
  • These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable computing device to create a device such that the instructions executed by the processor of the computer or other programmable computing device provide means for executing the instructions in the block or blocks generate the functions/steps specified in the flow charts and/or block diagrams.
  • These computer program instructions may also be stored on a computer-readable medium that can control a computer or other programmable computing device or other device to function in a particular manner such that the instructions stored on the computer-readable medium produce a work of art, including instructions that implement the function/step specified in the block or blocks of the flowcharts and/or block diagrams.
  • the computer program instructions may also be stored on a computer, other programmable data processing device, or other device to cause a series of process steps to be executed on the computer, other programmable data processing device, or other device to produce a computer-executed process such that the instructions executed on the computer or other programmable device produce methods for implementing the functions/steps specified in the block or blocks of the flowcharts and/or block diagrams.
  • 1A shows an exemplary flow chart of an embodiment of a method according to the invention implemented by the provider
  • 1B shows an exemplary flow chart of an embodiment of a method according to the invention implemented at the receiver end
  • Figure 2 is a block diagram of a provider cryptosystem
  • FIG. 3 is a block diagram of a receiver cryptosystem
  • FIG. 4 shows a schematic of a first control algorithm and a data structure with the composite cryptographic data generated according to the first control algorithm
  • Fig. 5 shows a scheme of the application of another first control algorithm and a data structure with the composite cryptographic data generated according to it;
  • FIG. 7 shows an X.509 certificate as an example of a data structure containing the composed cryptographic data and associated parameters stored in specific fields.
  • FIG. 1A shows an exemplary flow chart of an embodiment of a method according to the invention implemented by the provider.
  • the method according to FIG. 1A can be implemented, for example, in a provider cryptosystem, as is described for FIG. 2 by way of example.
  • the exemplary methods according to FIGS. 1A or 1B can have the advantage that a high degree of agility is supported when using crypto algorithms, which allows cryptographic algorithms to be exchanged step by step, even in heterogeneous multi-subscriber systems, and several cryptographic ones for different IT applications Algorithms to be used in parallel. So far, IT applications have not been prepared for the parallel or redundant use of several cryptographic algorithms, since existing, standardized data structure formats for the corresponding cryptographic algorithms to be exchanged Data, in particular digital signatures, digital certificates, and/or encryption container fields for the output data and/or for the identification of exactly one of these cryptographic algorithms.
  • the input data can be any data.
  • the input data can be an electronic document that is to be signed in order to make the signature available to the recipient together with the electronic document in order to enable the recipient to check the integrity of the transmitted electronic document by means of a signature check.
  • the input data can also be other data, for example cryptographic keys or other data values or data sets that are to be transmitted in encrypted form to the recipient cryptosystem, or random values or parameters that are derived from a key agreement algorithm of a key in several subsequent procedural steps.
  • the provider cryptosystem does not apply a single cryptographic algorithm to the input data (or iteratively to the outputs of the other cryptographic algorithms), but two or more cryptographic algorithms.
  • the cryptographic algorithms implemented by the provider are also referred to here as “first cryptographic algorithms”.
  • a larger number of cryptographic algorithms may be implemented in the provider cryptosystem than are actually used to generate the composite cryptographic data. The selection of these cryptographic algorithms and/or the way in which they are combined is specified in a first control algorithm.
  • step 106 the composite cryptographic data calculated using the plurality of first cryptographic algorithms is provided by the provider cryptosystem to the recipient cryptosystem.
  • the assembled cryptographic data may be sent to the recipient cryptosystem over a network or stored in a storage medium accessible by the recipient cryptosystem.
  • the composite cryptographic data is preferably provided together with an identifier of a second control algorithm and with parameters (algorithm identifiers of the first and implicitly also of the second cryptographic algorithms, and optionally also component parameters and/or control parameters of the second control algorithm).
  • the parameters are also referred to as "composite parameters”.
  • the composite cryptographic data is stored within a single predefined first field of a data structure agreed between the provider cryptosystem and the recipient cryptosystem.
  • an identifier of a second control algorithm which must be used by the recipient cryptosystem for processing the composed cryptographic data, is stored in this data structure.
  • this identifier can be stored in a second field together with the composite parameters.
  • the first field is preferably a field that is already used according to existing standards for storing cryptographic data of individual cryptographic algorithms.
  • the second field is preferably a field that is already used according to existing standards for storing algorithm identifiers and optional algorithm parameters of individual cryptographic algorithms.
  • the storage of said composite cryptographic data and parameters in the corresponding fields can have the advantage that it is possible to specify several re-cryptographic algorithms within this data structure (e.g. certificates, signatures or key containers) via the identifier of the second control algorithm.
  • the recipient system is to use a different cryptographic algorithm than before, the corresponding rules and standards for signature, verification, encryption, decryption and/or key agreement are not redefined and described each time. Rather, these rules are defined once generically in the form of control algorithms implemented on the receiver side, whose identifiers are known to the provision cryptosystem. Thus, the specific specifications for protocols, certificates, signatures and key containers do not have to be changed each time the provider and/or recipient use a different cryptographic algorithm.
  • each of the first control algorithms may specify a choice and/or the manner (e.g., order and/or mode sequential or parallel) which of the first cryptographic algorithms are to be combined and how to obtain the composite cryptographic data.
  • each of the first control algorithms selects only cryptographic algorithms of the same type, e.g. only signature algorithms, only encryption algorithms, only algorithms for key agreement etc.
  • the execution of the first control algorithms by the provision cryptosystem (and analogously also the execution of the second control algorithms by the recipient cryptosystem) is preferably implemented by a software application or software module, which is separate from the actual application logic (see Figures 2 and 3).
  • the output of the first control algorithm, the composed cryptographic data and optionally also the parameters, can be viewed as the output of a new algorithm composed of several individual cryptographic algorithms.
  • a second control algorithm functionally complementary to this in the recipient cryptosystem.
  • the identifier of the two functionally complementary first and second control algorithms can be identical, even if it represents different calculation steps on the provider side than on the receiver side.
  • FIG. 1B shows an exemplary flowchart of an embodiment of a method according to the invention implemented at the receiver end.
  • the method according to FIG. 1B can, for example, be implemented in a receiver cryptosystem, as is described for FIG. 3 by way of example.
  • the recipient cryptosystem receives the composed cryptographic data. For example, it receives the data directly from a provider cryptosystem, e.g. over a network, or reads the data from a storage medium.
  • the recipient cryptosystem processes the composed cryptographic data in order to obtain result data.
  • the composite cryptographic data is processed using one or more second cryptographic algorithms.
  • the one or more second cryptographic algorithms are selected and/or coordinated and combined by a “second” control algorithm implemented on the receiver side, which preferably receives the algorithm identifiers of the second cryptographic algorithms as an argument.
  • the algorithm identifiers can be read from the data structure, for example with optionally additionally present control parameters and/or component parameters.
  • This second control algorithm is preferably defined by an identifier which was received together with the composite cryptographic data and determined by the provider cryptosystem. It is possible that only a single second cryptographic algorithm to process the composite crypto- graphical data is used, although several first cryptographic algorithms were used to calculate the composite cryptographic data (e.g. in "OR" control algorithms).
  • step 112 the recipient cryptosystem automatically executes a software and/or hardware function depending on the result data.
  • the composite cryptographic data could be the input data in encrypted form and the result data could represent the decrypted, reconstructed input data.
  • the automated software and/or hardware function could include outputting the reconstructed, decrypted data to a user or storing the data in decrypted form.
  • the composite cryptographic data could be a composite signature of an electronic document or its hash value
  • the result data could be the result or results of one or more signature verification processes.
  • the electronic document could be considered trustworthy and forwarded or stored for further processing, or discarded as manipulated.
  • a mechanical locking mechanism it is also possible for a mechanical locking mechanism to be opened or released if the result is that the signature is valid.
  • the verified signature could be the signature of a user's identity document, and the signature could be verified as part of an authentication process, for example to grant access to a protected area or room and/or to grant access to software functions or data .
  • the composite cryptographic data could be a final key that has been negotiated in the course of a key agreement process between the provider cryptosystem and the recipient cryptosystem. This final key can now be used, for example, to set up a cryptographically secured communication channel between the provider cryptosystem and the recipient cryptosystem.
  • the composite cryptographic data is a key container comprising a plurality of different cryptographic keys which are made available again individually by the second control algorithm and/or used according to their respective function, eg to encrypt or decrypt data in order to Sign data, verify signatures, etc.
  • FIG. 2 shows a block diagram of a provider cryptosystem 200.
  • the provider cryptosystem can be implemented, for example, as a standard computer system, server computer system, distributed cloud computer system or other data processing system.
  • the cryptosystem 200 includes one or more processors 202 and a volatile or non-volatile storage medium 204.
  • the storage medium preferably includes at least one application program 206, for example an e-mail program for processing S/MIME data, and a first cryptographic program 212.
  • the first application program and the first cryptographic program are operatively coupled to one another by a data exchange interface. It is also possible for the first cryptographic program to be a program library or a program module integrated into the first application program.
  • the first cryptographic program 212 includes a plurality of multiple first cryptographic algorithms 214-224.
  • the first cryptographic algorithms can all be of the same type or of different types.
  • the first cryptographic algorithms 214-220 each implement a different signing scheme.
  • the first cryptographic algorithm 222 is an encryption algorithm and the first cryptographic algorithm 224 is a key agreement algorithm.
  • the cryptographic program comprises a calculation module 226, which contains or can read in one or more first control algorithms 228-232.
  • Each of these first control algorithms specifies a selection and/or a combination (in terms of the way in which the algorithms and/or the outputs of the algorithms are to be combined with one another) of a plurality of first cryptographic algorithms, with preferably only first cryptographic algorithms of the same type are connected.
  • a large number of first and complementary second control algorithms are possible, which are preferably identified with the same identifier, such as:
  • SIGNATURE-AND here a composite signature is generated by computing a signature by each of the signature algorithms selected by the first control algorithm and then combining (e.g. concatenating) these signatures into a composite signature.
  • the verification (to be carried out by the receiver cryptosystem) of a SIGNATURE AND control algorithm implemented at the receiver end returns as result data that the composite signature is valid if all signatures of the individual signatures used to generate the composite signature are valid.
  • SIGNATURE-OR here, as with SIGNATURE-AND, a composite signature is generated by computing a signature by each of the signature algorithms selected by the first control algorithm and then combining these signatures into a composite signature.
  • the verification (to be carried out by the receiver cryptosystem) of a SIGNATURE OR control algorithm implemented at the receiver end returns as result data that the composite signature is valid if at least one signature of the plurality of signatures used to generate the composite signature is valid.
  • the verification (to be carried out by the receiver cryptosystem) of a SIGNATURE-K-of-N control algorithm implemented at the receiver end returns as result data that the composite signature is valid if at least K of the signatures of the N signatures used to generate the composite signature is valid.
  • KEY AGREEMENT-XOR The keys agreed with the individual first cryptographic key agreement algorithms are padded or shortened to a common length and then combined with XOR to form a final key.
  • the final key represents the composite cryptographic represents data and is used as the cryptographic key ultimately agreed between the provider cryptosystem and the recipient cryptosystem.
  • the recipient computer system cryptosystem must implement all key agreement algorithms (in the form of second cryptographic algorithms) that are functionally more complementary to the key agreement methods used by the provider cryptosystem as the first cryptographic algorithms to generate the final key. Otherwise, the key agreement between the provider cryptosystem and the recipient cryptosystem fails.
  • KEY ENCRYPTION-SEQUENTIAL A symmetric key is encrypted with a first cryptographic algorithm, which is a specified encryption algorithm. The ciphertext is then encrypted again using a further first cryptographic algorithm which implements a different encryption algorithm. The resulting ciphertext is then encrypted with a further first cryptographic algorithm that implements a further different encryption key. Etc. The output of the last executed encryption algorithm is provided as the composite cryptographic data.
  • the decryption (to be undertaken by the recipient cryptosystem) of a ciphertext generated according to the first control algorithm KEYSCRIPT-SEQUENTIALLY includes the application of functionally complementary decryption keys in reverse order to the ciphertext received from the provider cryptosystem. If the recipient cryptosystem implements all the required decryption algorithms and has the necessary decryption keys, it is able to reconstruct the original input data and use it as the result data.
  • KEY CONTAINER here a composite key is generated, obtained by concatenating keys identified and/or calculated by the algorithms selected by the first control algorithm.
  • the composite key can be formed by concatenation, for example.
  • the second control algorithm which is functionally complementary to this first control algorithm, extracts the individual keys from the container and preferably also uses them according to their type in a cryptographic method.
  • Each of the first control algorithms can thus itself be regarded as a new, cryptographic algorithm, which is composed of several (first) cryptographic algorithms.
  • the calculation module 226 could, for example, comprise a first control algorithm 228 according to SIGNATURE AND, a further first control algorithm 230 according to SIGNATURE OR and a further first control algorithm 232 according to KEY ENCRYPTION SEQUENTIAL.
  • the first application program could provide input data 208, for example an electronic document such as an e-mail, to the first cryptographic program 212.
  • the provision can optionally be made with a default follow which of the first control algorithms to generate a signature for the electronic document should be used.
  • the first cryptographic program receives the input data 208 and performs, for example, the first control algorithm 230 (SIGNATURE OR).
  • the control algorithm 230 provides for a combination of the three generated signatures, for example by concatenating the individual signatures.
  • the individual signatures can be separated from one another, e.g. by means of specified separators (delimiters), over-specified maximum lengths or in some other way.
  • the concatenate of signatures thus obtained is stored as the composite cryptographic data 236 in a data structure 234 and returned to the first application program 206 .
  • an identifier of the second control algorithm to be used for processing the composite cryptographic data 236 is written into the data structure 234 .
  • the provider cryptosystem 200 is designed to provide the data structure with the composite cryptographic data 236 and the identifier of the second control algorithm (SIGNATURE OR) to the recipient cryptosystem 240 .
  • the provider cryptosystem includes an interface 210 in order to send the data structure 234 directly to the recipient cryptosystem 240 .
  • the provider cryptosystem can also have an interface for storing the data structure 234 in a storage medium 242 .
  • the storage medium 242 is a storage medium to which the recipient cryptosystem currently or in the future has read access.
  • Figure 3 shows a block diagram of a receiver cryptosystem 240.
  • the recipient cryptosystem 240 includes one or more processors 302 as well as a volatile or non-volatile storage medium 304.
  • the recipient cryptosystem can be designed in the form of a wide variety of data processing systems, as already described for the provider cryptosystem.
  • the cryptosystem 240 comprises one or more processors 302 and a volatile or non-volatile storage medium 304.
  • the recipient cryptosystem includes an interface 310 for receiving the composite cryptographic data.
  • the composite cryptographic data may be received as part of a data structure 234, where the data structure may be a standard data structure such as an X.509 certificate.
  • the interface 310 can be, for example, an interface for receiving a data structure 234 from the provider cryptosystem via a network or an interface for reading the data structure 234 from a storage medium 242.
  • the storage medium preferably includes at least one application program 306, for example an e-mail program for processing S/MIME data, and a cryptographic program 312.
  • the application program 306, also referred to as the “second application program”, and the “second” cryptographic program 312 are operatively coupled to each other through a data exchange interface. It is also possible for the second cryptographic program to be a program library or a program module integrated into the second application program.
  • the second cryptographic program 312 includes a plurality of multiple second cryptographic algorithms 314-324.
  • the second cryptographic algorithms may all be of the same type or of different types.
  • the second cryptographic algorithms 314-320 each implement a different signature verification method.
  • the second cryptographic algorithm 322 is a decryption algorithm and the second cryptographic algorithm 324 is a key agreement algorithm.
  • each of the second algorithms may be functionally complementary to a first algorithm 214-224 of the provider cryptosystem.
  • the second algorithms of a recipient cryptosystem may be functionally complementary to a set of first algorithms that are stored distributed in different provider cryptosystems. This can have the advantage that the recipient cryptosystem can process composite cryptographic data from a large number of different provider cryptosystems with a nem different set of first cryptographic algorithms who can process the same.
  • the cryptographic program includes a calculation module 326, which includes or can read one or more second control algorithms 328-332.
  • Each of these second control algorithms specifies a selection and/or a combination (in the sense of how algorithms and/or the outputs of the algorithms are to be combined) of a plurality of second cryptographic algorithms, preferably only second cryptographic algorithms of the same type being connected will.
  • the second control algorithms are preferably functionally complementary to a first control algorithm, e.g. one of the control algorithms described with reference to Figure 2, such as SIGNATURE AND, SIGNATURE OR, etc.
  • the calculation module is configured to receive and evaluate the data structure 234 from the application program.
  • the data structure also contains an identifier of a second control algorithm, here e.g. control algorithm 330, and thereby determines the second control algorithm which is executed by the recipient cryptosystem in response to the receipt of the data structure.
  • the selected second control algorithm is a SIGNATURE OR control algorithm that is functionally complementary to the first control algorithm 230 (SIGNATURE OR) that created the composite cryptographic data 236 .
  • the received data structure preferably also contains parameters.
  • Algorithm identifiers and optionally also parameters of the individual second cryptographic algorithms 316, 318 and 320 (“component parameters”) can be specified in these parameters, which are used by the second control algorithm to process the composed cryptographic data in order to obtain the result data 308 .
  • the parameters can, for example, also specify delimiters or maximum character sequence lengths that separate the cryptographic data generated by the individual first cryptographic algorithms from one another, or else tive parameters that directly control the execution of the second control algorithm (“control parameters”).
  • the result data 308 would specify that the composite signature 236 is valid if any of the signatures generated by the first cryptographic algorithms, as verified by a corresponding signature verification algorithm 316-320, result in that the signature is valid.
  • the composite cryptographic data 236 is stored in a data structure 234, the structure of which has been agreed between the provider cryptosystem and the recipient cryptosystem. This means that both cryptosystems agree on which data is or is stored in which field of the data structure.
  • the agreement can preferably be based on the fact that the structure of the data structure is defined in a (conventional) standard.
  • the parameters of the second control algorithm stored together with the identifier of the second control algorithm in the data structure 234 include algorithm identifiers and optionally also component parameters of one or more second cryptographic algorithms to be selected and/or combined by the second control algorithm .
  • the parameters can also contain control parameters of the second control algorithm.
  • the manner in which a first and/or second cryptographic algorithm is executed and/or the official algorithm identifier is typically specified in cryptographic standards.
  • a first and/or second cryptographic algorithm may be a variant of RSA.
  • Different variants of the RSA and their identifiers are described in the RFC 8017 standard, for example.
  • a first and/or second cryptographic algorithm may be the ECDSA algorithm described in the ANSI X9.62 standard.
  • the first and/or second control algorithms include, receive and/or use parameters.
  • the parameters include algorithm identifiers of the individual first or second cryptographic algorithms selected and/or combined by these control algorithms, the parameters optionally also containing component parameters of these cryptographic algorithms and/or control parameters used directly by the control algorithms.
  • the algorithm identifiers and component parameters are defined according to existing conventional standards.
  • the identifier of the second control algorithm and all of the parameters mentioned above and used by this second control algorithm are preferably stored in the fields of a standardized cryptographic data structure provided for individual cryptographic algorithms according to existing standards.
  • the identifier and parameters may be denoted, for example, according to the ASN.1 notation explained with respect to FIG. This has the advantage that the program on the application level, which receives such a cryptographic data structure, may already have partially processed it and forwarded the extracted identifiers, parameters and cryptographic data to a cryptographic module, does not have to be rewritten. Because the structure of the fields of the data structure has not changed.
  • algorithm identifier SEQUENCE ⁇ algorithm OBJECT IDENTIFIER
  • the second control algorithm is specified as shown above:
  • the identifier of the second control algorithm e.g. "SIGNATURE-OR”
  • OID in the same format as the OIDs of individual cryptographic algorithms, e.g "1.2.3.4.5.6.7.8.9”.
  • Algorthmldentifier uses the values of several signature algorithms used as second cryptographic algorithms, each of which consists of OID and parameters.
  • the storage of the composite cryptographic data described for this embodiment in a predefined first field and the identifier of the second control algorithm and associated second parameters in a second field, which according to conventional data structure standards for storing cryptographic data or algorithm identifiers of a single cryptographic algorithm can have the advantage that the processing application software of the recipient cryptosystem "knows" without changing the code how to read out the composed cryptographic data and the identifier of the second control algorithm and forward it to the cryptographic software.
  • standard conformity can be achieved very easily by specifying for each composite algorithm (with its own OID) in the corresponding definition (possibly published as a standard) how the keys, signatures and ciphers are to be handled.
  • composite keys and composite signatures ie keys or signatures composed of two or more keys or signatures, can be simple concatenations of the individual keys and signatures generated by the first cryptographic algorithms.
  • the ciphertext is the result of the most recently performed component encryption.
  • FIG. 4 shows a schematic of a first control algorithm and a data structure with the composite cryptographic data generated according to the first control algorithm.
  • an identifier 402 of the first control algorithm and an identifier 410 of the second control algorithm that is to be used to process the generated composite cryptographic data are specified.
  • the identifiers 402 and 410 are ty- typically identical, but can also be different in some embodiments.
  • the first control algorithm is preferably implemented using a series of parameters 404, 408, 412, 416 as input and/or outputting.
  • the parameters 408 include algorithm identifiers of those first cryptographic algorithms that are to be used to generate the composite cryptographic data, optionally component parameters required by them (e.g. B1, B2 for signing algorithm/signature verification algorithm B, component parameters C1, C2 and C3 for signing algorithm/signature verification algorithm C, the signing algorithm/signature checking algorithm D does not require any component parameters) and optionally also control parameters 404, 412 for the first (and possibly also for the functionally corresponding second) control algorithm itself.
  • component parameters required by them e.g. B1, B2 for signing algorithm/signature verification algorithm B, component parameters C1, C2 and C3 for signing algorithm/signature verification algorithm C, the signing algorithm/signature checking algorithm D does not require any component parameters
  • control parameters 404, 412 for the first (and possibly also for the functionally corresponding second) control algorithm itself.
  • a control parameter 404, 410 in the case of SIGNATURE K-of-N could specify the value K from the set of the first cryptographic algorithms.
  • the value K is a number less than or equal to N and specifies the minimum number of signatures that must be verified as valid so that the composite signature check carried out in its entirety by the second control algorithm has the result that a signed document is valid.
  • KEY AGREEMENT e.g. the bit length to which the results of the individual algorithms must be shortened or padded can be used as a control parameter. How the first and/or second algorithms are to be combined is specified by the identifier of the first or second control algorithm, e.g. AND / OR / AGGREGATE / etc.
  • N may be 3 and K2.
  • the three signing methods B, C and D identified by the algorithm identifiers are applied to the input data 208, e.g. a document to be signed, with the algorithms B and C having component parameters B1, B2,
  • the signatures 418, 420, 422 obtained are concatenated and stored as the composite cryptographic data 236, for example in a first field 438 of a data structure 234, which is an X.509 certificate is.
  • the identifier 410 of the second control algorithm and a number of parameters 412, 416 to be used by this are stored in a second field 440 of the data structure.
  • cryptosystems that use X.509 certificates can be prepared and converted to quantum computer-secure cryptographic processes.
  • the composed cryptographic data and/or the identifier of the second control algorithm in X.509 certificates can be stored in the following certificate areas or fields i, ii, iii and/or iv, which are currently used to store cryptographic data and algorithm identifiers of individual cryptographic algorithms are used.
  • a corresponding certificate 700 is shown as an example in FIG. 7, to which reference is also made here: i. signatureAlgorithm Field 702, 440: in accordance with a conventional cryptographic standard (see RFC 5280, 4.1.1.2), this field specifies which algorithm is used by the Certification Authority (CA) to sign the certificate.
  • CA Certification Authority
  • Algorithmidentifier SEQUENCE ⁇ algorithm OBJECT IDENTIFIER
  • the certificate 234 would therefore contain the following information in the signatureAlgorithm field 440:
  • N does not need to be specified as a parameter of the control algorithm because the value N results from the number of second cryptographic algorithms listed in second_krypto_algs.
  • the entire signatureAlgorithm data structure looks in this example for the second control algorithm "SIGNATURE-K- out-N” like this:
  • Algorithmidentifier :: SEQUENCE ⁇ algorithm SIGNATURE-K-of-N,
  • the certificate field "signature” 704 must contain the same content as field (i) "signatureAlgorithm", see RFC 5280, 4.1.1.2. iii. SignatureValue field (see RFC 5280, 4.1.1.3) 706, 438: This is a field 438 for storing the certificate authority's signature over the content of the certificate with the signatureAlgorithm algorithm and the certificate authority's private key.
  • the formal description in ASN.1 is: SignatureValue BIT STRING.
  • the certificate 234 would therefore contain the composed cryptographic data in the first field 438, in the named standard the field SignatureValue, which results from the sign nature with the control algorithm mentioned under (i) and (ii) and its parameters has revealed.
  • the field SignatureValue results from the sign nature with the control algorithm mentioned under (i) and (ii) and its parameters has revealed.
  • this is the juxtaposition of the results of the individual first cryptographic algorithms, which are also shown as a BIT STRING.
  • the resulting SEQUENCE OF BIT STRING is preferably also subjected to a type conversion to BIT STRING.
  • the entire SignatureValue data structure looks like this:
  • SubjectPublicKeyInfo field (see RFC 5280, 4.1.2.7) 708: This is a certificate domain for storing the public key of the certificate subject and an algorithm identifier of the cryptographic algorithm with which this key can be used.
  • the cryptographic algorithm can be, for example, a signature algorithm or an algorithm of another type of algorithm.
  • the SubjectPublicKeylnfo field is of type SubjectPublicKeylnfo, which is defined as
  • SubjectPublicKeyInfo SEQUENCE ⁇ algorithm Algorithm Identifier, subjectPublicKey BIT STRING ⁇
  • the certificate in this area would contain a first field 438 and be identified by the term "subjectPublicKey” and a second field 440 and be identified by the term "algorithm”.
  • the 2nd field contains the ID of the SCFILÜSSEL-CONTAINER control algorithm and, as parameters, the algorithms of the various keys contained in the 1st field as concatenation.
  • this certificate area 708 would therefore contain the following information:
  • SubjectPublicKeylnfo SEQUENCE ⁇ algorithm " KEY CONTAINER and parameters", subjectPublicKey [composite cryptographic data] ⁇
  • Algorithm Identifier SEQUENCE ⁇ algorithm OBJECT IDENTIFIER,
  • parameter is ANY DEFINED BY algorithm OPTIONAL ⁇ , it is again defined by the identifier of the control algorithm KEY-CONTAINER and parameters.
  • the parameters again consist of the sequence of algorithm identifiers of the first cryptographic algorithms and optionally their respective parameters.
  • algorithm :: SIGNATURE OR identifier
  • the composite cryptographic data is the sequence of public keys assigned to the entity in the certificate and which in this order match the algorithm identifier sequence_key_algorithms named in Parameters.
  • the combined cryptographic data is stored in the subjectPublicKey field from SubjectPublicKeyInfo and results in SCHLÜSSEL-CONTAINER as a SEQUENCE OF BIT STRING and is also subjected to a type conversion to BIT STRING.
  • the entire signatureValue data structure looks like this:
  • SubjectPublicKeylnfo SEQUENCE ⁇ algorithm SEQUENCE ⁇ algorithm KEY CONTAINER,
  • X.509 certificates with composite cryptographic data can be processed in compliance with the following standards: - ITU-T X.509 (10/2019) Information technology - Open Systems Interconnection - The Directory: Public-key and attribute certificate frameworks (identical to ISO/IEC 9594-8)
  • the identifier of the second control algorithm is stored in an X.509 certificate, e.g parameters of the signatureAlgorithm field.
  • the signature field of the tbsCertificate field contains the same information as the signatureAlgorithm field.
  • the composite cryptographic data is stored in the signatureValue field.
  • the identifier of the second control algorithm is stored in an X.509 certificate, for example in the field algorithm of the field algorithm of the field subjectPublicKeyInfo as OBJECT IDENTIFIER, the parameters of the second control algorithm and the algorithm identifier of the second cryptographic algorithm together their parameters are stored in the Parameters field of the algorithm field of the subjectPublicKeyInfo field.
  • the composite cryptographic data is stored in the subjectPublicKey field of the subjectPublicKeyInfo field.
  • FIG. 7 is intended to illustrate that it is possible to store the composite cryptographic data of a number of first control algorithms in the same certificate.
  • the certificate area iv or only the certificate fields i-iii contain composite cryptographic data or identifiers of control algorithms together with composite parameters and the other areas of the certificate contain conventional ones contain cryptographic data, identifiers and parameters from only a single conventional cryptographic algorithm.
  • Composed cryptographic data can also be stored and read out in data structures according to the Cryptographic Message Syntax (see RFC 5652: Cryptographic Message Syntax (CMS), September 2009) without having to change anything in the standard.
  • CMS Cryptographic Message Syntax
  • the signed-data content type is used in CMS to sign data (see RFC 5652, section 5).
  • the signatures of the individual signers are contained in a data structure area of the type SignerInfo called "signerlnfo".
  • the identifier of the control algorithm, its control parameters and, as further parameters, the algorithm identifiers of the second cryptographic algorithms together with their component parameters can be inserted into the field 440 signatureAlgorithm.
  • the identifier of the control algorithm is a SIGNATURE-OR, a SIGNATURE-AND, or a SIGNATURE-K-of-N.
  • the composite cryptographic data comprises a juxtaposition of the results of the individual first cryptographic algorithms that still undergo a type conversion to OCTET STRING have been subjected to.
  • the composed cryptographic data is used in field 438 "signature" of the data structure area SignerInfo.
  • the enveloped-data content type is used in CMS to encrypt data (see RFC 5652, Section 6).
  • a content-encryption key for (e.g. symmetrical) file encryption is generated at random and the content-encryption key is encrypted individually (e.g. asymmetrically) for each recipient.
  • a RecipientInfo record is included in the enveloped-data content type data.
  • This data structure area may have an area named KeyTransRecipientlnfo, KeyAgreeRecipientlnfo and other areas of analogous function.
  • the identifier of the control algorithm, its control parameters and, as additional parameters, the algorithm identifiers of the second cryptographic algorithms together with their component parameters are used in the “keyEncryptionAlgorithm” field 440 there.
  • the identifier of the control algorithm a DATA ENCRYPTION ITERATIVE can be used.
  • the composite cryptographic data includes the results of the first cryptographic algorithms executed in succession, which were also subjected to a type conversion to OCTET STRING.
  • the composed cryptographic data is used in the “encryptedKey” field 438 of the data structure.
  • the identifier of the control algorithm and its control parameters are stored in the “keyEncryptionAlgorithm” field there, and the algorithm identifiers of the second cryptographic algorithms together with their component parameters are stored as additional parameters.
  • a KEY AGREEMENT AGGREGATE can be used as an identifier for the control algorithm.
  • OriginatorPublicKey SEQUENCE ⁇ algorithm Algorithm Identifier, publicKey BIT STRING ⁇
  • the OriginatorPublicKey structure contains the algorithm field of type Algorithm Identifier. According to embodiments of the invention, this field contains the identifier of the control algorithm, optionally its control parameters and the sequence of algorithm identifiers of the second cryptographic algorithms. For example, the identifier of the control algorithm KEY-CONTAINER can be used. In this case, the composite cryptographic data is the concatenation of the public keys in the order in which they are specified in the parameters of the control algorithm. b) The encryption key used for the encryption is contained in the recipientEncryptionKeys field for a recipient of the recipientEncryptionKey type (see in particular RFC 5652, 6.2.2).
  • RecipientEncryptedKey SEQUENCE ⁇ rid KeyAgreeRecipientldentifier, encryptedKey EncryptedKey ⁇
  • the key encryptedKey is calculated by the first control algorithm specified in the keyEncryptionAlgorithm field from the KeyAgreeRecipientInfo structure, including the first cryptographic algorithms specified in the parameters and the keys specified and specified under a).
  • the composite cryptographic data calculated with the control algorithm - the encryption key - is the result of an aggregation (e.g. with XOR) of the results of the executed first cryptographic algorithms.
  • the composite cryptographic data is stored in the recipientEncryptedKey field of the KeyAgreeRecipien tlnfo data structure.
  • the data structure according to the Cryptographic Message Syntax is used to verify or check the correctness and integrity of passports and other travel documents.
  • Standards that describe the nature of the documents and their electronic data are, for example, ICAO Doc 9303, Machine Readable Travel Documents, Seventh Edition, 2015, Part 11: Security Mechanisms for MRTDs, and ICAO Doc 9303, Machine Readable Travel Documents, Seventh Edition , 2015, Part 12: Public Key Infrastructure for MRTDs.
  • These travel documents (machine-readable travel documents - MRTD) contain electronic data whose integrity can be verified by checking the signature in the Document Security Object (SOD).
  • SOD Document Security Object
  • the signature corresponds to the signature of documents according to CMS (RFC 5652), so it is an example of a file signature that is commonly used and its conversion to quantum-secure signatures by storing composite cryptographic signatures and associated data in the above fields can be carried out.
  • the data structure according to the Cryptographic Message Syntax is used to verify or check the correctness and integrity of ID cards, in particular the German ID card and German residence permits.
  • the correctness and integrity of the The electronic data stored on ID cards and residence permits depends on the IT application used by checking the signature in the Document Security Object (SOD) in the EF file. CardSecurity or in the file EF. ChipSecurity detected.
  • SOD Document Security Object
  • SOD Document Security Object
  • the signature corresponds to the signature of documents RFC 5652.
  • Certificate requirements contain the technical part of a certificate application, with which the applicant applies for a certificate from a certification authority. It is often referred to as PKCS#10 because the first standard for such certificate requests was Standard #10 in the RSA Laboratories series of Public Key Cryptography Standards (now RFC 2986: PKCS #10: Certification Request Syntax is used). Specification, version 1.7, November 2000). According to RFC 2986, a PKCS#10 certificate request looks like this:
  • CertificationRequest SEQUENCE ⁇ certificationRequestlnfo CertificationRequestlnfo, signatureAlgorithm Algorithmldentifier ⁇ SignatureAlgorithms ⁇ , signature BIT STRING
  • signatureAlgorithm Like field 702 in the X.509 certificate, designates the algorithm with which the content of the PKCS#10 certificate request is certificationRequestInfo, is signed.
  • the second control algorithm with its parameters is entered in the “signatureAlgorithm” field, which serves as the second field 440 .
  • Signature Corresponds to the field signatureValue 706 and contains the value of the signature.
  • the “signature” field of the certificate request which as the first field 438 contains the combined cryptographic data, i.e. the signature that was formed according to the algorithm described in i), is stored.
  • the content of the PKCS#10 certificate request is certificationRequestlnfo and is defined according to RFC 2986 as
  • ⁇ iv. subjectPKInfo Corresponds to the SubjectPublicKeyInfo 708 certificate area.
  • This certificate area contains a public key, which is intended to be contained in the applicant's X.509 certificate, in accordance with the use previously envisaged in the prior art.
  • the identifiers of the first and second fields correspond to the identifiers described for certificate range 708 of X.509 certificates (see in particular RFC 5280, which relates to SubjectPublicKeyInfo in certificates, and RFC 2986, which relates to the subjectPKInfo field in PKCS#10 ) and contain the same SubjectPublicKeylnfo type definition as quoted on page 74)
  • subjectPKInfo is an area of a data structure 234 consisting of a 1st field 438 and a 2nd field 440.
  • the 2nd field contains the ID of the control algorithm (e.g KEY CONTAINER) and as parameters the algorithm identifiers of the various in the 1 . Key contained in the field as a concatenation.
  • CertificateList SEQUENCE ⁇ tbsCertList TBSCertList, signatureAlgorithm Algorithm Identifier, signatureValue BIT STRING ⁇
  • a revocation list contains the field "signatureAlgorithm", which is used as a "second field” 440 and that "signature Value” field used as “first field” 438 .
  • the data structure is a blocking list in which the identifier of the second control algorithm is stored in the "signatureAl gorithm” field, with the "signatureValue” field, in which the bit sequence of the individual algorithm signature is normally stored, according to embodiments of the invention the composite cryptographic data is stored.
  • the "signatureAlgorithm” field thus serves here as a "second field” 440 for storing the identifier of the second control algorithm and the composite parameters and the "signature value” field as a "first field” 438 for storing the associated composite cryptographic data.
  • the data structure is validity information for certificates, the identifier of the second control algorithm being stored in the “signatureAlgorithm” field, and the composite cryptographic data, preferably a composite cryptographic signature, being stored in the “signature” field.
  • the "signatureAlgo rithm” field thus serves here as a "second field” 440 for storing the identifier of the second control algorithm and the composite parameters and the "signature” field as a "first field” 438 for storing the associated composite cryptographic data.
  • FIG. 5 shows a scheme of the application of another first control algorithm and a data structure with the composite cryptographic data generated according to this.
  • FIG. 4 illustrates the parallel application of several first cryptographic algorithms to the input data 208
  • FIG. 5 shows the sequential (iterative) application of several first algorithms to the input data.
  • a first cryptographic algorithm A 502 is first applied directly to the input data 208 in order to generate a first ciphertext 508 .
  • This serves as an input to a second cryptographic algorithm B 504 which encrypts the ciphertext 508 to generate another ciphertext 510 .
  • the method can be iteratively applied multiple times until the algorithm last applied returns a ciphertext 510 which is used as composite cryptographic data.
  • the second control algorithm is typically not of the "OR" type, since all second cryptographic algorithms that are complementary to the iteratively applied first cryptographic algorithms must be applied to reconstruct the input data. If even one of these second cryptographic algorithms is missing in the chain, the method cannot be carried out. Nevertheless, an iterative application of the first cryptographic algorithms in the context of the transition to quantum computer-secure methods can also be helpful.
  • the three encryption algorithms applied first could be conventional non-quantum secure encryption methods. The fact that several methods are used increases security. The provider cryptosystem can use these three encryption methods, for example, to provide a composite ciphertext for a recipient cryptosystem that has not yet been upgraded.
  • the provider cryptosystem can contain an additional first control algorithm, which also provides a fourth level of encryption with the quantum computer-secure encryption algorithm.
  • This composite ciphertext generated in four iterative encryption steps, can be sent to another recipient cryptosystem, which has four complementary decryption methods, including a quantum computer-secure decryption method.
  • the ciphertext 510 represents the composite cryptographic data or a part thereof and is stored in a first field 438 of a predefined data structure 234 in which cryptographic data of a single cryptographic algorithm is stored by default.
  • the identifier 410 of the "DATA ENCRYPTION-ITERATIVE" control algorithm and associated parameters, in particular the algorithm identifiers of the functionally complementary decryption algorithms C, B and A with the respective required component parameters 414 are stored in a second field 440 of this data structure, in which standard identifiers and Parameters of a single cryptographic algorithm are stored.
  • the recipient cryptosystem Since the recipient cryptosystem has direct access to the algorithm identifiers of all algorithms A, B, C required for decryption in the second field 440, it can decide to carry out decryption and the corresponding second control algorithm. must not be carried out from the outset if it does not support at least one of the required second cryptographic algorithms.
  • FIG. 6 shows a scheme for the application of a further first control algorithm and a data structure with the composite cryptographic data generated according to this.
  • the application of this first control algorithm is similar to the algorithm described for Figure 5, with the difference that the component parameters of the respective encryption algorithms together with those from the previously calculated ciphertext of each are used as input to calculate the ciphertext of the next step in the sequence.
  • only algorithm identifiers and component parameters of the encryption algorithm 506 C executed last or of the decryption algorithm to be executed first must be provided as parameters in plain text together with the combined cryptographic data 236 to the recipient cryptosystem, the algorithm identifiers and component parameters of the other encryption or decryption algorithms B, A arise during the decryption.
  • the embodiments according to FIG. 5 are preferred.
  • FIG. 7 shows an exemplary X.509 certificate containing composite cryptographic data and associated parameters from two different control algorithms stored in specific fields (see description of FIG. 4).
  • first field 440 second field 502 encryption algorithm A 504 encryption algorithm B 506 encryption algorithm C

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Datenaustausch zwischen einem Bereitsteller-Kryptosystem (200) und einem Empfänger-Kryptosystem (240), umfassend - Berechnen (104) von zusammengesetzten kryptographischen Daten (236) durch Ausführung von mehreren der ersten kryptographischen Algorithmen (214-224), wobei die zusammengesetzten kryptographischen Daten als Funktion von Eingabedaten (208) berechnet werden, wobei eine Auswahl der mehreren ersten kryptographischen Algorithmen und/oder eine Kombination der mehreren ersten kryptographischen Algorithmen gemäß eines ersten Kontrollalgorithmus (228-232) erfolgt; - Bereitstellung (106) der zusammengesetzten kryptographischen Daten von dem Bereitsteller-Kryptosystem an das Empfänger-Kryptosystem; - Berechnen (110) von Ergebnisdaten (308) durch das Empfänger-Kryptosystem als Funktion der zusammengesetzten kryptographischen Daten durch Anwenden von einem oder mehreren der zweiten kryptographischen Algorithmen (314-324), wobei eine Auswahl und/oder Kombination des einen oder der mehreren zweiten kryptographischen Algorithmen gemäß eines zweiten Kontrollalgorithmus (328-332) erfolgt; und - Automatische Ausführung (112) einer Software- und/oder Hardwarefunktion (310) durch das Empfänger-Kryptosystem in Abhängigkeit von den Ergebnisdaten.

Description

Bereitsteller- und Empfänger-Kryptosysteme mit kombinierten Algorithmen
B e s c h r e i b u n g
Gebiet
Die Erfindung betrifft ein Verfahren und System zum Datenaustausch zwischen zwei kryptographischen Systemen unter Nutzung eines asymmetrischen kryptographi- schen Algorithmus.
Hintergrund
Asymmetrische kryptographische Algorithmen, auch als asymmetrische kryptogra- phische Verfahren bezeichnet, bestehen aus zwei funktional komplementären kryp- tographischen Algorithmen, die von den jeweiligen Teilnehmern des Verfahrens auszuführen sind, wie z.B. Ver- und Entschlüsselung, Signierung und Signaturprü- fung sowie Schlüsselvereinbarungsverfahren. Die besagten Verfahrenstypen sind für sicherheitsbezogene IT-Anwendungen unverzichtbar. Dabei sind derzeit nur we nige asymmetrische kryptographische Verfahren im praktischen Einsatz. Dies dürfte zumindest teilweise dem Umstand geschuldet sein, dass asymmetrische kryptogra phische Verfahren oftmals mehrere, organisatorisch unabhängige Teilnehmer ha ben. Alle Teilnehmer müssen ein bestimmtes asymmetrisches kryptographisches Verfahren unterstützen (z.B. RSA, DSA (Digital Signature Algorithm) oder DH (Diffie Hellmann), und erwarten einen Algorithmenbezeichner des vom jeweils anderen Teilnehmer verwendeten Verfahrens zur Erzeugung der bereitgestellten kryptogra- phischen Daten an definierter Stelle innerhalb hochstandardisierter Datenstrukturen wie z.B. X.509 Zertifikaten.
Die kryptografische Stärke vieler der heute verwendeten Algorithmen - und damit die Sicherheit von IT-basierten Anwendungen, die diese Algorithmen nutzen - wird durch die in den nächsten Jahren erwartete Verfügbarkeit leistungsstarker Quan tencomputer bedroht. Derzeit werden neue asymmetrische kryptographische Ver fahren entwickelt, die voraussichtlich auch der Rechenkraft von Quantencomputern widerstehen können.
Angesichts der großen Vielzahl unterschiedlicher und voneinander abhängiger An wendungen, die asymmetrische kryptographische Verfahren nutzen (z.B. um die Integrität oder Herkunft einer Nachricht zu prüfen oder um Daten und Datenübertra gungskanäle kryptographisch abzusichern) zeichnet sich jedoch ab, dass die Um stellung bestehender IT-Anwendungen und Systeme auf neue, quantensichere Ver fahren, Probleme bereiten wird. Denn IT-Systeme auf Basis asymmetrischer krypto- graphischer Algorithmen sind zumeist Mehrteilnehmersysteme, wobei die verschie denen Teilnehmer unterschiedlichen Organisationen angehören und/oder auf unter schiedlichen Software- und/oder Hardwarearchitekturen aufbauen können. Eine Umstellung eines oder mehrerer Teilnehmer eines solchen Systems auf quantensi chere asymmetrische kryptographische Algorithmen wird also bewirken, dass Teil nehmer, die aus technischen und/oder organisatorischen Gründen nicht schnell ge nug auf die neuen Verfahren umstellen können, nicht mehr kompatibel zu den be reits umgestellten Teilnehmern sind. Beispielsweise wird es in der Zukunft möglich erweise erforderlich sein, die zum Aufbau eines verschlüsselten Übertragungska nals verwendeten kryptographischen Schlüssel (z.B. für SSH und/oder TLS) quan- tensicher zu machen. Angesichts der großen Anzahl und Heterogenität der Client- Computersysteme, zu welchen ein Server-Computersystem ggf. einen geschützten Kanal aufbauen muss, ist absehbar, dass eine konzertierte Umstellung solcher Al gorithmen ein großes technisches Problem darstellt.
In wenigen Jahren wird es jedoch eine Vielzahl asymmetrischer kryptographischer Algorithmen geben, die zur Zeit ihrer Entwicklung als sicher galten, dann aber nicht mehr stark genug sind, um das erforderliche Sicherheitsniveau bereitzustellen.
Bekannt ist ein Versuch, das Problem der Umrüstung von kryptographischen Sys temen auf quantensichere Verfahren dadurch zu lösen, dass alternative Sätze von kryptografischen Materialien in digitale X.509v3-Zertifikate eingebettet werden („Multiple Public-Key Algorithm X.509 Certificates“, 2018, A. Truskovsky, P. Laf- rance, D. Van Geest, S. Fluhrer, P. Kampanakis , M. Ounsworth, S. Mister). Die eingebetteten alternativen kryptografischen Materialien ermöglichen es einer Public Key Infrastructure (PKI), mehrere kryptografische Algorithmen in einem einzigen Objekt zu verwenden, und ermöglichen den Übergang zu den neuen kryptografi schen Algorithmen bei gleichzeitiger Aufrechterhaltung der Rückwärtskompatibilität mit Systemen, die die vorhandenen Algorithmen verwenden. Bei diesem Verfahren werden X.509-Erweiterungen verwendet, um das zusätzliche Material in die Zertifi kate einzubinden.
Ein Problem bei diesem Ansatz ist allerdings die Notwendigkeit, die zur Durchfüh rung der kryptographischen Operationen verwendete Software umzuschreiben, denn die zusätzlichen kryptographischen Daten sind nicht mehr in den Feldern ent halten, in denen die Teilnehmer diese Daten bisher gemäß etablierter kryptographi scher Standards erwarten. Außerdem ist der Ansatz auf X.509-Zertifkate beschränkt und verlangt die Definition von Zertifikatsverifikationen für diese Zertifikate.
Zusammenfassung
Der Erfindung liegt die Aufgabe zugrunde, ein verbessertes Verfahren und System zum Datenaustausch zwischen einem Bereitsteller-Kryptosystem und einem Emp- fänger-Kryptosystem zu schaffen. Die der Erfindung zugrunde liegenden Aufgaben werden jeweils mit den Merkmalen der unabhängigen Patentansprüche gelöst. Aus führungsformen der Erfindung sind in den abhängigen Ansprüchen angegeben. Die im Folgenden aufgeführten Ausführungsformen sind frei miteinander kombinierbar, sofern sie sich nicht gegenseitig ausschließen.
In einem Aspekt betrifft die Erfindung ein Verfahren zum Datenaustausch zwischen einem Bereitsteller-Kryptosystem und einem Empfänger-Kryptosystem. Das Verfah ren umfasst:
-Berechnen von zusammengesetzten kryptographischen Daten durch Ausführung von mehreren ersten kryptographischen Algorithmen, wobei die zusammengesetz ten kryptographischen Daten als Funktion von Eingabedaten berechnet werden, wobei eine Auswahl der mehreren ersten kryptographischen Algorithmen und/oder eine Kombination der mehreren ersten kryptographischen Algorithmen gemäß ei nes ersten Kontrollalgorithmus erfolgt;
-Bereitstellung der zusammengesetzten kryptographischen Daten von dem Bereit steller-Kryptosystem an das Empfänger-Kryptosystem;
-Berechnen von Ergebnisdaten durch das Empfänger-Kryptosystem als Funktion der zusammengesetzten kryptographischen Daten durch Anwenden von einem oder mehreren zweiten kryptographischen Algorithmen, wobei eine Auswahl und/oder Kombination des einen oder der mehreren zweiten kryptographischen Algorithmen gemäß eines zweiten Kontrollalgorithmus erfolgt; und -Automatische Ausführung einer Software- und/oder Flardwarefunktion durch das Empfänger-Kryptosystem in Abhängigkeit von den Ergebnisdaten.
Bei den Eingabedaten kann es sich z.B. um einen Datenwert, einen Datensatz, ei nen Schlüssel, einen Teil eines Schlüssels, eine Nachricht, einen Teil der Nachricht oder einen von dem Datenwert, dem Datensatz, dem Schlüssel, der Nachricht oder einem Teil der Nachricht abgeleiteten Wert (z.B. ein Flash-Wert der Nachricht) han deln.
Bei den Ergebnisdaten kann es sich zum Beispiel um eine rekonstruierte Kopie von zumindest Teilen der Eingabedaten, um ein Ergebnis einer Signaturprüfung, um einen gemeinsam vereinbarten oder zufälligen Schlüssel oder dergleichen handeln.
Die Bereitstellung der zusammengesetzten kryptographischen Daten kann z.B. di rekt über eine Schnittstelle zwischen den beiden Kryptosystemen erfolgen, also z.B. dadurch, dass das Bereitsteller-Kryptosystem eine Nachricht mit den zusammenge- setzten kryptographischen Daten erzeugt und diese an das Empfänger- Kryptosystem übermittelt, z.B. über ein Netzwerk, z.B. das Internet.
Alternativ dazu kann das Bereitsteller-Kryptosystem die zusammengesetzten kryp tographischen Daten indirekt bereitstellen, z.B. durch Speicherung der zusammen gesetzten kryptographischen Daten in ein von dem Empfänger-Kryptosystem lesba res Speichermedium. Beispielsweise können die Daten in einer Datenbank, z.B. einem Archiv, gespeichert werden. Das Empfänger-Kryptosystem liest dann die zu sammengesetzten kryptographischen Daten aus der Datenbank.
In der Regel handelt es sich bei dem Bereitsteller-Kryptosystem und dem Empfän ger-Kryptosystem um unterschiedliche Kryptosysteme. Es ist jedoch auch gemäß mancher Ausführungsformen möglich, dass das Bereitsteller-Kryptosystem und das Empfänger-Kryptosystem identisch sind. Beispielsweise kann das Bereitsteller- Kryptosystem die zusammengesetzten kryptographischen Daten zunächst durch Verschlüsselung von Eingabedaten erzeugen und in eine Datenbank speichern. Zu einem späteren Zeitpunkt, ggf. nach Jahren, greift das gleiche Kryptosystem in der Funktion als Empfänger-Kryptosystem wieder auf diese Daten lesend zu und muss hierbei die Daten wieder entschlüsseln.
Beispielsweise können Ausführungsformen der Erfindung dazu genutzt werden, RSA-Kryptosysteme quantencomputersicher zu machen. RSA ist ein asymmetri sches kryptographisches Verfahren, das von RSA-Kryptosystemen sowohl zum Verschlüsseln als auch zum digitalen Signieren verwendet werden kann. Es ver wendet ein Schlüsselpaar bestehend aus einem privaten Schlüssel, der zum Ent schlüsseln oder Signieren von Daten verwendet wird, und einem öffentlichen Schlüssel, mit dem man verschlüsselt oder Signaturen prüft. Der private Schlüssel wird geheim gehalten und kann nicht aus dem öffentlichen Schlüssel berechnet werden. Die Sicherheit des RSA Verfahrens beruht im Wesentlichen auf der Schwierigkeit der Faktorisierung großer Zahlen. Diese Sicherheit ist durch das Auf kommen von Quantencomputern in Frage gestellt, sodass Ausführungsformen der Erfindung dazu genutzt werden können, RSA Algorithmen als erste und/oder zweite kryptographische Algorithmen zusammen mit anderen, quantencomputersicheren Algorithmen zu verwenden, um zusammengesetzte kryptographische Signaturen zu erzeugen bzw. zu verarbeiten. Analog können Ausführungsformen der Erfindung auch dazu genutzt werden, Algo rithmen wie DSA und DH, deren Sicherheit auf der Schwierigkeit des Findens des diskreten Logarithmus beruht, sowie die Algorithmen ECDSA und ECDH, deren Si cherheit auf der Schwierigkeit des Findens des diskreten Logarithmus auf ellipti schen Kurven besteht, mit quantencomputersicheren Algorithmen zu ersetzen.
In manchen Ausführungsformen stellt das Bereitsteller-Kryptosystem nur die zu sammengesetzten kryptographischen Daten und vorzugsweise auch einen Identifi- kator des zweiten Kontrollalgorithmus sowie optional Parameter für die Durchfüh rung des zweiten Kontrollalgorithmus bereit. In anderen Ausführungsformen werden zusätzlich noch weitere Daten bereitgestellt. Beispielsweise können die zusammen gesetzten kryptographischen Daten eine zusammengesetzte Signatur einer Nach richt sein. In diesem Fall wird vorzugsweise neben der zusammengesetzten Signa tur auch das elektronische Dokument bereitgestellt, für welches die Signatur erzeugt wurde.
Ausführungsformen der Erfindung können den Vorteil haben, dass sowohl das Be reitsteller-Kryptosystem als auch das Empfänger-Kryptosystem hochgradig flexibel sind. Sowohl auf dem Bereitsteller-Kryptosystem als auch auf dem Empfänger- Kryptosystem können mehrere, z.B. jeweils funktional komplementäre Algorithmen, die zu verschiedenen asymmetrischen kryptographischen Verfahren gehören, im plementiert sein. Diese werden nun gemäß den Angaben im ersten bzw. zweiten Kontrollalgorithmus ausgewählt und/oder kombiniert, um die zusammengesetzten kryptographischen Daten zu erzeugen. Die zusammengesetzten kryptographischen Daten können also die Ergebnisse von zwei oder mehr verschiedenen ersten kryp tographischen Algorithmen beinhalten. Dies kann zum Beispiel bedeuten, dass die zusammengesetzten kryptographischen Daten mehrere digitale Signaturen enthal ten, die für das gleiche elektronische Dokument mittels verschiedener Signaturalgo rithmen (erste kryptographische Algorithmen) erzeugt wurden. Die Übermittlung ei ner solchen zusammengesetzten Signatur an das Empfängersystem hat den Vorteil, dass zumindest dann, wenn das Empfängersystem zumindest einen Signaturprüfal gorithmus unterstützt, der zu einem zur Erzeugung der zusammengesetzten Signa tur verwendeten Signaturerzeugungsalgorithmen korrespondiert, das Empfänger system unter Umständen bereits in der Lage ist, die Signatur zu prüfen. In analoger Weise kann es sich bei den zusammengesetzten kryptographischen Daten auch um einen zusammengesetzten verschlüsselten Datensatz handeln, der durch Ver schlüsselung von Eingangsdaten mittels mehrerer kryptographischer Schlüssel (pa rallel oder sequenziell) erzeugt wurde, oder um einen Kommunikationsschlüssel, der durch Kombination mehrerer teilnehmerspezifischer Schlüsselvereinbarungsal gorithmen erzeugt wurde. Da die übermittelten zusammengesetzten kryptographi- schen Daten sich aus dem kryptographischen Output von zwei oder mehr unter schiedlichen ersten kryptographischen Algorithmen zusammensetzen, ist der Infor mationsgehalt der übermittelten Daten höher, als wenn nur der Output eines einzel nen kryptographischen Algorithmus übertragen würde. Dies ermöglicht es dem Empfänger-Kryptosystem, auf sehr flexible Weise zu reagieren. Falls zum Beispiel die Sicherheitsanforderungen bei einer bestimmten Anwendung sehr hoch sind, kann der zweite Kontrollalgorithmus so spezifiziert sein, dass gleich mehrere zweite kryptographische Algorithmen zwingend erfolgreich auf die erhaltenen zusammen gesetzten kryptographischen Daten angewendet werden müssen, damit ein korrek tes Ergebnis oder eine Bestätigung der Integrität des signierten Dokuments erhalten wird.
Nach Ausführungsformen spezifiziert der erste Kontrollalgorithmus eine Auswahl und/oder Sequenz von ersten kryptographischen Algorithmen, die funktional kom plementär ist zu der Auswahl und/oder Sequenz des oder der zweiten kryptographi schen Algorithmen, die in dem zweiten Kontrollalgorithmus spezifiziert sind.
Beispielsweise kann das Bereitstei lungs-Kryptosystem mehrere Verschlüsselungs algorithmen V1-V10 beinhalten. Das Empfänger-Kryptosystem kann mehrere Ent schlüsselungsalgorithmen E1-E10 beinhalten, die jeweils zu den entsprechenden Verschlüsselungsalgorithmen komplementär sind. Beispielsweise kann E1 ein von V1 gebildetes Chiffrat entschlüsseln, E2 kann ein von V2 gebildetes Chiffrat ent schlüsseln, usw. Der erste Kontrollalgorithmus spezifiziert zum Beispiel eine Se quenz von drei Verschlüsselungsalgorithmen V1 , V2, V3, die gemäß dem ersten Kontrollalgorithmus iterativ auf die Eingabedaten wie folgt angewandt werden:
V1 (Eingabedaten)=Ausgabe1 ; V2(Ausgabe1 )=Ausgabe2;
V3(Ausgabe2)=Ausgabe3=zusammengesetzte kryptographische Daten. Ein zu die sem ersten Kontrollalgorithmus funktional komplementärer zweiter Kontrollalgorith mus würde eine Sequenz von drei funktional komplementären Entschlüsselungsal gorithmen E1, E2, E3 spezifizieren, die iterativ auf die zusammengesetzten krypto- graphischen Daten wie folgt angewandt werden: E3(zusammengesetzte kryptogra- phische Daten) = entschlüsselte Datenl; E2(entschlüsselte Datenl) = entschlüssel te Daten2; E1 (entschlüsselte Daten2) = entschlüsselte Daten3= rekonstruierte Ein gabedaten.
Anstelle einer iterativen Verschlüsselung können die einzelnen Verschlüsselungsal gorithmen auch parallel angewandt werden, sodass die zusammengesetzten kryp- tographischen Daten zum Beispiel als Konkatenation der einzelnen Chiffrate gebil det werden können. In diesem Fall könnte der zweite Kontrollalgorithmus einen oder mehrere Entschlüsselungsschlüssel identifizieren, die dann auf das jeweils korres pondierende Chiffrat derart kombiniert angewendet werden, dass die ursprünglichen Eingabedaten oder Teile davon, rekonstruiert werden.
Nach Ausführungsformen der Erfindung implementiert das Bereitsteller- Kryptosystem mehrere erste Kontrollalgorithmen.
Zusätzlich oder alternativ dazu implementiert das Empfänger-Kryptosystem mehrere zweite Kontrollalgorithmen.
Eine große Anzahl von ersten und/oder zweiten Kontrollalgorithmen kann vorteilhaft sein, da dadurch auf eine sehr flexible Art und Weise zwischen dem Bereitsteller und dem Empfänger-Kryptosystem vereinbart werden kann, welche kryptographi- schen Algorithmen in welcher Sequenz anzuwenden sind, um den Datenaustausch in gewünschter Weise durchzuführen. Insbesondere kann es gemäß Ausführungs formen der Erfindung nicht mehr erforderlich sein, Sourcecode auf der Bereitsteller seite oder Empfängerseite zu ändern, um die Erstellung und/oder Verarbeitung der zusammengesetzten kryptographischen Daten zu ändern. Solche Änderungen kön nen aus verschiedenen Gründen erforderlich sein. Beispielsweise kann es sich her aussteilen, dass ein bestimmter kryptographischer Algorithmus nicht mehr sicher genug ist oder aus anderen Gründen technisch problematisch ist. In diesem Fall ist es möglich, innerhalb des ersten Kontrollalgorithmus lediglich einen Algorithmenbe zeichner der bei der Erstellung der zusammengesetzten kryptographischen Daten verwendeten ersten kryptographischen Algorithmen zu ändern. Vorzugsweise liegen die ersten und/oder zweiten Kontrollalgorithmen in Form editierbarer Anweisungen vor, zum Beispiel als Skriptdatei, Regel oder Konfigurationsdatei. Es ist auch mög- lieh, dass der erste Kontrollalgorithmus zur Erzeugung der zusammengesetzten kryptographischen Daten eine größere Anzahl an ersten kryptographischen Algo rithmen verwendet als der zweite Kontrollalgorithmus zur Verarbeitung dieser Da ten. Dies kann den Vorteil haben, dass mehrere verschiedene erste kryptographi- sche Algorithmen des gleichen Verfahrenstyps (zum Beispiel mehrere verschiedene Signierungsalgorithmen oder mehrere verschiedene Verschlüsselungsalgorithmen oder mehrere verschiedene bereitstellerseitige Schlüsselvereinbarungsalgorithmen) verwendet werden, um die zusammengesetzten kryptographischen Daten zu erzeu gen. Zumindest falls die verschiedenen ersten Algorithmen parallel verwendet wer den, reicht es gegebenenfalls aus, dass in dem zweiten Kontrollalgorithmus ein ein ziger zweiter kryptographischer Algorithmus spezifiziert ist, der in der Lage ist, zu mindest einen Teil der zusammengesetzten kryptographischen Daten korrekt zu verarbeiten.
Dies macht es möglich, dass verschiedene Empfänger-Kryptosysteme mit unter schiedlichen Sicherheitsniveaus und gegebenenfalls auch unterschiedlichen zwei ten kryptographischen Algorithmen auf Basis der gleichen zusammengesetzten kryptographischen Daten arbeiten können. Je größer die Anzahl der ersten Algo rithmen, die vom ersten Kryptosystem unterstützt werden und/oder die zur Bildung der zusammengesetzten kryptographischen Daten verwendet werden, desto höher die Wahrscheinlichkeit, dass das Empfänger-Kryptosystem die zusammengesetzten kryptographischen Daten oder zumindest einen Teil davon korrekt verarbeiten kann. Dies erleichtert auch die großflächige, viele Teilnehmer betreffende Umstellung auf quantensichere kryptographische Algorithmen, denn die zusammengesetzten kryp tographischen Daten können Teildaten beinhalten, die mit sicheren, auch durch Quantencomputer nicht knackbaren Verfahren erzeugt wurden, auch dann, wenn diese Verfahren auf manchen Empfänger-Kryptosystemen noch nicht verfügbar sind, denn diese Empfänger-Systeme haben die Möglichkeit, diejenigen Teildaten der zusammengesetzten kryptographischen Daten zu verwenden, die mit dem ver alteten und gegebenenfalls nicht mehr hinreichend sicheren kryptographischen Ver fahren erzeugt wurden. Somit können verschiedene Teilnehmer mit verschiedenen Sicherheitsniveaus nebeneinander existieren und zusammen verwendet werden, ohne dass die Notwendigkeit besteht, alle Teilnehmer gleichzeitig auf ein einheitli ches Sicherheitsniveau basierend auf einem einheitlichen Verfahren zu bringen. Nach Ausführungsformen ist mindestens einer der ersten kryptographischen Algo rithmen ein Algorithmus zur Verschlüsselung, Signierung, oder Schlüsselvereinba rung. Mindestens einer der ein oder mehreren zweiten kryptographischen Algorith men ist ein zu dem zumindest einen ersten kryptographischen Algorithmus kom plementärer Algorithmus zur Entschlüsselung, Signaturprüfung und Schlüsselver einbarung
Zusätzlich oder alternativ ist jedem der ersten kryptographischen Algorithmen ein Algorithmenbezeichner (auch „Algorithmenidentifikator“) zugewiesen.
Das Bereitsteller-Kryptosystem ist gemäß Ausführungsformen dazu ausgebildet, die zusammengesetzten kryptographischen Daten zusammen mit Parametern für die Ausführung des zweiten Kontrollalgorithmus bereitzustellen.
Die Parameter für die Ausführung des zweiten Kontrollalgorithmus umfassen gemäß Ausführungsformen der Erfindung Algorithmenbezeichner der zur Verarbeitung der zusammengesetzten kryptographischen Daten vom zweiten Kontrollalgorithmus zu verwendenden zweiten kryptographischen Algorithmen. Beispielsweise können die Algorithmenbezeichner der zweiten kryptographischen Algorithmen identisch zu den Algorithmenbezeichnern der zur Erzeugung der zusammengesetzten kryptographi schen Daten verwendeten ersten kryptographischen Algorithmen sein. Beispiels weise kann der Algorithmenbezeichner des „RSA“ Verfahrens sowohl vom ersten Kontrollalgorithmus genutzt werden, um einen ersten kryptographischen Algorith mus zu identifizieren, der die bereitstellerseitigen Schritte des RSA Verfahrens im plementiert, als auch vom zweiten Kontrollalgorithmus genutzt werden, um einen zweiten kryptographischen Algorithmus zu identifizieren, der die empfängerseitigen Schritte des RSA Verfahrens implementiert.
Die Parameter für die Ausführung des zweiten Kontrollalgorithmus umfassen gemäß Ausführungsformen der Erfindung ein oder mehrere Parameter, welche die einzel nen zweiten kryptographischen Algorithmen steuern und z.B. als Argumente dieser zweiten kryptographischen Algorithmen übergeben werden. Diese Parameter wer den im Folgenden auch „Komponentenparameter“ bezeichnet. Je nach kryptogra- phischem Verfahren können die Komponentenparameter identisch oder unter- schiedlich zu den von den korrespondierenden ersten kryptographischen Algorith men verwendeten Komponentenparametern sein.
In manchen Ausführungsformen umfassen die Parameter für die Ausführung des zweiten Kontrollalgorithmus zudem Eingabeparameter für den zweiten Kontrollalgo- rithmus, die von diesem direkt verwendet werden, also nicht als Eingabeparameter einzelner zweiter kryptographischer Algorithmen dienen. Diese Parameter, die die Ausführung des zweiten Kontrollalgorithmus direkt steuern, werden im Folgenden Kontrollparameter genannt. Die Kontrollparameter können z.B. festlegen, wie viele zweite kryptographische Algorithmen mindestens erfolgreich ausgeführt werden müssen, damit das erhaltene Ergebnis als valide gilt.
Gemäß Ausführungsformen ist der zweite Kontrollalgorithmus dazu ausgebildet, den oder die für die Berechnung der Ergebnisdaten verwendeten zweiten krypto graphischen Algorithmen jeweils anhand eines in den Parametern enthaltenen Algo rithmenbezeichner auszuwählen.
Vorzugsweise ist der Algorithmenbezeichner des ersten und des zweiten kryptogra phischen Algorithmus, die funktional zueinander komplementär sind, identisch und bezeichnet ein asymmetrisches kryptographisches Verfahren, von welchem der ers te kryptographische Algorithmus die bereitstellerseitigen Schritte implementiert und von welchem der zweite kryptographische Algorithmus die empfängerseitigen Schritte implementiert.
Nach Ausführungsformen der Erfindung sind die Algorithmenbezeichner des ersten und des zweiten kryptographischen Algorithmus jeweils ausgewählt aus einer Grup pe umfassend:
- ein Algorithmenbezeichner eines Schlüsselvereinbarungsalgorithmus zwischen einem ersten und einem zweiten Teilnehmersystem, wobei der durch den Algo rithmenbezeichner identifizierte erste kryptographische Algorithmus die vom ers ten Teilnehmersystem ausgeführten Schritte zur Schlüsselvereinbarung imple mentiert und wobei der funktional komplementäre zweite kryptographische Algo rithmus die vom zweiten Teilnehmersystem ausgeführten Schritte zur Schlüssel vereinbarung implementiert; - ein Algorithmenbezeichner eines asymmetrischen kryptographischen Algorithmus zur verschlüsselten Übertragung von einem ersten Teilnehmersystem an ein zweites Teilnehmersystem, wobei der durch den Algorithmenbezeichner identifi zierte erste kryptographische Algorithmus die vom ersten Teilnehmersystem aus geführten Schritte zur Verschlüsselung von Daten in ein Chiffrat implementiert und wobei der funktonal komplementäre zweite kryptographische Algorithmus die vom zweiten Teilnehmersystem ausgeführten Schritte zur Entschlüsselung des Chiffrats implementiert;
- ein Algorithmenbezeichner eines asymmetrischen kryptographischen Algorithmus zur Erstellung einer digitalen Signatur durch ein erstes Teilnehmersystem und zur Prüfung dieser Signatur durch ein zweites Teilnehmersystem, wobei der durch den Algorithmenbezeichner identifizierte erste kryptographische Algorithmus die vom ersten Teilnehmersystem ausgeführten Schritte zur Erzeugung der Signatur implementiert und wobei der funktonal komplementäre zweite kryptographische Algorithmus die vom zweiten Teilnehmersystem ausgeführten Schritte zur Prü fung der Signatur implementiert.
Die drei oben genannten Algorithmentypen gehören zu den wichtigsten Algorithmen verteilter kryptographischer Systeme. Sie alle umfassen zumindest einige Algorith men, von welchen auszugehen ist, dass diese in naher Zukunft als unsicher einge stuft werden. Ausführungsformen der Erfindung können somit eine große Anzahl unterschiedlicher Kryptosysteme und deren Umstellung auf andere, ggf. sicherere kryptographische Algorithmen unterstützen.
Nach Ausführungsformen spezifiziert der erste Kontrollalgorithmus, dass die mehre ren ersten kryptographischen Algorithmen sequentiell auf die Ausgabe des jeweils zuvor ausgeführten ersten kryptographischen Algorithmus angewendet werden. Al ternativ dazu kann der erste Kontrollalgorithmus spezifizieren, dass die mehreren ersten kryptographischen Algorithmen parallel auf die Eingabedaten oder Teile der Eingabedaten angewendet werden. Es ist möglich, dass das Bereitsteller- Kryptosystem mehrere erste Kontrollalgorithmen beinhaltet, von denen einige eine parallele und andere eine sequentielle Ausführung mehrerer erster kryptographi scher Algorithmen vorsehen. Nach Ausführungsformen spezifiziert der zweite Kontrollalgorithmus, dass die meh reren zweiten kryptographischen Algorithmen sequentiell auf die Ausgabe des je weils zuvor ausgeführten zweiten kryptographischen Algorithmus angewendet wer den oder dass die mehreren zweiten kryptographischen Algorithmen parallel auf die zusammengesetzten kryptographischen Daten oder Teile der zusammengesetzten kryptographischen Daten angewendet werden.
Eine sequentielle Ausführung von Algorithmen kann in Anwendungsszenarien vor teilhaft sein, wo ein besonders hohes Maß an Sicherheit gefordert wird. Denn so wohl die Bereitstellerseite als auch die Empfängerseite müssen gleich mehrere kryptographische Algorithmen unterstützen und ausführen, um Eingabedaten kor rekt in die zusammengesetzten kryptographischen Daten zu transformieren bzw. diese Eingabedaten anhand der zusammengesetzten kryptographischen Daten zu rekonstruieren oder zu verifizieren. Eine parallele Ausführung von Algorithmen kann in Anwendungsszenarien vorteilhaft sein, wo Kompatibilität mit einer großen Anzahl heterogener Empfängersysteme, die ggf. unterschiedliche Algorithmen des gleichen Typs unterstützen, hergestellt werden soll. Denn bei paralleler Anwendung der ers ten kryptographischen Algorithmen umfassen die zusammengesetzten kryptogra phischen Daten vorzugsweise Teildaten, die jeweils einzeln für sich von einem ent sprechenden kryptographischen Algorithmus verarbeitet werden können unabhän gig davon, ob das Empfängersystem sämtliche zweite kryptographische Algorith men unterstützt, die zur Verarbeitung aller dieser Teildaten erforderlich wären. Dies kann den Vorteil haben, ein besonders flexibel anpassbares Datenaustauschverfah ren für Kryptosysteme für verschiedenste Anwendungen und Sicherheitserforder nisse bereitzustellen.
Nach Ausführungsformen ist der zweite Kontrollalgorithmus ein zu dem ersten Kon trollalgorithmus komplementärer Algorithmus, der spezifiziert, dass die mehreren zweiten kryptographischen Algorithmen auf funktional komplementäre sequentielle oder parallele Weise auf die zusammengesetzten kryptographischen Daten und/oder die Ausgabe des jeweils zuvor angewendeten zweiten Algorithmus anzu wenden sind, wie sie in dem ersten Kontrollalgorithmus spezifiziert ist. Beispielswei se kann der erste Kontrollalgorithmus eine sequentielle Anwendung der ersten Ver schlüsselungsalgorithmen V1 , V2 und V3 vorsehen und der zweite Kontrollalgorith- mus eine sequentielle Anwendung der dazu korrespondierenden Entschlüsselungs algorithmen E3, E2 und E1 vorsehen.
Nach Ausführungsformen der Erfindung enthält mindestens der erste Kontrollalgo- rithmus Boolsche Operatoren und/oder arithmetische Operatoren, welche mehrere der ersten kryptographischen Algorithmen miteinander verbinden, wobei die Opera toren spezifizieren, wie die kryptographischen Daten, die von den einzelnen ersten kryptographischen Algorithmen ausgegeben werden, zu kombinieren sind, um die zusammengesetzten kryptographischen Daten zu erhalten. Zusätzlich oder alterna tiv dazu enthält der zweite Kontrollalgorithmus Boolsche Operatoren und/oder arithmetische Operatoren, welche mehrere der zweiten kryptographischen Algorith men so miteinander verbinden, dass deren kombinierte Anwendung auf die übermit telten zusammengesetzten kryptographischen Daten und/oder auf eine Ausgabe eines zuvor ausgeführten zweiten kryptographischen Algorithmus zu einer funktional zu der Ausführung der ersten kryptographischen Algorithmen komplementären Da tenverarbeitung führt.
Beispielsweise können die ersten (oder zweiten) kryptographischen Algorithmen bereitstellerseitige (oder empfängerseitige) Schritte verschiedener kryptographi- scher Schlüsselvereinbarungsschlüssel implementieren. Der erste (oder zweite) Kontrollalgorithmus kann Anweisungen und arithmetische Operatoren enthalten, die festlegen, wie die von den einzelnen ersten (oder zweiten) kryptographischen Algo rithmen erzeugten Schlüssel zu einem „Endschlüssel“ kombiniert werden können. Beispielsweise kann die Kombination bitweise durch XOR Kombination erfolgen. Es ist auch möglich, dass ein Bit eines bestimmten Schlüssels (oder mehrerer der Schlüssel) mit einem Faktor (z.B. „3“ oder eine beliebige andere Zahl) gemäß einem arithmetischen Operator verschränkt wird (z.B. durch Multiplikation oder Addition). Somit können eine Vielzahl von ersten und zweiten Kontrollalgorithmen definiert werden, die funktional zueinander korrespondieren müssen und z.B. bei Anwen dungen zum Einsatz kommen können, wo das Wissen um einen bestimmten Kon trollalgorithmus (und dessen exakte Operatoren und Faktoren) zum Nachweis der Identität oder der Berechtigung verwendet wird. Nach Ausführungsformen der Erfin dung haben der erste und/oder zweite Kontrollalgorithmus einen Identifikator. Nach bevorzugten Ausführungsformen der Erfindung haben der erste und ein zu diesem funktional komplementärer zweiter Kontrollalgorithmus einen gemeinsamen Identifi- kator.
Dieser Identifikator (und die dazu korrespondierende Funktionalität der Kontrollalgo- rithmen) ist nach Ausführungsformen der Erfindung als einer der folgenden Identifi- katoren ausgebildet (wobei das Bereitsteller-Kryptosystem und/oder das Empfän- ger-Kryptosystem mehrere Kontrollalgorithmen beinhalten können, die verschiedene der nachfolgend genannten Identifikatoren und Funktionen unterstützten):
„SIGNATUR-UND“:
Der SIGNATUR-UND Identifikator identifiziert einen ersten Kontrollalgorithmus des Bereitsteller-Kryptosystems. Dieser erste Kontrollalgorithmus spezifiziert, mittels eines oder mehrerer erster kryptographischer Algorithmen, die jeweils einen Signie rungsalgorithmus implementieren, jeweils eine Signatur zu berechnen.
Der SIGNATUR-UND Identifikator identifiziert einen zweiten Kontrollalgorithmus des Empfänger-Kryptosystem, welcher spezifiziert, mittels eines oder mehrerer zweiter kryptographischer Algorithmen, die jeweils einen Signaturprüfalgorithmus implemen tieren, jeweils eine Signatur zu prüfen, die mittels eines zu diesem Signaturprüfalgo rithmus korrespondierenden (also funktional komplementären) Signierungsalgorith mus erstellt wurde. Der zweite Kontrollalgorithmus spezifiziert, dass die Ergebnisda ten so berechnet werden, dass diese die Integrität und/oder Authentizität der zu sammengesetzten kryptographischen Daten genau dann bestätigen, wenn alle von den Signaturprüfalgorithmen durchgeführten Signaturprüfungen jeweils ergeben, dass die jeweils geprüfte Signatur valide ist.
„SIGNATUR-ODER“:
Der SIGNATUR-ODER Identifikator identifiziert einen ersten Kontrollalgorithmus des Bereitsteller-Kryptosystems. Dieser erste Kontrollalgorithmus spezifiziert, mittels eines oder mehrerer erster kryptographischer Algorithmen, die jeweils einen Signie rungsalgorithmus implementieren, jeweils eine Signatur zu berechnen. Der SIGNATUR-ODER Identifikator identifiziert einen zweiten Kontrollalgorithmus des Empfänger-Kryptosystems. Der zweite Kontrollalgorithmus spezifiziert, mittels eines oder mehrerer zweiter kryptographischer Algorithmen, die jeweils einen Sig naturprüfalgorithmus implementieren, jeweils eine Signatur zu prüfen, die mittels eines zum Signaturprüfalgorithmus korrespondierenden Signierungsalgorithmus erstellt wurde, mindestens solange, bis zumindest einer der Signaturprüfalgorithmen zu dem Ergebnis kommt, dass die Signatur valide ist oder bis alle Signaturprüfalgo rithmen des Empfänger-Kryptosystems durchgeführt wurden. Die Ergebnisdaten werden so berechnet werden, dass diese die Integrität und/oder Authentizität der zusammengesetzten kryptographischen Daten genau dann bestätigen, wenn min destens einer der Signaturprüfalgorithmen zum Ergebnis hat, dass die jeweils ge prüfte Signatur valide ist.
„SIGNATUR K aus N“:
Der SIGNATUR K aus N Identifikator identifiziert einen ersten Kontrollalgorithmus des Bereitsteller-Kryptosystems. Dieser erste Kontrollalgorithmus spezifiziert, mittels eines oder mehrerer erster kryptographischer Algorithmen, die jeweils einen Signie rungsalgorithmus implementieren, jeweils eine Signatur zu berechnen.
Der SIGNATUR K aus N Identifikator identifiziert einen zweiten Kontrollalgorithmus des Empfänger-Kryptosystem. Der zweite Kontrollalgorithmus spezifiziert, mittels K zweiter kryptographischer Algorithmen, die jeweils einen Signaturprüfalgorithmus implementieren, jeweils eine Signatur zu prüfen, die mittels eines korrespondieren den Signierungsalgorithmus erstellt wurde, mindestens solange, bis zumindest K der Signaturprüfalgorithmen zu dem Ergebnis kommen, dass die jeweils geprüfte Signatur valide ist oder bis alle der Signaturprüfalgorithmen durchgeführt wurden.
Die Ergebnisdaten werden so berechnet, dass diese die Integrität und/oder Authen tizität der zusammengesetzten kryptographischen Daten genau dann bestätigen, wenn mindestens K der Signaturprüfalgorithmen zum Ergebnis haben, dass die je weils geprüfte Signatur valide ist, wobei K eine Zahl größer 0, vorzugsweise größer 1 ist. K und N sind dabei jeweils ganze Zahlen größer 0, wobei N größer oder gleich zu K ist.
Das „Signatur K aus N“ Verfahren ist ein Beispiel dafür, dass die parametrischen Vorgaben zweier funktional komplementärer erster und zweiter Kontrollalgorithmen unterschiedlich sein können. Beispielsweise hat der Parameter „K“ beim Bereitstel lersystem keine Funktion. Beim Empfängersystem legt es die Mindestanzahl zweiter kryptographischer Algorithmen fest, die erfolgreich auf die zusammengesetzten kryptographischen Daten angewandt werden müssen, das Verfahren (z.B. Signa turprüfung, Schlüsselvereinbarung, Entschlüsselung, etc.) erfolgreich abschließen zu können.
„SCHLÜSSELVEREINBARUNG -AGGREGAT“,
Der SCHLÜSSELVEREINBARUNG -AGGREGAT Identifikator identifiziert einen ersten Kontrollalgorithmus des Bereitsteller-Kryptosystems. Dieser erste Kontrollal- gorithmus spezifiziert, mittels eines oder mehrerer erster kryptographischer Algo rithmen, die jeweils bereitstellerseitige Schlüsselvereinbarungsschritte gemäß eines bestimmten Schlüsselvereinbarungsverfahrens implementieren, jeweils einen kryp tographischen Schlüssel zu berechnen, und einen Endschlüssel durch Aggregation aller dieser Schlüssel zu berechnen. Beispielsweise kann die Aggregation folgende Schritte umfassen: Bringen aller Schlüssel auf eine einheitliche Länge, z.B. durch Kürzen einiger der Schlüssel auf eine vordefinierte Länge und/oder Auffüllen einiger der Schlüssel mit vordefinierten Werten auf die gewünschte Länge; bitweises Alig- nen (zur Deckung bringen) der Schlüssel der vordefinierten Länge; und Aggregation der Bitinformation der alignierten Schlüsseln bitweise mittels einer XOR Funktion oder einer anderen Aggregationsfunktion. Das Ergebnis ist ein Endschlüssel der gewünschten Länge. Anstatt der XOR Funktion können auch jegliche andere Funk tion verwendet werden, die die Bits mehrerer Schlüssel an einer bestimmten Positi on auf definierte Weise aggregiert.
Der SCHLÜSSELVEREINBARUNG-AGGREGAT Identifikator identifiziert einen zweiten Kontrollalgorithmus des Empfänger-Kryptosystem. Der zweite Kontrollalgo rithmus spezifiziert, mittels eines oder mehrererzweiter kryptographischer Algorith men, die jeweils empfängerseitige Schritte eines Schlüsselvereinbarungsverfahrens implementieren, jeweils einen kryptographischen Schlüssel zu berechnen, und ei nen Endschlüssel durch Aggregation aller dieser Schlüssel zu berechnen.
DATENVERSCHLÜSSELUNG-ITERATIV
Der DATENVERSCHLÜSSELUNG-ITERATIV Identifikator identifiziert einen ersten Kontrollalgorithmus des Bereitsteller-Kryptosystems. Der erste Kontrollalgorithmus spezifiziert, mittels eines oder mehrerer erster kryptographischer Algorithmen, die jeweils einen Verschlüsselungsalgorithmus implementieren, jeweils ein Chiffrat gemäß eines bestimmten Verschlüsselungsverfahrens zu berechnen. Die Ausfüh rung der Verschlüsselungsalgorithmen erfolgt sequentiell. Der erste ausgeführte Verschlüsselungsalgorithmus verwendet die Eingabedaten als Input und alle nach folgend ausgeführten Verschlüsselungsalgorithmen verwenden jeweils das vom zu vor ausgeführten Verschlüsselungsalgorithmus erzeugte Chiffrat als Input.
Der DATENVERSCHLÜSSELUNG-ITERATIV Identifikator identifiziert einen zwei ten Kontrollalgorithmus des Empfänger-Kryptosystems. Der zweite Kontrollalgorith mus spezifiziert, mittels eines oder mehrerer zweiter kryptographischer Algorithmen, die jeweils einen Entschlüsselungsalgorithmus implementieren, jeweils ein Chiffrat gemäß eines bestimmten Entschlüsselungsverfahrens zu entschlüsseln, um entschlüsselte Daten zu erhalten. Die Ausführung der Entschlüsselungsalgorithmen erfolgt sequentiell. Der erste ausgeführte Entschlüsselungsalgorithmus verwendet das vom Bereitsteller-Computersystem bereitgestellte Chiffrat als Input und alle nachfolgend ausgeführten Entschlüsselungsalgorithmen verwenden die vom zuvor ausgeführten Entschlüsselungsalgorithmus erzeugten entschlüsselten Daten als Input.
Bei der sequenziellen Verschlüsselung ist es möglich, dass lediglich die Komponen tenparameter, die vom zuerst ausgeführten Entschlüsselungsalgorithmus (zweiten kryptographischen Algorithmus) verwendet werden, an das Empfänger- Kryptosystem bereitgestellt werden. Die Komponentenparameter der später ausge führten zweiten kryptographischen Algorithmen werden dann erst im Zuge der se quentiellen Entschlüsselung schrittweise extrahiert, wenn z.B. der erste Kontrollal gorithmus die einzelnen Verschlüsselungsalgorithmen jeweils auf die Ausgabe des zuvor ausgeführten Verschlüsselungsalgorithmus anwendet. Vorzugsweise sind aber die Algorithmenbezeichner und von manchen Algorithmen benötigten Kompo nentenparameter aller auszuführenden zweiten kryptographischen Algorithmen un mittelbar aus den vom Bereitsteller-Kryptosystem neben den zusammengesetzten kryptographischen Daten bereitgestellten Parametern ersichtlich, sodass das Emp- fänger-Kryptosystem noch vor Beginn der Ausführung aller zweiten kryptographi schen Algorithmen feststellen kann, ob es überhaupt alle in den Parametern für den zweiten Kontrollalgorithmus mittels der Algorithmenbezeichner festgelegten zweiten kryptographischen Algorithmen unterstützt.
DATENVERSCHLÜSSELUNG-PARALLEL:
Der DATENVERSCHLÜSSELUNG- PARALLEL Identifikator identifiziert einen ers ten Kontrollalgorithmus des Bereitsteller-Kryptosystems. Der erste Kontrollalgorith mus spezifiziert, mittels eines oder mehrerer erster kryptographischer Algorithmen, die jeweils einen Verschlüsselungsalgorithmus implementieren, jeweils ein Chiffrat zu berechnen, wobei jeder der Verschlüsselungsalgorithmen die Eingabedaten oder Teile davon als Input verwendet.
Der DATENVERSCHLÜSSELUNG- PARALLEL Identifikator identifiziert einen zweiten Kontrollalgorithmus des Empfänger-Kryptosystem. Der zweite Kontrollalgo rithmus spezifiziert, mittels mehrerer zweiter kryptographischer Algorithmen, die je weils einen Entschlüsselungsalgorithmus implementieren, jeweils ein Chiffrat ge mäß eines bestimmten Entschlüsselungsverfahrens zu entschlüsseln um entschlüs selte Daten zu erhalten, wobei jeder der Entschlüsselungsalgorithmen das vom Be- reitsteller-Computersystem bereitgestellte Chiffrat als Input verwendet.
Die parallele Verschlüsselung von Daten mittels mehrerer Verschlüsselungsverfah ren kann insbesondere im Kontext von verschlüsselten Datenarchiven sinnvoll sein, um sicherzustellen, dass auch noch nach Jahren und Jahrzehnten zumindest ein dann noch verbreitetes Entschlüsselungsverfahren verwendet werden kann, um zumindest den zu diesem Entschlüsselungsverfahren korrespondierende Teildaten des zusammengesetzten kryptographischen Datensatzes entschlüsseln zu können.
„SCHLÜSSEL-CONTAINER“: Der SCHLÜSSEL-CONTAINER Identifikator identifiziert einen ersten Kontrollalgo- rithmus des Bereitsteller-Kryptosystems. Dieser erste Kontrollalgorithmus spezifi ziert, wie mittels eines oder mehrerer erster kryptographischer Algorithmen, die je weils einen Schlüssel beschreiben, ein einzelner, zusammengesetzter Schlüssel gebildet wird.
Dieser zusammengesetzte Schlüssel kann z.B. ein Konkatenat aus einzelnen Schlüsseln sein, die jeweils von einem der ersten kryptographischen Algorithmen gebildet werden. Die einzelnen kryptographischen Schlüssel können dabei unter schiedliche Funktionen haben, z.B. als Verschlüsselungsschlüssel oder Signier schlüssel oder Entschlüsselungsschlüssel oder Signaturprüfschlüssel dienen. Die Ausführung eines „SCHLÜSSEL-CONTAINER“ Kontrollalgorithmus kann also dazu verwendet werden, ein Schlüsselkonkatenat zu bilden, welches als Container für mehrere kryptographische Schlüssel der gleichen oder unterschiedlichen Funktion dient. Somit kann durch Bereitstellung von zusammengesetzten kryptographischen Daten in Forme eines „Schlüsselcontainers“ in einem einzigen Datenaustausch schritt dem Empfänger-Kryptosystem eine Vielzahl an Schlüsseln für verschiedens te Verwendungszwecke bereitgestellt werden, sodass sich die Anzahl an Datenaus tauschschritten und damit zusammenhängend die ggf. über Netzwerk zu übertra gende Datenmenge Ressourcenverbrauch zum Verbindungsaufbau reduziert.
Der SCHLÜSSEL-CONTAINER Identifikator identifiziert außerdem einen zweiten Kontrollalgorithmus des Empfänger-Kryptosystem, welcher spezifiziert, wie mittels eines oder mehrerer zweiter kryptographischer Algorithmen, ein oder mehrere kryp tographische Schlüssel aus den zusammengesetzten kryptographischen Daten ex trahiert und/oder verwendet werden können. Die vom zweiten Kontrollalgorithmus verwendeten zweiten kryptographischen Algorithmen spezifizieren jeweils ein Ver fahren zur Extraktion, Rekonstruktion und/oder Verwendung eines kryptographi schen Schlüssels aus denjenigen Teilen der zusammengesetzten kryptographi schen Daten, die mittels eines zu diesem zweiten kryptographischen korrespondie renden ersten kryptographischen Algorithmus erstellt wurde. Die Ergebnisdaten be stehen hier also aus den aus dem Container bzw. den zusammengesetzten krypto graphischen Daten extrahierten und/oder rekonstruierten kryptographischen Schlüsseln. Nach Ausführungsformen enthalten die zusammengesetzten kryptographischen Daten Algorithmenbezeichner und optional Komponentenparameter zumindest eini ger der zur Verarbeitung der zusammengesetzten kryptographischen Daten zu ver wendenden zweiten kryptographischen Algorithmen. Die Algorithmenbezeichner und Komponentenparameter können Bestandteil der zusammengesetzten krypto graphischen Daten sein, z.B. können in manchen Ausführungsformen bei iterativer Verschlüsselung auch die vom zuvor ausgeführten Verschlüsselungsalgorithmus bereitgestellten Algorithmenbezeichner und Komponentenparameter verschlüsselt werden um ein Chiffrat zu bilden. Vorzugsweise werden die Algorithmenbezeichner und optionalen Komponentenparameter separat aber zusammen mit den zusam mengesetzten kryptographischen Daten (und optionalen Kontrollparametern für den zweiten Kontrollalgorithmus) bereitgestellt. Dies hat den Vorteil, dass das Empfän- ger-Kryptosystem durch Analyse der separat bereitgestellten Algorithmenbezeich ner sehr schnell feststellen kann, ob es die zweite Kontrollfunktion mit den durch die Algorithmenbezeichner identifizierten zweiten kryptographischen Algorithmen über haupt ausführen kann, oder ob einzelne zweite kryptographische Algorithmen z.B. gar nicht unterstützt werden.
Die zusammengesetzten kryptographischen Daten können z.B. in der gleichen Da tenstruktur zusammen mit den besagten Parametern (Algorithmenbezeichner der vom zweiten Kontrollalgorithmus zu verwendenden zweiten kryptographischen Algo rithmen sowie optional Komponentenparameter dieser zweiten kryptographischen Algorithmen und Kontrollparameter) bereitgestellt werden, wobei die zusammenge setzten kryptographischen Daten und die Parameter z.B. in unterschiedlichen Fel dern gespeichert sind. Der Algorithmenbezeichner der einzelnen zweiten kryptogra phischen Algorithmen kann z.B. ein Bezeichner des von dem jeweiligen ersten kryp tographischen Algorithmus implementierten kryptographischen Verfahrens sein wie z.B. „RSA“ oder „DH“ bzw. die gemäß etablierter Standards verwendeten Algorith menbezeichner.
Ausführungsformen können den Vorteil haben, dass das Bereitsteller-Kryptosystem einerseits ein Mindestsicherheitsniveau auf der Empfängerseite bei der Datenverar beitung dadurch sicherstellen kann, dass die Auswahl der zweiten kryptographi schen Algorithmen von der ersten Kontrollfunktion festgelegt und in der Datenstruk tur gespeichert wird. Eine genaue Kenntnis der vom Empfänger-Kryptosystem un- terstützten kryptographischen Algorithmen ist indes nicht notwendig, da ein zweiter Kontrollalgorithmus, der eine ODER oder K-aus-N Operation vorsieht, auch arbeiten kann, wenn nur ein einziger bzw. eine beliebig zusammengesetzte Auswahl K der in der bereitgestellten Datenstruktur spezifizierten zweiten kryptographischen Algo rithmen vom Empfängersystem unterstützt werden.
Beispielsweise gilt die Quantensicherheit von RSA Signaturen als gefährdet, wohin gegen alternative Signaturalgorithmen wie BLISS, Tesla oder Dilithium derzeit als quantum-sicher gelten. Das Empfänger-Kryptosystem könnte eine erste Kontroll- funktion ausführen, die eine SIGNATUR-ODER Kontrollfunktion ist und welche drei verschiedene Signierverfahren auf Eingabedaten anwendet, um die zusammenge setzte kryptographische Signatur zu erhalten, nämlich RSA, Tesla und Dilithium. Die bereitgestellte Datenstruktur enthält den „SIGNATUR-ODER“ Identifikator des zwei ten Kontrollalgorithmus sowie die entsprechenden Algorithmenbezeichner Tesla, Dilithium und RSA der zu kombinierenden zweiten Signaturprüfverfahren. Somit können auch ältere, nicht-quantum-sichere Empfänger-Kryptosysteme die zusam mengesetzte Signatur prüfen, sofern sie RSA unterstützen. Empfänger-Systeme, die schon komplett auf quantum-sichere Verfahren wie Tesla oder Dilithium umge stellt haben, können die zusammengesetzte Signatur ebenfalls prüfen.
Sollte der Betreiber des Bereitsteller-Kryptosystems der Auffassung sein, dass RSA generell zu unsicher geworden ist, kann er den ersten Kontrollalgorithmus so modi fizieren, dass nur noch Tesla und Dilithium zur Erzeugung der zusammengesetzten Signatur verwendet werden. Ein rein RSA-basiertes Empfängersystem kann in Fol ge dessen diese Signatur nicht mehr prüfen.
Das Verfahren umfasst ferner gemäß Ausführungsformen der Erfindung eine Identi fikation jedes der zweiten kryptographischen Algorithmen, die für die Berechnung der Ergebnisdaten verwendet werden, innerhalb einer Vielzahl von zweiten krypto graphischen Algorithmen durch das Empfänger-Kryptosystem vor oder während der Berechnung der Ergebnisdaten anhand der Algorithmenbezeichner, die zusammen mit den zusammengesetzten kryptographischen Daten bereitgestellt wurden. Jeder der identifizierten zweiten kryptographischen Algorithmen implementiert empfänger systemseitige Schritte des gleichen kryptographischen Verfahrens wie ein zu die- sem korrespondierender (funktional komplementärer) erster kryptographischer Algo rithmus.
Falls also z.B. eines der ersten kryptographischen Verfahren ein RSA Algorithmus ist, wird ein identifizierender Bezeichner des RSA Algorithmus als Algorithmenbe zeichner dieses ersten kryptographischen Algorithmus vom Bereitsteller- Kryptosystem zusammen mit den zusammengesetzten kryptographischen Daten bereitgestellt. Der RSA Algorithmenbezeichner legt damit auch automatisch fest, dass der zu diesem korrespondierende zweite kryptographische Algorithmus RSA ist.
Gemäß anderer Ausführungsformen wird neben den zusammengesetzten krypto graphischen Daten vom Bereitsteller-Kryptosystem lediglich der Identifikator des zweiten Kontrollalgorithmus und optional dessen Kontrollparameter bereitgestellt, nicht aber Algorithmenbezeichner und Kontrollparameter der einzelnen zweiten kryptographischen Algorithmen. In diesem Fall bestimmt der Identifikator des zwei ten Kontrollalgorithmus lediglich die Art der Kombination der einzelnen zweiten Al gorithmen (z.B. UND oder ODER Variante, SEQUENTIELL oder PARALLEL Varian te, K aus N Variante, etc.), nicht die Auswahl der zweiten Algorithmen. Das Emp- fänger-Kryptosystem kann z.B. so konfiguriert sein, dass sämtliche vom Empfän gersystem unterstützten zweiten kryptographischen Algorithmen verwendet und gemäß des zweiten Kontrollalgorithmus kombiniert werden.
Gemäß Ausführungsformen wird der zweite Kontrollalgorithmus als Template be reitgestellt, das vom Empfänger-Kryptosystem in Antwort auf den Empfang der zu sammengesetzten kryptographischen Daten und den zugehörigen Parametern (Al gorithmenbezeichnern der zweiten kryptographischen Algorithmen und optional auch deren Komponentenparametern sowie optionalen Kontrollparametern) kom plettiert wird. Beispielsweise sind in einem derartigen empfängerseitigen Template z.B. für den SIGNATUR-UND Kontrollalgorithmus spezifiziert, dass ein oder mehre re Signaturprüfungsalgorithmen, (nicht aber z.B. Ver/Entschlüsselungsalgorithmen) durchzuführen sind, die logisch per UND Operator verbunden sind. Die Algorith menbezeichner der zweiten kryptographischen Algorithmen sind in dieser Ausfüh rungsform nicht im Template enthalten. Falls also z.B. einer der vom ersten Kon trollalgorithmus verwendeten ersten kryptographischen Verfahren ein RSA Algo- rithmus ist, wird ein Algorithmenbezeichner des RSA Algorithmus vom Bereitsteller- Kryptosystem zusammen mit den zusammengesetzten kryptographischen Daten an das Empfänger-Kryptosystem übermittelt. Der RSA Algorithmenbezeichner wird in das Template als Eingabeparameter für den im Template spezifizierten zweiten Kontrollalgorithmus übergeben und das Template und damit auch der zweite Kon- trollalgorithmus komplettiert. Somit müssen sich Bereitsteller-Kryptosystem und Empfänger-Kryptosystem vorab nicht darauf geeinigt haben, dass bei Ausführung des ersten bzw. funktional zu diesem komplementären zweiten Kontrollalgorithmus bereitstellerseitige bzw. empfängersystemseitige Schritte des RSA Verfahrens durchgeführt werden müssen. Vielmehr wird diese Information dynamisch und indi viduell für die konkret übermittelten zusammengesetzten kryptographischen Daten durch die zusammen mit diesen übermittelten Parameter festgelegt und kann somit je nach Bereitsteller-Kryptosystem, Anwendungsszenario oder Konfiguration des Bereitsteller-Kryptosystems dynamisch und sehr flexibel für jeden der vom Empfän ger-System zu verwendenden zweiten kryptographischen Algorithmen festgelegt werden.
Nach Ausführungsformen ist das Bereitsteller-Kryptosystem dazu ausgebildet, ei nem Nutzer über eine GUI zu ermöglichen, die von den ein oder mehreren der ers ten Kontrollalgorithmen jeweils verwendeten ersten kryptographischen Algorithmen festzulegen, wobei die Festlegung vorzugsweise reversibel ist, sodass sie während des Betriebs des Bereitsteller-Kryptosystems jederzeit geändert werden kann.
Gemäß Ausführungsformen der Erfindung umfasst das Verfahren den Empfang von Konfigurationsdaten von einem Nutzer oder einem Applikationsprogramm durch das Bereitsteller-Kryptosystem, z.B. über die GUI, wobei die Konfigurationsdaten mehre re erste kryptographische Algorithmen spezifizieren und beispielsweise Algorith menbezeichner und optional auch Komponentenparameter beinhalten. Im nächsten Schritt wird die erste Kontrollfunktion so erzeugt oder geändert, dass die vom ersten Kontrollalgorithmus verwendeten ersten kryptographischen Algorithmen diejenigen sind, die in den Konfigurationsdaten identifiziert werden. Die ausgeführten ersten kryptographischen Algorithmen legen die Identität der von dem zweiten Kontrollal gorithmus ausgewählten und/oder kombinierten zweiten kryptographischen Algo rithmen fest (z.B. mittels in den in den übergebenen Parametern enthaltenen Algo- rithmenbezeichner, die ergänzt werden können durch die optionalen Komponenten parametern).
Dazu korrespondierend ist das Empfänger-Kryptosystem dazu ausgebildet, den zweiten Kontrollalgorithmus auf Basis eines zusammen mit den zusammengesetz ten kryptographischen Daten bereitgestellten Identifikators und die von dem zweiten Kontrollalgorithmus verwendeten zweiten kryptographischen Algorithmen auf Basis der ebenfalls bereitgestellten Algorithmenbezeichner auszuwählen.
Dies kann den Vorteil haben, dass auf Seiten des Bereitsteller-Kryptosystems fest gelegt werden kann, welcher zweite Kontrollalgorithmus mit welchen zweiten kryp tographischen Algorithmen ausgeführt werden muss, um die zusammengesetzten kryptographischen Daten zu verarbeiten. Somit kann das Bereitsteller-Kryptosystem das Sicherheitsniveau der empfängerseitigen Verarbeitung festlegen.
Nach Ausführungsformen der Erfindung umfasst die Bereitstellung der zusammen gesetzten kryptographischen Daten eine Speicherung der zusammengesetzten kryptographischen Daten in einem einzelnen ersten vordefinierten Feld einer zwi schen dem Bereitsteller-Kryptosystem und dem Empfänger-Kryptosystem verein barten Datenstruktur. Das Empfänger-Kryptosystem ist dazu ausgebildet, das erste vordefinierte Feld der Datenstruktur zu lesen und zu parsen um die zusammenge setzten kryptographischen Daten zu erhalten.
Beispielsweise kann diese Datenstruktur direkt an das Empfänger-Kryptosystem übermittelt werden, z.B. über ein Netzwerk. Zusätzlich oder alternativ dazu kann die Datenstruktur auch in einem flüchtigen oder nicht flüchtigen Datenspeicher gespei chert werden, z.B. in einer als Archiv verwendeten Datenbank, wobei das Empfän gersystem aktuell oder zu einem künftigen Zeitpunkt des Zugriffs Leserechte bezüg lich dieses Datenspeichers hat.
Beispielsweise kann das Bereitsteller-Kryptosystem mittels mehrerer Signaturer zeugungsverfahren mehrere verschiedene Signaturen erzeugen, die (z.B. in konka- tenierter Form) als zusammengesetzte kryptographische Daten in dem ersten vor definierten Feld gespeichert werden. Alternativ dazu können die zusammengesetz ten kryptographischen Daten auch mehrere parallel erzeugte Chiffrate oder ein se quentiell erzeugtes Chiffrat oder einen vereinbarten Endschlüssel oder einen Schlüsselcontainer etc. enthalten. Der Umstand, dass die zusammengesetzten kryptographischen Daten unabhängig von der Anzahl der zu ihrer Erzeugung ver wendeten ersten kryptographischen Algorithmen immer in ein einziges Feld der Da tenstruktur geschrieben werden, kann den Vorteil haben, dass weder bereitsteller seitig noch empfängerseitig Anpassungen im Programmcode an die Datenstruktur in Abhängigkeit der Anzahl oder Art der involvierten ersten oder zweiten kryptogra phischen Algorithmen gemacht werden müssen. Diese „Strukturkonservativität“ in Kombination mit der Möglichkeit, mehrere erste oder zweite kryptographische Algo rithmen in verschiedener Sequenz und/oder verschiedener Zusammensetzung und/oder in verschiedenen Kombinationsmodi (parallel oder sequenziell) und/oder mit verschiedener Stringenz der Datenverarbeitung (UND oder ODER oder K-aus- N-verknüpft) zu kombinieren bietet gemäß Ausführungsformen ein Höchstmaß an Flexibilität, Konfigurierbarkeit und Erweiterbarkeit bei gleichzeitig sehr hoher Kon- stantheit bezüglich der ausgetauschten und zwischen den Teilnehmern vereinbarten Datenstruktur.
Nach Ausführungsformen der Erfindung speichert das Bereitstei ler-Kryptosystem einen Identifikator des zweiten Kontrollalgorithmus, der vom Empfänger- Kryptosystem ausgeführt werden soll um diejenigen zweiten kryptographischen Al gorithmen zu wählen und deren Kombination zu koordinieren, die zur Verarbeitung der bereitgestellten zusammengesetzten kryptographischen Daten verwendet wer den sollen. Bei dem Identifikator kann es sich z.B. um einen der oben genannten Identifikatoren handeln, z.B. SIGNATUR-ODER, SIGNATUR-UND, etc. Der Identifi kator des zweiten Kontrollalgorithmus wird in einem zweiten vordefinierten Feld der Datenstruktur gespeichert.
Das Empfänger-Kryptosystem liest und parst den Identifikator aus dem zweiten vor definierten Feld der Datenstruktur und wählt den zweiten Kontrollalgorithmus auf Basis des gelesenen Identifikators aus.
Nach bevorzugten Ausführungsformen werden die Algorithmenbezeichner der vom zweiten Kontrollalgorithmus zu verendenden zweiten Kontrollalgorithmen sowie op tional die von diesen benötigten Komponentenparameter sowie optional von dem zweiten Kontrollalgorithmus benötigte Kontrollparameter ebenfalls in der Daten- Struktur gespeichert. Vorzugsweise werden diese Daten als Parameter des zweiten Kontrollalgorithmus gespeichert.
Vorzugsweise hat das zweite Feld der Datenstruktur eine in einem Standard vorde finierte Struktur mit einer vorgegebenen ersten Eingabebereich für einen einzelnen (konventionellen) kryptographischen Algorithmenbezeichner und einer vorgegebe nen zweiten Eingabebereich für die Parameter dieses (konventionellen) kryptogra phischen Algorithmus, wobei der Identifikator des zweiten Kontrollalgorithmus in dem ersten Eingabebereich und die besagten Parameter des zweiten Kontrollalgo rithmus in dem zweiten Eingabebereich gespeichert werden.
Nach Ausführungsformen handelt es sich bei der vereinbarten Datenstruktur um ein Zertifikat, insbesondere um ein X.509 Zertifikat.
Bei dem ersten vordefinierten Feld handelt es sich gemäß Ausführungsformen um ein in einem Standard, insbesondere einem konventionellen Standard für kryptogra- phische Algorithmen und/oder Datenstrukturen, festgelegtes Feld zur Spezifikation eines einzigen kryptographischen Algorithmus. Beispiele für derartige Standards sind:
- Recommendation ITU-T X.509
- ISO/IEC 9594-8: Information technology - Open Systems Interconnection - The Directory: Public-key and attribute certificate frameworks
- RFC 5280: Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile, May 2008
- BSI TR 03110 Advanced Security Mechanisms for Machine Readable Travel Documents and elDAS token
- RFC 5652: Cryptographic Message Syntax (CMS), August 2009
- RFC 2986: PKCS #10: Certification Request Syntax Specification, Version 1.7, November 2000
- RFC 6990: X.509 Internet Public Key Infrastructure - Online Certificate Status Protocol - OCSP, June 2013 - ICAO Doc 9303, Machine Readable Travel Documents, Seventh Edition, 2015, Part 11 : Security Mechanisms for MRTDs
- ICAO Doc 9303, Machine Readable Travel Documents, Seventh Edition, 2015, Part 12: Public Key Infrastructure for MRTDs
- Diverse weitere Standards für andere Formate (XML, PDF)
Nach Ausführungsformen der Erfindung umfassen die mehreren ersten kryptogra- phischen Algorithmen mehrere kryptographische Signierungsalgorithmen gemäß mehrerer unterschiedlicher Signierungsverfahren. Die zweiten kryptographischen Algorithmen umfassen mehrere kryptographische Signaturprüfalgorithmen, die je weils entsprechend einem der unterschiedlichen Signierungsverfahren implemen tiert sind.
Nach Ausführungsformen der Erfindung umfassen das Berechnen der zusammen gesetzten kryptographischen Daten:
- Anwenden eines jeden der mehreren kryptographischen Signieralgorithmen auf die Eingabedaten zur Berechnung jeweils einer Signatur; die Signatur kann z.B. Parameter (insbesondere Algorithmenbezeichner und optional verwendete Kom ponentenparameter des jeweils angewandten Signieralgorithmus) umfassen, die das von dem jeweiligen kryptographischen Signierungsalgorithmus verwendete Signierungsverfahren identifizieren und die implizit auch einen geeigneten Signa turprüfalgorithmus identifizieren;
- Kombination der mehreren Signaturen zu den zusammengesetzten kryptographi schen Daten; die jeweils erstellten Parameter können Bestandteil der zusam mengesetzten kryptographischen Daten sein oder, vorzugsweise, separat und in Verbindung mit den zusammengesetzten kryptographischen Daten bereitgestellt werden;
- Speicherung der zusammengesetzten kryptographischen Daten in einem ersten vordefinierten Feld einer zwischen dem Bereitsteller-Kryptosystem und dem Empfänger-Kryptosystem vereinbarten Datenstruktur.
Vorzugsweise werden die Parameter (Algorithmenbezeichner und optional verwen dete Komponentenparameter der jeweils angewandten Signieralgorithmen sowie optional Kontrollparameter) in einem zweiten vordefinierten Feld der Datenstruktur gespeichert.
Die Übermittlung zumindest der zusammengesetzten kryptographischen Daten von dem Bereitsteller-Kryptosystem an das Empfänger-Kryptosystem erfolgt im Zuge einer Übermittlung der Eingabedaten und der Datenstruktur an das Empfänger- Kryptosystem.
Gemäß einer Ausführungsform besteht jede von einem der ersten kryptographi schen Algorithmen erzeugten Signatur aus einem Paar aus Algorithmenbezeichner und dem Wert der Signatur. Optional kann der Algorithmenbezeichner in Verbin dung mit Parametern bereitgestellt werden, die der bezeichnete Algorithmus als Eingabe benötigt um die Signatur prüfen zu können.
Vorzugsweise werden die Signaturen der einzelnen Signieralgorithmen als zusam mengesetzte Signatur in dem ersten Feld gespeichert. Die Algorithmenbezeichner und Komponentenparameter der Sigieralgorithmen sowie optional Kontrollparame ter des zweiten Kontrollalgorithmus werden als Parameter für den zweiten Kon- trollalgorithmus zusammen mit dem Identifikator des zweiten Kontrollalgorithmus in dem zweiten Feld gespeichert. Die Parameter umfassen also ggf. mehrere aus den Komponentenparametern der ersten kryptographischen Algorithmen „zusammenge setzte“ Komponentenparameter und Algorithmenbezeichner und können als „zu sammengesetzte Parameter“ betrachtet werden, die separat von den zusammenge setzten kryptographischen Daten gespeichert werden.
Somit bilden in struktureller Hinsicht die zusammengesetzten kryptographischen Daten einerseits und die Kombination aus Identifikator des zweiten Kontrollalgorith mus mit den „zusammengesetzten“ Parametern andererseits ein Tupel aus krypto graphischen Daten, (Kontroll)Algorithmenbezeichner und Parametern, das in die entsprechenden Felder und Eingabebereiche standardkonformer kryptographischer Datenstrukturen gespeichert werden kann, ohne die Datenstruktur aufbrechen oder ändern zu müssen, obwohl die zusammengesetzten kryptographischen Daten und Parameter einen deutlich höheren Informationsgehalt haben und flexibler einsetzbar sind als die entsprechenden Daten und Parameter einzelner kryptographischer Al gorithmen, für die diese Datenstrukturen ursprünglich konzipiert wurden. Die zusammengesetzten kryptographischen Daten können also ähnlich wie krypto- graphische Daten von einzeln verwendeten kryptographischen Algorithmen als Paar bereitgestellt werden, nämlich z.B. als Kombination der (zusammengesetzten) kryp tographischen Daten einerseits und einem Algorithmenbezeichner (des zweiten Kontrollalgorithmus) und seiner Parameter andererseits.
Nach Ausführungsformen der Erfindung umfasst die Berechnung der Ergebnisdaten durch das Empfänger-Kryptosystem:
- Parsen der Felder der zwischen dem Bereitsteller-Kryptosystem und dem Emp fänger-Kryptosystem vereinbarten Datenstruktur durch das Empfänger- Kryptosystem, um die in einem ersten Feld gespeicherten zusammengesetzten kryptographischen Daten zu erhalten, und um den in einem zweiten Feld der Da tenstruktur gespeicherten Identifikator des zweiten Kontrollalgorithmus sowie wei tere Parameter zu extrahieren, wobei die Parameter Algorithmenbezeichner von zur Signaturprüfung geeigneten Signaturprüfalgorithmen, sowie optional auch Komponentenparameter dieser Signaturprüfalgorithmen und/oder Kontrollpara- meter des zweiten Kontrollalgorithmus umfassen;
- Berechnen von Signaturprüfungsteilergebnissen durch das Empfänger- Kryptosystem durch Anwenden jedes der identifizierten Signaturprüfungsalgo rithmen auf diejenige der Signaturen, die mit einem zu dem Signaturprüfungsal gorithmus korrespondierenden Signierungsverfahren berechnet wurden;
- Erzeugen der Ergebnisdaten durch Kombination der Signaturprüfungsteilergeb nisse gemäß des zweiten Kontrollalgorithmus.
Beispielsweise können die Ergebnisdaten ein Ergebnis beinhalten, ob das Bereit steller-Kryptosystem oder eine Nachricht des Bereitsteller-Kryptosystems als integer und/oder als von einer bestimmten Bereitsteller-Entität stammend zu behandeln ist.
Nach Ausführungsformen wird der zweite Kontrollalgorithmus durch den ersten Kon trollalgorithmus festgelegt und es wird ein Identifikator des festgelegten zweiten Kontrollalgorithmus zusammen mit den zusammengesetzten kryptografischen Da ten in der Datenstruktur gespeichert. Beispielsweise kann ein bestimmtes krypto- graphisches Programm oder Programmodul für bestimmte Anwendungen oder Funktionen einen bestimmten ersten Kontrollalgorithmus ausführen, der z.B. fest legt, dass eine bestimmte Anzahl (z.B. drei) Signierungsalgorithmen je eine digitale Signatur für ein elektronisches Dokument erzeugen und diese drei Signaturen als die zusammengesetzten kryptographischen Daten in das erste Feld der Datenstruk tur schreibt. Außerdem kann der erste Kontrollalgorithmus dazu ausgebildet sein, in das zweite Feld der Datenstruktur einen „SIGNATUR-UND“ Identifikator und die Algorithmenbezeichner der verwendeten Signierungsalgorithmen samt optionaler Komponentenparameter und optionaler Kontrollparameterfür den SIGNATUR-UND Kontrollalgorithmus zu schreiben. Das Empfänger-Kryptosystem ist dazu konfigu riert, den zweiten Kontrollalgorithmus in Abhängigkeit von dem in dem zweiten Feld festgelegten Identifikator auszuwählen und auszuführen.
Nach Ausführungsformen der Erfindung umfassen die mehreren ersten kryptogra phischen Algorithmen mehrere kryptographische Verschlüsselungsalgorithmen ge mäß mehrerer unterschiedlicher Verschlüsselungsverfahren. Die mehreren zweiten kryptographischen Algorithmen umfassen mehrere kryptographische Entschlüsse lungsalgorithmen korrespondierend zu den mehreren unterschiedlichen Verschlüs selungsverfahren.
Nach Ausführungsformen der Erfindung umfasst das Berechnen der zusammenge setzten kryptographischen Daten:
- Anwenden eines jeden der mehreren kryptographischen Verschlüsselungsalgo rithmen auf die Eingabedaten und/oder die Ausgabe eines zuvor ausgeführten der kryptographischen Verschlüsselungsalgorithmen zur Erzeugung verschlüssel ter Daten, die als die zusammengesetzten kryptographischen Daten verwendet werden, wobei die verschlüsselten Daten, die von jedem der Verschlüsselungsal gorithmen ausgegeben werden, optional Parameter umfassen können; diese Pa rameter können Algorithmenbezeichner der von dem jeweiligen kryptographi schen Verschlüsselungsalgorithmus verwendeten Verschlüsselungsverfahren sowie optional auch Komponentenparameter dieser Verschlüsselungsverfahren und/oder Kontrollparameter für den zweiten Kontrollalgorithmus umfassen; Vor zugsweise gehen diese Parameter aber nicht als Input in die nachfolgenden Ver schlüsselungsalgorithmen ein sondern werden separat in Form zusammenge setzter Parameter zusammen mit den zusammengesetzten kryptographischen Daten ausgegeben; und
- Speicherung der zusammengesetzten kryptographischen Daten in einem ersten vordefinierten Feld einer zwischen dem Bereitsteller-Kryptosystem und dem Empfänger-Kryptosystem vereinbarten Datenstruktur. Die Übermittlung zumin dest der zusammengesetzten kryptographischen Daten von dem Bereitsteller- Kryptosystem an das Empfänger-Kryptosystem erfolgt im Zuge einer Übermitt lung der Datenstruktur an das Empfänger-Kryptosystem.
Nach Ausführungsformen der Erfindung erfolgt die Anwendung der mehreren kryp tographischen Verschlüsselungsalgorithmen sequentiell jeweils auf die Eingabeda ten oder auf die Ausgabe des jeweils zuletzt durchgeführten Verschlüsselungsalgo rithmus. Die Ausgabe des zuletzt angewendeten kryptographischen Verschlüsse lungsalgorithmus werden als die zusammengesetzten kryptographischen Daten verwendet. Beispielsweise können die zusammengesetzten kryptographischen Da ten sequentiell verschlüsselte Daten sein, die durch sequentielles Anwenden der zweiten kryptographischen Algorithmen jeweils auf die Ausgabe des zuvor ausge führten zweiten Algorithmus wieder in die Eingabedaten zurücktransformiert wer den.
Nach anderen Ausführungsformen erfolgt die Anwendung der mehreren kryptogra phischen Verschlüsselungsalgorithmen so, dass jeder der mehreren Verschlüsse lungsalgorithmen auf die Eingabedaten angewandt wird, um jeweils einen ver schlüsselten Ausgabewert zu erzeugen, und wobei die Berechnung der zusammen gesetzten kryptographischen Daten eine Konkatenierung oder andere Form der Kombination der verschlüsselten Ausgabewerte zu den kombinierten kryptographi schen Daten umfasst.
Beispielsweise kann die Konkatenierung so erfolgen, dass ein Delimiter, der auch dem zweiten Kontrollalgorithmus bekannt ist, die von den einzelnen ersten krypto graphischen Algorithmen erzeugten Teildaten trennt. Der zweite Kontrollalgorithmus kann anhand des Delimiters die zusammengesetzten kryptographischen Daten in Teildaten aufteilen und den einzelnen zweiten kryptographischen Algorithmen zur weiteren Verarbeitung zuweisen. Vorzugsweise erfolgt die Konkatenierung nicht auf Basis eines Delimiters, sondern auf Basis eines TLV (Tag-Length-Value), also einer festgesetzten Zeichensequenzlänge, die z.B. bei ASN.1-Distinguished Encoding Rules (DER)-Kodierung, oder mittels XML spezifiziert sein kann, sodass das Emp fängersystem die von verschiedenen ersten kryptographischen Algorithmen bereit- gestellten Teile der zusammengesetzten kryptographischen Daten anhand der fest gesetzten Zeichensequenzlänge ermitteln kann. Alle hier beschriebenen Ausfüh rungsformen, die einen Delimiter zur Bildung der zusammengesetzten kryptographi schen Daten verwenden, können alternativ auch jegliches andere Verfahren an wenden, um dem Empfängersystem eine Identifikation der von den einzelnen ersten kryptographischen Algorithmen gelieferten kryptographischen Daten zu ermögli chen, z.B. einen TLV.
Nach Ausführungsformen umfasst die Berechnung der Ergebnisdaten durch das E m pfänger-Kryptosystem :
- Parsen der Felder der zwischen dem Bereitsteller-Kryptosystem und dem Emp- fänger-Kryptosystem vereinbarten Datenstruktur durch das Empfänger- Kryptosystem, um die in einem ersten Feld enthaltenen zusammengesetzten kryptographischen Daten zu erhalten, und um den in einem zweiten Feld der Da tenstruktur gespeicherten Identifikator des zweiten Kontrollalgorithmus sowie wei tere Parameter zu extrahieren, wobei die Parameter Algorithmenbezeichner von zur Entschlüsselung der in den zusammengesetzten kryptographischen Daten enthaltenen Chiffrate geeigneten Entschlüsselungsalgorithmen enthalten wobei die Parameter optional auch Komponentenparameter dieser Entschlüsselungsal gorithmen und/oder Kontrollparameter des zweiten Kontrollalgorithmus umfas sen;
- Erzeugen von entschlüsselten Daten durch das Em pfänger-Kryptosystem durch Anwenden jedes der identifizierten Entschlüsselungsalgorithmen auf diejenigen der entschlüsselten Daten, die mit einem zu dem Verschlüsselungsalgorithmus korrespondierenden Verschlüsselungsverfahren erzeugt wurden;
- Erzeugen der Ergebnisdaten durch Kombination der entschlüsselten Daten oder durch kombinierte Anwendung der identifizierten Entschlüsselungsalgorithmen gemäß des zweiten Kontrollalgorithmus, wobei die Ergebnisdaten zumindest ei nen Teil der Eingabedaten in unverschlüsselter Form beinhalten. Dieser Schritt kann z.B. bei serieller Anwendung der zweiten kryptographischen Algorithmen auch zusammen mit dem vorigen Schritt der Erzeugung der entschlüsselten Da ten ausgeführt werden. Nach Ausführungsformen der Erfindung erfolgt die Anwendung der mehreren kryp- tographischen Entschlüsselungsalgorithmen sequentiell auf die Ausgabe des jeweils zuletzt durchgeführten Entschlüsselungsalgorithmus. Die Ausgabe des zuletzt an gewendeten kryptographischen Entschlüsselungsalgorithmus werden als die Er gebnisdaten verwendet.
Alternativ dazu erfolgt die Anwendung der mehreren kryptographischen Entschlüs selungsalgorithmen so, dass jeder der mehreren Entschlüsselungsalgorithmen auf den in dem Feld enthaltenen verschlüsselten Daten angewandt wird, um jeweils entschlüsselte Daten zu erzeugen, wobei die entschlüsselten Daten eines der Ent schlüsselungsalgorithmen als die Ergebnisdaten verwendet werden.
Nach Ausführungsformen der Erfindung umfassen die mehreren ersten kryptogra phischen Algorithmen mehrere bereitstellerseitige Schlüsselvereinbarungsalgorith men gemäß mehrerer unterschiedlicher Schlüsselvereinbarungsverfahren. Die zwei ten kryptographischen Algorithmen umfassen mehrere empfängerseitige Schlüssel vereinbarungsalgorithmen, die jeweils korrespondierend zu einem der unterschiedli chen Schlüsselvereinbarungsverfahren implementiert sind.
Nach Ausführungsformen der Erfindung umfasst das Berechnen der zusammenge setzten kryptographischen Daten:
- Anwenden eines jeden der mehreren Bereitstellerseitigen Schlüsselvereinba rungsalgorithmen auf die Eingabedaten zur Erzeugung von Schlüsseldaten, wo bei Schlüsseldaten kryptographische Schlüssel und/oder Seeds (Datenwerte, z.B. Zufallszahlen, die als Basis einer Berechnung verwendet werden) oder Pa rameter zur Erzeugung kryptographischer Schlüssel sind oder diese umfassen, wobei die Schlüsseldaten Algorithmenbezeichner und optional zugehörige Kom ponentenparameter umfassen, die das von dem jeweiligen Bereitstellerseitigen Schlüsselvereinbarungsalgorithmus verwendete Schlüsselvereinbarungsverfah ren identifizieren;
- Kombination der mehreren Schlüsseldaten zu den zusammengesetzten krypto graphischen Daten; Die Parameter der einzelnen Schlüsselvereinbarungsalgo rithmen können in den zusammengesetzten kryptographischen Daten oder, vor zugsweise, separat verknüpft mit diesen bereitgestellt werden;
- Speicherung der zusammengesetzten kryptographischen Daten in einem ersten vordefinierten Feld einer zwischen dem Bereitsteller-Kryptosystem und dem Empfänger-Kryptosystem vereinbarten Datenstruktur.
Vorzugsweise werden die Algorithmenbezeichner und optional zugehörige Kompo nentenparameter der einzelnen ersten kryptographischen Algorithmen, der Identifi- kator des zweiten Kontrollalgorithmus und optionale Kontrollparameter in einem zweiten Datenfeld der Datenstruktur gespeichert.
Die Übermittlung zumindest der zusammengesetzten kryptographischen Daten von dem Bereitsteller-Kryptosystem an das Empfänger-Kryptosystem erfolgt im Zuge einer Übermittlung der Eingabedaten und der Datenstruktur an das Empfänger- Kryptosystem.
Nach Ausführungsformen der Erfindung umfasst die Berechnung der Ergebnisdaten durch das Empfänger-Kryptosystem:
- Parsen der Felder der zwischen dem Bereitsteller-Kryptosystem und dem Emp fänger-Kryptosystem vereinbarten Datenstruktur durch das Empfänger- Kryptosystem, um die in einem ersten Feld enthaltenen zusammengesetzten kryptographischen Daten zu erhalten, und um den in einem zweiten Feld der Da tenstruktur gespeicherten Identifikator des zweiten Kontrollalgorithmus sowie wei tere Parameter zu extrahieren, wobei die Parameter Algorithmenbezeichner von empfängerseitigen Schlüsselvereinbarungsalgorithmen enthalten, die funktional komplementär sind zu denen, die zur Erzeugung der in den zusammengesetzten kryptographischen Daten enthaltenen bereitstellerseitigen Schlüsseldaten ver wendet wurden, wobei die Parameter optional Komponentenparameter der emp fängerseitigen Schlüsselvereinbarungsalgorithmen und/oder Kontrollparameter beinhalten;
- Erzeugen von empfängerseitigen Schlüsseldaten durch das Empfänger- Kryptosystem durch Anwenden jedes der identifizierten empfängerseitigen Schlüsselvereinbarungsalgorithmen als Funktion derjenigen bereitstellerseitig er zeugten Schlüsseldaten, die mit einem zu dem empfängerseitigen Schlüsselver einbarungsalgorithmus korrespondierenden bereitstellerseitigen Schlüsselverein barungsalgorithmus erzeugt wurden;
- Erzeugen der Ergebnisdaten durch Kombination der empfängerseitig erzeugten Schlüsseldaten gemäß des zweiten Kontrollalgorithmus, wobei die Ergebnisdaten zumindest einen zwischen dem Bereitsteller-Kryptosystem und dem Empfänger- Kryptosystem vereinbarten Schlüssel beinhalten.
Nach Ausführungsformen der Erfindung beinhalten die Eingabedaten einen Text, zumindest einen Parameter eines kryptographischen Verfahrens, und/oder zumin dest einen kryptographischen Schlüssel.
In einem weiteren Aspekt betrifft die Erfindung ein Bereitsteller-Kryptosystem. Das Bereitsteller-Kryptosystem umfasst ein flüchtiges oder nicht flüchtiges Speicherme dium mit mehreren ersten kryptographischen Algorithmen und mit mindestens ei nem ersten Kontrollalgorithmus, wobei ein erster Kontrollalgorithmus eine Rechen vorschrift zur Auswahl und/oder Kombination von zwei oder mehreren der ersten kryptographischen Algorithmen ist. Das Bereitsteller-Kryptosystem umfasst ferner zumindest einen Prozessor, der konfiguriert ist zum:
- Erzeugen von Eingabedaten;
- Berechnen von zusammengesetzten kryptographischen Daten durch Ausführung von mehreren der ersten kryptographischen Algorithmen, wobei die zusammen gesetzten kryptographischen Daten als Funktion der Eingabedaten berechnet werden, wobei eine Auswahl der mehreren ersten kryptographischen Algorithmen und/oder eine Kombination der mehreren ersten kryptographischen Algorithmen gemäß des zumindest einen ersten Kontrollalgorithmus erfolgt;
- Bereitstellen der zusammengesetzten kryptographischen Daten von dem Bereit steller-Kryptosystem an das Empfänger-Kryptosystem. Beispielsweise können die zusammengesetzten kryptographischen Daten in einer Datenstruktur, z.B. ei nem Zertifikat, in einem vordefinierten ersten Feld gespeichert werden. Die Da tenstruktur kann Bestandteil einer Nachricht sein, die noch weitere Daten enthält. Beispielsweise kann die Nachricht ein elektronisches Dokument umfassen und ein Zertifikat enthalten, in dessen ersten Feld anstatt einer konventionellen Signa tur eine aus mehreren Einzelsignaturen zusammengesetzte Signatur enthalten ist, wobei in einem zweiten Feld der Datenstruktur der vom Empfänger- Kryptosystem zur Bearbeitung der in dem ersten Feld enthaltenen Daten zu ver wendende zweite Kontrollalgorithmus mittels eines Identifikators spezifiziert ist. Die Nachricht kann aber auch nur aus der Datenstruktur bestehen. Das Bereit steller-Kryptosystem kann also je nach Ausführungsform nur die Datenstruktur oder einen größeren Datensatz oder eine Nachricht bereitstellen, die neben der Datenstruktur noch weitere Daten enthält, z.B. ein signiertes elektronisches Do kument.
Das Bereitsteller-Kryptosystem ist gemäß Ausführungsformen dazu ausgebildet, die bereitstellersystemseitigen Schritte des Verfahrens durchzuführen.
Nach Ausführungsformen umfasst das Bereitsteller-Kryptosystem:
- eine erste kryptographische Applikation, die die ersten kryptographischen Algo rithmen und die ersten Kontrollalgorithmen beinhaltet, und
- ein erstes Anwendungsprogramm.
Das erste Anwendungsprogramm ist frei ist von kryptographischen Algorithmen und kann eine beliebige Anwendung implementieren, z.B. ein Mailprogramm, ein Pro gramm zur Erzeugung und Bereitstellung medizinischer Daten etc. Das erste An wendungsprogramm ist mit der ersten kryptographischen Applikation interoperabel und ist dazu konfiguriert, folgende Schritte auszuführen:
- Bereitstellung der Eingabedaten an die erste kryptographische Applikation und/oder Veranlassung der ersten kryptographischen Applikation, die Eingabeda ten zu erzeugen;
- Veranlassung der ersten kryptographischen Applikation, die zusammengesetzten kryptographischen Daten zu berechnen und an das erste Anwendungsprogramm zurückzugeben;
- Speicherung der zusammengesetzten kryptographischen Daten in einem ersten vordefinierten Feld einer zwischen dem Bereitsteller-Kryptosystem und dem Empfänger-Kryptosystem vereinbarten Datenstruktur; und
- Senden der Datenstruktur an das Empfänger-Kryptosystem.
Die hier beschriebene Trennung von Applikationslogik und kryptographiebezogenen Funktionen in verschiedene Programme und/oder Module kann den Vorteil haben, dass das Anwendungsprogramm unverändert bleibt, auch dann, wenn eine alte kryptographische Applikation, die immer ganz bestimmte kryptographische Daten für einen ganz bestimmten Algorithmus zurückgegeben hat, durch eine neue kryp tographische Applikation ersetzt wird, die nun zusammengesetzte kryptographische Daten zurückgibt. Das Anwendungsprogramm speichert die zusammengesetzten kryptographischen Daten weiterhin in das gleiche vordefinierte Feld, das z.B. bereits gemäß heute verwendeter Standards zur Speicherung kryptographischer Daten wie z.B. Signaturen oder kryptographischer Schlüssel verwendet wird. Somit ändert sich für das Anwendungsprogramm nichts, wenn das bisher verwendete kryptographi- sche Modul, das gemäß der bestehenden Standards einzelne kryptographische Werte in einzelne dafür vorgesehene Felder schrieb, durch ein neues kryptographi- sches Programm bzw. Modul ersetzt wird, welches nun zusammengesetzte krypto graphische Daten in dieses eine Feld schreibt. Durch Verwendung von Bereitsteller- Kryptosystemen mit entsprechend modularer Trennung von Anwendungslogik und kryptographischen Funktionen kann sichergestellt werden, dass eine Umstellung des Bereitsteller-Kryptosystems auf neue, quantencomputer-sichere kryptographi sche Algorithmen vorgenommen werden kann, ohne dass hierfür Applikationspro gramme neu geschrieben und/oder neu kompiliert werden müssten.
In einem weiteren Aspekt betrifft die Erfindung ein Empfänger-Kryptosystem. Das Empfänger-Kryptosystem umfasst ein flüchtiges oder nicht flüchtiges Speichermedi um mit einem oder mehreren zweiten kryptographischen Algorithmen und mindes tens einem zweiten Kontrollalgorithmus. Der zweite Kontrollalgorithmus ist eine Re chenvorschrift zur Auswahl und/oder Kombination von einem oder mehreren der zweiten kryptographischen Algorithmen. Das Empfänger-Kryptosystem beinhaltet ferner zumindest einen Prozessor, der konfiguriert ist zum:
- Empfangen von zusammengesetzten kryptographischen Daten des Bereitsteller- Kryptosystems;
- Berechnen von Ergebnisdaten als Funktion der zusammengesetzten kryptogra phischen Daten durch Anwenden von einem oder mehreren der zweiten krypto graphischen Algorithmen, wobei eine Auswahl und/oder Kombination des einen oder der mehreren zweiten kryptographischen Algorithmen gemäß eines der zweiten Kontrollalgorithmen erfolgt; und
- automatische Ausführung einer Software- und/oder Flardwarefunktion in Abhän gigkeit von den Ergebnisdaten.
Das Empfänger-Kryptosystem ist gemäß Ausführungsformen dazu ausgebildet, die empfängersystemseitigen Schritte des Verfahrens durchzuführen.
Nach Ausführungsformen umfasst das Empfänger-Kryptosystem: - eine zweite kryptographische Applikation, die die zweiten kryptographischen
Algorithmen und die zweiten Kontrollalgorithmen beinhaltet; und
- ein zweites Anwendungsprogramm, das frei ist von kryptographischen Algo rithmen und das mit der zweiten kryptographischen Applikation interopera bel ist.
Das zweite Anwendungsprogramm ist konfiguriert zum:
- Empfang einerzwischen dem Bereitsteller-Kryptosystem und dem Empfän- ger-Kryptosystem vereinbarten Datenstruktur;
- Parsen der Datenstruktur, um die zusammengesetzten kryptographischen
Daten aus einem ersten vordefinierten Feld in der Datenstruktur zu lesen;
- Bereitstellung der gelesenen zusammengesetzten kryptographischen Daten an die zweite kryptographische Applikation;
- Veranlassung der zweiten kryptographischen Applikation, die Ergebnisdaten als Funktion der zusammengesetzten kryptographischen Daten zu berech nen und an das zweite Anwendungsprogramm zurückzugeben; und
- Veranlassen der automatischen Ausführung der Software- und/oder Flard- warefunktion in Abhängigkeit von den Ergebnisdaten.
Beispielsweise kann das erste und/oder zweite Anwendungsprogramm dazu aus gebildet sein, S/MIME-Nachrichten und damit assoziierte Zertifikaten oder Signatu ren zu verarbeiten, wobei die eigentlichen kryptographischen Operationen in die mit diesem Anwendungsprogramm interoperable kryptographische Applikation ausge lagert sind. S/MIME steht für Secure / Multipurpose Internet Mail Extensions und bezeichnet einen Standard für die Verschlüsselung und das Signieren von MIME- Objekten durch ein hybrides Kryptosystem. S/MIME wird in sehr vielen kryptogra phischen Verfahren zur Absicherung in der Anwendungsschicht (Application Layer) eingesetzt. Typische Einsatzfälle von S/MIME sind E-Mail, AS2 und viele weitere. In der Praxis kann S/MIME (Inhaltsebene) mit TLS (Transportebene) kombiniert wer den. Beispielsweise kann die erste oder zweite kryptographische Applikation die kryptographischen Operationen bei der S/MIME Verarbeitung auf der Transport schicht ausführen.
In einem weiteren Aspekt betrifft die Erfindung eine Datenstruktur. Die Datenstruktur hat ein Format, welches zwischen einem Bereitsteller- Kryptosystem und einem Empfänger-Kryptosystem gemäß einem kryptographi- schen Standard vereinbart wurde. Bei dem kryptographischen Standard kann es sich insbesondere um einen konventionellen kryptographischen Verfahrens und/oder Datenstruktur-standard handeln. Die Datenstruktur beinhaltet ein erstes vordefiniertes Feld, welches gemäß dem kryptographischen Standard zur Speiche rung von kryptographischen Daten genau eines kryptographischen Algorithmus dient. Das erste vordefinierte Feld enthält (entgegen dieses konventionellen krypto graphischen Standards) zusammengesetzte kryptographische Daten. Die zusam mengesetzten kryptographischen Daten sind aus kryptographischen Teildaten zu sammengesetzt, die jeweils von mehreren kryptographischen Algorithmen erzeugt wurden. Bei den mehreren kryptographischen Algorithmen kann es sich z.B. um mehrere auf einem Bereitsteller-Kryptosystem implementierte erste kryptographi sche Algorithmen handeln.
Vorzugsweise beinhaltet die Datenstruktur ein zweites vordefiniertes Feld, welches gemäß dem kryptographischen Standard zur Speicherung eines Algorithmenbe zeichners genau eines kryptographischen Algorithmus dient. Das zweite vordefinier te Feld beinhaltet einen Identifikator des zweiten Kontrollalgorithmus sowie Algo rithmenbezeichner der von diesem zu verwendenden zweiten kryptographischen Algorithmen und optional Komponentenparameter und/oder Kontrollparameter des zweiten Kontrollalgorithmus.
Eine solche Datenstruktur kann den Vorteil haben, dass ihre Verarbeitung auf der Applikationsebene (z.B. durch ein S/MIME Programm) weitgehend identisch zu der Verarbeitung von entsprechenden Datenstrukturen erfolgen kann, in welchen das erste Feld den Inhalt gemäß des konventionellen kryptographischen Standards ent hält. In dem ersten Feld, wo gemäß des konventionellen kryptographischen Stan dards also die von einem einzelnen kryptographischen Algorithmus erzeugte Signa tur bzw. Chiffrat bzw. vereinbarter Schlüssel enthalten sein sollte, sind gemäß Aus führungsformen die von mehreren kryptographischen Algorithmen erzeugten zu sammengesetzten kryptographischen Daten. Diese können von dem Anwendungs programm in gleicher Weise wie bisher ausgelesen und zur Verarbeitung an die kryptographische Applikation weitergeleitet werden. Nur bei der kryptographischen Applikation sind ggf. Anpassungen erforderlich, da diese dazu ausgebildet sein muss, zusammengesetzte kryptographische Daten anstatt der Ergebnisse eines einzelnen kryptographischen Algorithmus in das erste Feld zu schreiben oder von dem ersten Feld zu lesen und zu verarbeiten.
Nach Ausführungsformen beinhaltet die Datenstruktur einen Identifikator des For mats, z.B. einen Identifikator des kryptographischen Standards oder einen Identifi kator eines Datenstrukturtyps. Beispielsweise beinhaltet ein X.509 Zertifikat ein Feld, in dem die Version des X.509 Zertifikats hervorgeht. Der Standardwert ist Ver sion 1. Wenn der eindeutige Bezeichner des Ausstellers oder der eindeutige Be zeichner des Subjekts existieren, muss der Wert Version 2 sein. Die Mehrzahl der heute verwendeten Anwendungen verwendet V3.
Nach Ausführungsformen der Erfindung handelt es sich bei der Datenstruktur um ein Zertifikat. Das Zertifikat kann z.B. ein X.509 Zertifikat sein. Das X.509 Zertifikat kann z.B. als TLS-Zertifikat ausgebildet sein. Gemäß weiteren Beispielen kann es sich bei dem Zertifikat um ein CV-Zertifikat (Card Verifyable Zertifikat) handeln.
Nach Ausführungsformen der Erfindung handelt es sich bei der Datenstruktur um ein X.509 ab Version V1 oder höher, das einer Entität zugeordnet ist. Bei der Entität kann es sich z.B. um eine natürliche oder juristische Person oder ein technisches Gerät oder einen technischen Gegenstand handeln.
Nach Ausführungsformen handelt es sich bei den kryptographischen Daten des ge nau einen kryptographischen Algorithmus (die gemäß dem konventionellen krypto graphischen Standard in das erste Feld zu speichern sind) um ein Chiffrat, um einen kryptographischen Schlüssel oder um eine digitale Signatur.
Nach Ausführungsformen handelt es sich bei den kryptographischen Teildaten je weils um ein Chiffrat, um einen kryptographischen Schlüssel oder um eine digitale Signatur. Das erste Feld ist ein Feld, das gemäß einem kryptographischen Standard zur Speicherung der von einem einzelnen kryptographischen Algorithmus erzeugten kryptographischen Daten bestimmt ist. Zusätzlich oder alternativ dazu ist das zweite Feld ein Feld, das gemäß einem kryptographischen Standard zur Speicherung ei nes Algorithmenbezeichners eines einzelnen kryptographischen Algorithmus ein schließlich optional vorhandener Parameterwerte bestimmt ist. Nach Ausführungsformen der Erfindung beinhalten jede der Teildaten Parameter, wobei die Parameter einen Algorithmenbezeichner, der den zweiten kryptographi- schen Algorithmus, mit welchem die Teildaten verarbeitet werden sollen, und optio nal auch Komponentenparameter, die die Verarbeitung steuern, identifizieren. Bei spielsweise können die zusammengesetzten kryptographischen Daten Paare von den Ausgaben, die von den einzelnen ersten kryptographischen Algorithmen jeweils erzeugt wurden, und die Algorithmenbezeichner und optional auch Komponenten parameter des jeweiligen zweiten kryptographischen Algorithmus beinhalten.
Nach bevorzugten Ausführungsformen werden jedoch die Algorithmenbezeichner der zweiten kryptographischen Algorithmen, optional diesen zugewiesene Kompo nentenparameter sowie optional vorhandene Kontrollparameter zusammen als „zu sammengesetzte Parameter“ separat aber verknüpft mit den zusammengesetzten kryptographischen Daten und einem Identifikator des zweiten Kontrollalgorithmus gespeichert und bereitgestellt.
Gemäß Ausführungsformen ist das Empfänger-Kryptosystem dazu ausgebildet, an hand einer Analyse von zusammen mit den zusammengesetzten kryptographischen Daten, die auch Algorithmenbezeichner enthalten, noch vor Ausführung des zweiten Kontrollalgorithmus festzustellen, ob die in dem in dem zweiten Kontrollalgorithmus identifizierten zweiten kryptographischen Algorithmen durch das Empfänger- Kryptosystem unterstützt werden. Falls nicht, wird der zweite Kontrollalgorithmus nicht ausgeführt, was Ressourcen spart.
Nach manchen Ausführungsformen spezifizieren die Algorithmenbezeichner und/oder Komponentenparameter der zweiten kryptographischen Algorithmen impli zit auch die Bitlänge und/oder erste Position der kryptographischen Daten. Diese Daten können es dem Empfänger-Kryptosystem ermöglichen, eine Identifikation des Begins und/oder des Endes dieser Teildaten innerhalb des Feldes beim Parsen des Dateninhalts des Feldes durch das Empfänger-Kryptosystem zu ermöglichen.
In einem weiteren Aspekt betrifft die Erfindung ein Bereitsteller-Kryptosystem mit mehreren ersten kryptographischen Algorithmen und zumindest einem ersten Kon trollalgorithmus, das dazu konfiguriert ist, eine Datenstruktur gemäß einer der hier beschriebenen Ausführungsformen zu erzeugen. In einem weiteren Aspekt betrifft die Erfindung ein Empfänger-Kryptosystem mit mehreren zweiten kryptographischen Algorithmen und zumindest einem zweiten Kontrollalgorithmus, das dazu konfiguriert ist, eine Datenstruktur gemäß einem der hier beschriebenen Ausführungsformen zu verarbeiten.
In einem weiteren Aspekt betrifft die Erfindung ein Bereitsteller-Kryptosystem. Das Bereitsteller-Kryptosystem umfasst zumindest einen Prozessor sowie ein flüchtiges oder nicht flüchtiges Speichermedium mit mehreren ersten kryptographischen Algo rithmen und mindestens einen ersten Kontrollalgorithmus. Ein erster Kontrollalgo rithmus ist eine Rechenvorschrift zur Auswahl und/oder Kombination von einem oder mehreren der ersten kryptographischen Algorithmen. Der zumindest eine Pro zessor ist konfiguriert zum:
- Erzeugen von Eingabedaten;
- Berechnen von zusammengesetzten kryptographischen Daten durch Ausführung von mehreren der ersten kryptographischen Algorithmen, wobei die zusammen gesetzten kryptographischen Daten als Funktion von Eingabedaten berechnet werden, wobei eine Auswahl der mehreren ersten kryptographischen Algorithmen und/oder eine Kombination der mehreren ersten kryptographischen Algorithmen gemäß eines ersten Kontrollalgorithmus erfolgt;
- Erzeugen einer Datenstruktur gemäß einer der hier beschriebenen Ausführungs formen, wobei die Datenstruktur ein Format hat, das zwischen dem Bereitsteller- Kryptosystem und einem Empfänger-Kryptosystem vereinbart wurde, wobei das erste vordefinierte Feld mit den zusammengesetzten kryptographischen Daten gefüllt wird; und
- Bereitstellen der Datenstruktur von dem Bereitsteller-Kryptosystem an das Emp fänger-Kryptosystem .
Unter dem Format einer Datenstruktur wird hier insbesondere eine Spezifikation der Art und/oder Position und/oder des Inhalts verschiedener Felder einer Datenstruktur verstanden.
In einem weiteren Aspekt betrifft die Erfindung ein Empfänger-Kryptosystem. Das Empfänger-Kryptosystem umfasst zumindest einen Prozessor sowie ein flüchtiges oder nicht flüchtiges Speichermedium mit mehreren zweiten kryptographischen Al gorithmen und mindestens einem zweiten Kontrollalgorithmus. Ein zweiter Kon- trollalgorithmus ist eine Rechenvorschrift zur Auswahl und/oder Kombination von einem oder mehreren der zweiten kryptographischen Algorithmen. Der zumindest eine Prozessor ist konfiguriert zum:
- Empfangen einer Datenstruktur gemäß einer der hier beschriebenen Ausfüh rungsformen von dem Bereitsteller-Kryptosystem , wobei die Datenstruktur zu sammengesetzte kryptographischen Daten in dem vordefinierten ersten Feld ge speichert hat;
- Berechnen von Ergebnisdaten als Funktion der zusammengesetzten kryptogra phischen Daten durch Anwenden von einem oder mehreren der zweiten krypto graphischen Algorithmen, wobei eine Auswahl und/oder Kombination des einen oder der mehreren zweiten kryptographischen Algorithmen gemäß eines zweiten Kontrollalgorithmus erfolgt; und
- automatische Ausführung einer Software- und/oder Flardwarefunktion in Abhän gigkeit von den Ergebnisdaten.
In einem weiteren Aspekt betrifft die Erfindung ein System umfassend ein oder meh rere Bereitsteller-Kryptosysteme und ein oder mehrere Empfänger-Kryptosysteme gemäß einer der hier beschriebenen Ausführungsformen.
Unter einem „Kryptosystem“ oder „kryptographischen System“ wird hier ein Da tenverarbeitungssystem verstanden, welches kryptographische Algorithmen ver wendet. Beispielsweise kann es sich bei dem Datenverarbeitungssystem und einen Standardcomputer, ein Notebook, ein portables Telekommunikationsgerät, einen Server, jegliches sonstiges Datenverarbeitungssystem oder um Kombinationen von mehreren dieser Komponenten handeln.
Unter einem „kryptographischen Algorithmus“ wird hier ein Algorithmus verstan den, der dazu dient, Daten vor unbefugtem Lesen oder Manipulation zu schützen und/oder eine solche Manipulation zumindest erkennbar zu machen. Ein kryptogra- phischer Algorithmus kann z.B. ein Verschlüsselungsalgorithmus, ein Entschlüsse lungsalgorithmus, ein Signieralgorithmus, ein Algorithmus zur Prüfung einer digita len Signatur, oder ein Algorithmus zur Ausführung von teilnehmerspezifischen Schritten eines Schlüsselvereinbarungsverfahrens sein. Unter „zusammengesetzten kryptographischen Daten werden hier Daten ver standen, die durch kombinierte Anwendung mehrerer (erster) kryptographischer Algorithmen und/oder durch Kombination der von mehreren ersten kryptographi schen Algorithmen erzeugten Daten verstanden. Die zusammengesetzten krypto graphischen Daten können z.B. das Ergebnis der Anwendung von Signaturerzeu gungsalgorithmen (Signieralgorithmen), von Verschlüsselungsalgorithmen oder von Schlüsselvereinbarungsalgorithmen sein.
Unter einer „sequentiellen“ Ausführung von Algorithmen wird hier eine iterative Ausführung dieser Algorithmen verstanden, wobei der erste in der Sequenz ausge führte Algorithmus auf die Eingangsdaten angewandt wird und jeder der nachfol gend ausgeführten Algorithmen auf die Daten angewandt wird, die vom unmittelbar zuvor ausgeführten Algorithmus zurückgegeben werden.
Unter einer „parallelen“ Ausführung von Algorithmen wird hier eine Ausführung mehrerer Algorithmen verstanden, wobei jeder dieser Algorithmen jeweils für sich auf die Eingangsdaten oder Teile davon angewandt wird und eine Ausgabe produ ziert. Die Ausführung der mehreren Algorithmen kann dabei in zeitlich beliebiger Sequenz durchgeführt werden, z.B. gleichzeitig oder nacheinander in beliebiger Reihung.
Unter einem „Endschlüssel“ wird hier ein kryptographischer Schlüssel verstanden, der als Funktion mehrerer anderer Schlüssel (Zwischenwertschlüssel) berechnet wird.
Unter „Teildaten von zusammengesetzten kryptographischen Daten“ werden hier Daten verstanden, die von je einem einzelnen ersten kryptographischen Algorith mus, der vom ersten Kontrollalgorithmus zur Berechnung der zusammengesetzten kryptographischen Daten verwendet wurden, berechnet werden.
Unter einem „Feld“ wird hier ein physischer und/oder logischer Bereich innerhalb einer Datenstruktur bezeichnet, welcher gemäß einer Vereinbarung zwischen zwei oder mehreren Kryptosystemen zur Speicherung von Daten einer vordefinierten Be deutung und/oder Funktion und mit vordefinierten Eigenschaften (z.B. Datentyp, Länge, Position, etc.) vorgesehen ist. Ein Datenfeld kann mehrere Eingabebereiche umfassen, welche ebenfalls gemäß der Vereinbarung zur Speicherung von Daten einer vordefinierten Bedeutung und/oder Funktion und mit vordefinierten Eigen schaften vorgesehen sind. Die Speicherung von anderen als den vorgesehenen Daten in dem Datenfeld und/oder in einem Eingabebereich innerhalb des Datenfel des führt typischerweise zu Fehlern oder einem Abbruch der Datenverarbeitung. Die Vereinbarung kann z.B. in Form eines kryptographischen Standards wie z.B. X.509 bei Zertifikaten realisiert sein.
Ein „Parameter“ ist ein Datenwert oder eine Menge von Datenwerten mit einer be stimmten Funktion oder Bedeutung.
Ein „Kontroll parameter“ ist ein Parameter, der die Art der Ausführung eines ersten oder zweiten Kontrollalgorithmus direkt steuert. Ein Kontrollparameter kann z.B. ei nem Kontrollalgorithmus als Argument übergeben werden.
Ein „Komponentenparameter“ ist ein Parameter, der die Art der Ausführung eines ersten oder zweiten kryptographischen Algorithmus direkt steuert, und optional dadurch indirekt auch die Ausführung eines Kontrollalgorithmus steuert, welcher sich des ersten oder zweiten kryptographischen Algorithmus bedient. Ein Kompo nentenparameter kann z.B. einem kryptographischen Algorithmus und/oder dem Kontrollalgorithmus, der sich dieses kryptographischen Algorithmus bedient, als Ar gument übergeben werden.
Der Fachmann wird verstehen, dass Aspekte der vorliegenden Erfindung als Gerät, Verfahren oder Computerprogramm oder Computerprogrammprodukt ausgeführt sein können. Entsprechend können Aspekte der vorliegenden Erfindung die Form einer reinen Flardware-Ausführungsform, einer reinen Software-Ausführungsform (darunter Firmware, im Speicher befindliche Software, Mikro-Code, usw.) oder einer Software- und Flardware-Aspekte kombinierenden Ausführungsform annehmen, die hierin alle allgemein als "Schaltkreis", "Modul" oder "System" bezeichnet sein kön nen. Des Weiteren können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, welches durch ein computerlesbares Me dium oder durch mehrere computerlesbare Medien in Form von computerausführba rem Code getragen wird. Ein Computerprogramm umfasst ebenfalls den computer ausführbarem Code. "Computerausführbarem Code" kann auch als "Computerpro grammanweisungen" bezeichnet werden. Eine beliebige Kombination von einem oder mehreren computerlesbaren Medium (en) kann verwendet werden. Das computerlesbare Medium kann ein computerles bares Signalmedium oder ein computerlesbares Speichermedium sein. Ein "compu terlesbares Speichermedium", wie hierin verwendet, umfasst ein materielles Spei chermedium, das Anweisungen speichern kann, die durch einen Prozessor einer Computervorrichtung ausführbar sind. Das computerlesbare Speichermedium kann als computerlesbares nicht-flüchtiges Speichermedium bezeichnet werden. Das computerlesbare Speichermedium kann auch als ein greifbares computerlesbares Medium bezeichnet werden. In einigen Ausführungsformen kann ein computerles bares Speichermedium auch in der Lage sein Daten zu speichern, die es ermögli chen, dass durch den Prozessor der Rechnervorrichtung auf sie zugegriffen wird. Beispiele von computerlesbaren Speichermedien umfassen, sind aber nicht be schränkt auf: eine Diskette, eine magnetische Festplatte, eine Festkörper- Festplatte, Flash-Speicher, einen USB-Stick, Random Access Memory (RAM), Festwertspeicher (ROM), eine optische Platte, eine magneto-optische Platte, und die Registerdatei des Prozessors. Beispiele für optische Platten umfassen Compact Disks (CD) und Digital Versatile Disks (DVD), zum Beispiel CD-ROM, CD-RW, CD- R, DVD-ROM, DVD-RWoder DVD-R-Disks. Der Begriff computerlesbares Spei chermedium bezieht sich auch auf verschiedene Arten von Aufzeichnungsmedien, die dafür geeignet sind von der Rechnervorrichtung über ein Netzwerk oder eine Kommunikationsverbindung abgerufen zu werden. Zum Beispiel können Daten über ein Modem, über das Internet oder über ein lokales Netzwerk abgerufen werden. Computerausführbarer Code, der auf einem computerlesbaren Medium ausgeführt wird, kann über jedes geeignete Medium übermittelt werden, einschließlich, aber nicht darauf beschränkt, drahtlose, drahtgebundene, Lichtwellenleiter, RF, etc., oder jede geeignete Kombination der vorstehenden Medien.
Ein computerlesbares Signalmedium kann ein ausgebreitetes Datensignal beinhal ten, das den computerlesbaren Programmcode zum Beispiel in einem Basissignal (baseband) oder als Teil eines Trägersignals (Trägerwelle) enthält. Solch ein Aus breitungssignal kann in einer beliebigen Form ausgebildet sein, darunter, jedoch nicht beschränkt auf, eine elektromagnetische Form, eine optische Form oder jede geeignete Kombination davon. Bei einem computerlesbaren Signalmedium kann es sich um ein beliebiges computerlesbares Medium handeln, das kein computerlesba res Speichermedium ist und das ein Programm zur Verwendung durch oder in Ver bindung mit einem System, Gerät oder Vorrichtung zur Ausführung von Anweisun gen übertragen, verbreiten oder transportieren kann.
Ein „Computer-Speicher“ oder „Speicher“ ist ein Beispiel für ein computerlesbares Speichermedium. Ein Computer-Speicher ist jeder Speicher, der einem Prozessor zugänglich ist. Ein "Computer-Datenspeicher" oder "Datenspeicher" ist ein weiteres Beispiel eines computerlesbaren Speichermediums. Computer-Datenspeicher ist jedes flüchtige oder nichtflüchtige computerlesbare Speichermedium. In einigen Ausführungsformen kann ein Computerspeicher auch ein Computer-Datenspeicher sein oder umgekehrt.
Ein "Prozessor", wie er hierin verwendet wird, umfasst eine elektronische Kompo nente, die in der Lage ist, eine programm- oder maschinenausführbare Anweisung oder computerausführbaren Code auszuführen. Eine Bezugnahme auf die Rech nervorrichtung, die einen "Prozessor" umfasst, sollte so interpretiert werden, dass sie möglicherweise mehr als einen Prozessor oder Verarbeitungskerne umfasst. Der Prozessor kann zum Beispiel ein Multi-Core-Prozessor sein. Ein Prozessor kann sich auch auf eine Sammlung von Prozessoren innerhalb eines einzigen Computer systems oder verteilt auf mehrere Computersysteme beziehen. Der Begriff Rech nervorrichtung oder des Computers soll auch so interpretiert werden, um möglich erweise auf eine Sammlung oder ein Netzwerk von Rechnervorrichtungen oder Computern, die jeweils einen Prozessor oder Prozessoren umfassen, hinzuweisen. Der computerausführbare Code kann durch mehrere Prozessoren ausgeführt wer den, die innerhalb derselben Rechnervorrichtung oder sogar über mehrere Compu ter verteilt sein können.
Computerausführbarer Code kann maschinenausführbare Anweisungen oder ein Programm umfassen, das einen Prozessor veranlasst, einen Aspekt der vorliegen den Erfindung durchzuführen. Computerausführbarer Code zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in jeder beliebigen Kom bination einer oder mehrerer Programmiersprachen geschrieben sein, darunter eine objektorientierte Programmiersprache wie Java, Smalltalk, C++ oder Ähnliche und herkömmliche verfahrensorientierte Programmiersprachen wie die Programmier sprache „C“ oder ähnliche Programmiersprachen, und in maschinenausführbare Anweisungen übersetzt werden. In einigen Fällen kann der computerausführbare Code in der Form einer höheren Programmiersprache oder in einer vor-übersetzten Form vorliegen, und in Verbindung mit einem Interpreter verwendet werden, der die maschinenausführbaren Anweisungen generiert.
Der computerausführbare Code kann vollständig auf dem Rechner eines Benutzers, teilweise auf dem Rechner des Benutzers, als eigenständiges Software-Paket, teil weise auf dem Rechner des Benutzers und teilweise auf einem entfernt angeordne ten Rechner oder vollständig auf dem entfernt angeordneten Rechner oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Rechner mit dem Rechner des Benutzers durch eine beliebige Art von Netzwerk verbunden sein, einschließlich einem lokalen Netzwerk (LAN) oder einem Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Rechner hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters).
Die Computerprogrammanweisungen können auf einem Prozessor oder auf mehre ren Prozessoren ausgeführt werden. Im Falle mehrerer Prozessoren können diese auf mehre unterschiedliche Entitäten (z.B. Clients, Servern) verteilt sein. Jeder Pro zessor könnte einen für die jeweilige Entität vorgesehenen Teil der Instruktionen ausführen. Wenn also von einem System oder Verfahren die Rede ist, das mehrere Entitäten umfasst, so verstehen sich die Computerprogrammanweisungen so, dass diese so angepasst sind, um durch einen der jeweiligen Entität zugeordneten oder zugehörigen Prozessor ausgeführt zu werden.
Aspekte der vorliegenden Erfindung werden unter Bezugnahme auf Flussdiagramm- Darstellungen und/oder Blockschaltbilder von Verfahren, Vorrichtungen (Systemen) und Computerprogramm-produkten gemäß Ausführungsformen der Erfindung be schrieben. Es wird darauf hingewiesen, dass jeder Block oder Teile der Blöcke der Flussdiagramme, Darstellungen und/oder der Blockschaltbilder durch Computerpro grammanweisungen, gegebenenfalls in Form eines computerausführbaren Codes, ausgeführt werden können. Es wird weiter darauf hingewiesen, dass Kombinationen von Blöcken in verschiedenen Flussdiagrammen, Darstellungen und/oder Block- Schaltbildern kombiniert werden können, wenn sie sich nicht gegenseitig ausschlie ßen. Diese Computerprogrammanweisungen können einem Prozessor eines Uni versalrechners, Spezialrechners oder einer anderen programmierbaren Datenverar beitungsvorrichtung bereitgestellt werden, um eine Vorrichtung zu erzeugen, so dass die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen Mittel zur Ausführung der in dem Block oder den Blöcken der Flussdiagramme und/oder der Blockschalt bilder festgelegten Funktionen/Schritte erzeugen.
Diese Computerprogrammanweisungen können auch auf einem computerlesbaren Medium gespeichert sein, die einen Computer oder andere programmierbare Da tenverarbeitungsvorrichtungen oder andere Vorrichtungen steuern können, dass sie auf eine bestimmte Art funktionieren, so dass die auf dem computerlesbaren Medi um gespeicherten Anweisungen ein Fierstellungserzeugnis hervorrufen, einschließ lich Anweisungen, welche die/den in dem Block oder den Blöcken der Flussdia gramme und/oder der Blockschaltbilder festgelegte/n Funktion/Schritt umsetzen.
Die Computerprogrammanweisungen können auch auf einen Computer, anderen programmierbaren Datenverarbeitungsvorrichtungen oder anderen Vorrichtungen gespeichert werden, um die Ausführung einer Reihe von Prozessschritten auf dem Computer, anderen programmierbaren Datenverarbeitungsvorrichtungen oder ande ren Vorrichtungen zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer oder den anderen program mierbaren Vorrichtungen ausgeführten Anweisungen Verfahren zur Umsetzung der in dem Block oder den Blöcken der Flussdiagramme und/oder der Blockschaltbilder festgelegten Funktionen/Schritte erzeugen.
Kurze Beschreibung der Zeichnung
Nachfolgend werden Ausführungsformen der Erfindung mit Bezug auf die Zeich nung beschrieben. In der Zeichnung zeigt
Fig. 1A ein exemplarisches Flussdiagramm einer Ausgestaltung eines bereitstel lerseitig implementierten erfindungsgemäßen Verfahrens; Fig. 1B ein exemplarisches Flussdiagramm einer Ausgestaltung eines empfänger seitig implementierten erfindungsgemäßen Verfahrens;
Fig. 2 ein Blockdiagramm eines Bereitsteller-Kryptosystems;
Fig. 3 ein Blockdiagramm eines Empfänger-Kryptosystems;
Fig. 4 ein Schema eines ersten Kontrollalgorithmus und eine Datenstruktur mit den gemäß des ersten Kontrollalgorithmus erzeugten zusammengesetzten kryptographischen Daten;
Fig. 5 ein Schema der Anwendung eines anderen ersten Kontrollalgorithmus und eine Datenstruktur mit den gemäß diesem erzeugten zusammengesetzten kryptographischen Daten;
Fig. 6 ein Schema der Anwendung eines weiteren ersten Kontrollalgorithmus und eine Datenstruktur mit den gemäß diesem erzeugten zusammengesetzten kryptographischen Daten;
Fig. 7 ein X.509 Zertifikat als Beispiel einer Datenstruktur, die die zusammenge setzten kryptographischen Daten und zugehörige Parameter in spezifi schen Feldern gespeichert enthält.
Figur 1A zeigt ein exemplarisches Flussdiagramm einer Ausgestaltung eines be reitstellerseitig implementierten erfindungsgemäßen Verfahrens.
Das Verfahren gemäß Figur 1A kann z.B. in einem Bereitsteller-Kryptosystem im plementiert sein, wie es beispielhaft für Figur 2 beschrieben ist.
Die exemplarischen Verfahren gemäß Figuren 1 A oder 1 B können den Vorteil ha ben, dass eine große Agilität bei der Nutzung von Kryptoalgorithmen unterstützt wird, die es erlaubt, kryptographische Algorithmen auch in heterogenen Mehrteil nehmersystemen schrittweise auszutauschen und dabei für verschiedene IT- Anwendungen mehrere kryptographische Algorithmen parallel zu verwenden. Bisher sind die IT-Anwendungen nicht auf die parallele oder redundante Verwendung meh rerer kryptographischer Algorithmen vorbereitet, da bestehende, standardisierte Da tenstrukturformate für die entsprechenden auszutauschenden kryptographischen Daten, insbesondere digitale Signaturen, digitale Zertifikate, und/oder Verschlüsse lungscontainer Felder für die Ausgabedaten und/oder für die Identifikation genau einen dieser kryptographischen Algorithmen vorsehen.
In einem ersten Schritt 102 werden Eingabedaten erzeugt oder auf andere Weise bereitgestellt. Bei den Eingabedaten kann es sich um beliebige Daten handeln. Bei spielsweise können die Eingabedaten ein elektronisches Dokument sein, das sig niert werden soll um die Signatur zusammen mit dem elektronischen Dokument dem Empfänger zur Verfügung zu stellen um dem Empfänger mittels der Ermögli chung einer Signaturprüfung die Integrität des übermittelten elektronischen Doku ments zu prüfen. Es kann sich bei den Eingabedaten aber auch um andere Daten handeln, z.B. um kryptographische Schlüssel oder sonstige Datenwerte oder Da tensätze, die in verschlüsselter Form an das Empfänger-Kryptosystem übermittelt werden sollen, oder um Zufallswerte oder Parameter, die von einem Schlüsselver einbarungsalgorithmus zur Ableitung eines Schlüssels in mehreren nachfolgenden Verfahrensschritten werden sollen.
In Schritt 104 wendet das Bereitsteller-Kryptosystem nun nicht einen einzelnen kryptographischen Algorithmus auf die Eingabedaten (oder iterativ auf die Ausga ben der anderen kryptographischen Algorithmen) an, sondern zwei oder mehr kryp tographische Algorithmen. Die bereitstellerseitig implementierten kryptographischen Algorithmen werden hier auch als „erste kryptographische Algorithmen“ bezeichnet. In dem Bereitsteller-Kryptosystem können eine größere Anzahl an kryptographi schen Algorithmen implementiert sein, als tatsächlich zur Erzeugung der zusam mengesetzten kryptographischen Daten eingesetzt werden. Die Auswahl dieser kryptographischen Algorithmen und/oder die Art und Weise, wie diese kombiniert werden, ist in einem ersten Kontrollalgorithmus spezifiziert. Dies kann z.B. derart implementiert sein, dass die Algorithmenbezeichner der ersten kryptographischen Algorithmen sowie optional einige Komponentenparameter und/oder Kontrollpara- meter dem ersten Kontrollalgorithmus als Argument übergeben werden, wobei der erste Kontrollalgorithmus die einzelnen kryptographischen Algorithmen so ausführt, dass die ihnen zugehörenden Komponentenparametern als Argument übergeben werden. In Schritt 106 werden die mittels der mehreren ersten kryptographischen Algorith men berechneten zusammengesetzten kryptographischen Daten von dem Bereit- steller-Kryptosystem an das Empfänger-Kryptosystem bereitgestellt. Beispielsweise können die zusammengesetzten kryptographischen Daten über ein Netzwerk an das Empfänger-Kryptosystem gesendet werden oder in ein Speichermedium, auf das das Empfänger-Kryptosystem zugreifen kann, gespeichert werden. Vorzugs weise werden die zusammengesetzten kryptographischen Daten zusammen mit einem Identifikator eines zweiten Kontrollalgorithmus und mit Parametern (Algorith menbezeichner der ersten und implizit damit auch der zweiten kryptographischen Algorithmen, und optional auch Komponentenparameter und/oder Kontrollparameter des zweiten Kontrollalgorithmus) bereitgestellt. Die Parameter werden auch als „zu sammengesetzte Parameter“ bezeichnet.
Vorzugsweise werden die zusammengesetzten kryptographischen Daten innerhalb eines einzigen vordefinierten ersten Feldes einer Datenstruktur, die zwischen dem Bereitsteller-Kryptosystem und dem Empfänger-Kryptosystem vereinbart wurde, gespeichert. Außerdem wird in dieser Datenstruktur ein Identifikator eines zweiten Kontrollalgorithmus, der vom Empfänger-Kryptosystem zur Verarbeitung der zu sammengesetzten kryptographischen Daten verwendet werden muss, gespeichert. Dieser Identifikator kann z.B. zusammen mit den zusammengesetzten Parametern in einem zweiten Feld gespeichert werden.
Das erste Feld ist vorzugsweise ein Feld, das bereits gemäß bestehender Stan dards zur Speicherung kryptographischer Daten einzelner kryptographische Algo rithmen verwendet wird. Das zweite Feld ist vorzugsweise ein Feld, das bereits ge mäß bestehender Standards zur Speicherung von Algorithmenbezeichnern und op tionalen Algorithmenparametern einzelner kryptographischer Algorithmen verwendet wird.
Die Speicherung der besagten zusammengesetzten kryptographischen Daten und Parametern in den entsprechenden Feldern kann den Vorteil haben, dass es mög lich ist, innerhalb dieser Datenstruktur (zum Beispiel Zertifikate, Signaturen oder Schlüsselcontainern) über den Identifikator des zweiten Kontrollalgorithmus mehre re kryptographische Algorithmen anzugeben. Wenn das Empfängersystem also ei nen anderen kryptographischen Algorithmus verwenden soll als bisher, müssen die entsprechenden Regeln und Standards zur Signatur, Verifikation, Verschlüsselung, Entschlüsselung und/oder Schlüsselvereinbarung nicht jedes Mal neu definiert und beschrieben werden. Vielmehr werden diese Regeln einmalig generisch in Form von empfängerseitig implementierten Kontrollalgorithmen definiert, deren Identifika- toren dem Bereitstellungs-Kryptosystem bekannt sind. Somit müssen die spezifi schen Festlegungen für Protokolle, Zertifikate, Signaturen und Schlüsselcontainer nicht jedes Mal verändert werden, wenn Bereitsteller und/oder Empfänger einen anderen kryptographischen Algorithmus verwenden.
Beispielsweise kann jeder der ersten Kontrollalgorithmen eine Auswahl und/oder die Art (zum Beispiel die Reihenfolge und/oder den Modus sequenziell oder parallel) spezifizieren, welche der ersten kryptographischen Algorithmen wie miteinander kombiniert werden sollen, um die zusammengesetzten kryptographischen Daten zu erhalten. Typischerweise wählt jeder der ersten Kontrollalgorithmen nur kryptogra- phische Algorithmen des gleichen Typs aus, also zum Beispiel nur Signaturalgo rithmen, nur Verschlüsselungsalgorithmen, nur Algorithmen zur Schlüsselvereinba rung etc.
Die Ausführung der ersten Kontrollalgorithmen durch das Bereitstellung- Kryptosystem (und analog auch die Ausführung der zweiten Kontrollalgorithmen durch das Empfänger-Kryptosystem) wird vorzugsweise durch eine Softwareappli kation oder Softwaremodul implementiert, welche bzw. welches getrennt ist von der eigentlichen Applikationslogik (siehe Figuren 2 und 3).
Die Ausgabe des ersten Kontrollalgorithmus, die zusammengesetzten kryptographi schen Daten und optional auch die Parameter, können als Ausgabe eines neuen, aus mehreren einzelnen kryptographischen Algorithmen zusammengesetzten Algo rithmus betrachtet werden. Für jeden auf dem Bereitsteller-Kryptosystem verwende ten ersten Kontrollalgorithmus gibt es vorzugsweise im Empfänger-Kryptosystem einen zu diesem funktional komplementären zweiten Kontrollalgorithmus. Der Identi- fikator der beiden funktional komplementären ersten und zweiten Kontrollalgorith men kann identisch sein, auch wenn er bereitstellerseitig andere Rechenschritte repräsentiert als empfängerseitig. Dies reduziert den Aufwand der Umstellung be stehender Einzelalgorithmus-Kryptosysteme auf Kryptosysteme die die Erzeugung zusammengesetzter kryptographischer Daten unterstützen (Flybridalgorithmus- Kryptosysteme) weiter, da die Verwendung von identischen Identifikatoren für be reitstellerseitig und empfängerseitig unterschiedliche Rechenschritte eines mehrsei tigen kryptographischen Verfahrens bereits in heutigen Kryptosystemen implemen tiert ist. Somit können die Kontrollalgorithmen-Identifikatoren und die zugehörigen zusammengesetzten kryptographischen Daten von vorgeschalteten Programmen auf der Anwendungsebene auf gleiche Weise verarbeitet und an Kryptomodule bzw. Kryptoprogramme „durchgereicht“ werden, wie dies bereits heute mit den Identifika toren und kryptographischen Daten einzelner kryptographischer Algorithmen ge schieht.
Figur 1B zeigt ein exemplarisches Flussdiagramm einer Ausgestaltung eines emp fängerseitig implementierten erfindungsgemäßen Verfahrens.
Das Verfahren gemäß Figur 1B kann z.B. in einem Empfänger-Kryptosystem im plementiert sein, wie es beispielhaft für Figur 3 beschrieben ist.
In einem ersten Schritt 108 empfängt das Empfänger-Kryptosystem die zusammen gesetzten kryptographischen Daten. Beispielsweise empfängt es die Daten direkt von einem Bereitsteller-Kryptosystem, z.B. über ein Netzwerk, oder liest die Daten von einem Speichermedium.
In einem nächsten Schritt 110 verarbeitet das Empfänger-Kryptosystem die zu sammengesetzten kryptographischen Daten, um Ergebnisdaten zu erhalten. Die Verarbeitung der zusammengesetzten kryptographischen Daten erfolgt mittels eines oder mehrerer zweiter kryptographischer Algorithmen. Die Auswahl und/oder Koor dination und Kombination der ein oder mehreren zweiten kryptographischen Algo rithmen erfolgt durch einen empfängerseitig implementierten, „zweiten“ Kontrollalgo- rithmus, der vorzugsweise die Algorithmenbezeichner der zweiten kryptographi schen Algorithmen als Argument empfängt. Die Algorithmenbezeichner können z.B. mit optional zusätzlich vorhandenen Kontrollparametern und/oder Komponentenpa rametern aus der Datenstruktur gelesen werden. Vorzugsweise wird dieser zweite Kontrollalgorithmus durch einen Identifikator festgelegt, welcher zusammen mit den zusammengesetzten kryptographischen Daten empfangen und von dem Bereitstel ler-Kryptosystem bestimmt wurde. Es ist möglich, dass nur ein einzelner zweiter kryptographischer Algorithmus zur Verarbeitung der zusammengesetzten krypto- graphischen Daten verwendet wird, obwohl mehrere erste kryptographische Algo rithmen zur Berechnung der zusammengesetzten kryptographischen Daten ver wendet wurden (zum Beispiel bei „ODER“ Kontrollalgorithmen).
Schließlich führt das Empfänger-Kryptosystem in Schritt 112 automatisch eine Soft- ware-und/oder Hardwarefunktion in Abhängigkeit von den Ergebnisdaten aus.
Beispielsweise könnten die zusammengesetzten kryptographischen Daten die Ein gabedaten in verschlüsselter Form sein und die Ergebnisdaten könnten die ent schlüsselten, rekonstruierten Eingabedaten darstellen. Die automatische Software- und/oder Hardwarefunktion könnte eine Ausgabe der rekonstruierten, entschlüssel ten Daten an einen Nutzer oder die Speicherung der Daten in entschlüsselter Form umfassen.
Gemäß eines anderen Beispiels könnten die zusammengesetzten kryptographi schen Daten eine zusammengesetzte Signatur eines elektronischen Dokuments oder dessen Hashwerts sein, und die Ergebnisdaten könnten das Ergebnis oder die Ergebnisse von ein oder mehreren Signaturprüfprozessen sein. In Abhängigkeit dieses Ergebnisses könnte das elektronische Dokument als vertrauenswürdig be trachtet und zur weiteren Verarbeitung weitergeleitet oder gespeichert werden, oder als manipuliert verworfen werden. Zusätzlich oder alternativ ist es auch möglich, dass im Falle des Ergebnisses, dass die Signatur valide ist, ein mechanischer Schließmechanismus geöffnet oder freigegeben wird. Beispielsweise könnte es sich bei der geprüften Signatur um die Signatur eines Identitätsdokuments eines Nutzers handeln, und die Signaturprüfung könnte im Rahmen eines Authentifizierungsver- fahrens z.B. zur Gewährung des Zutritt zu einem geschützten Bereich oder Raum und/oder zur Gewährung des Zugriffs auf Softwarefunktionen oder Daten erfolgen.
Gemäß eines weiteren Beispiels könnten die zusammengesetzten kryptographi schen Daten ein Endschlüssel sein, der im Zuge eines Schlüsselvereinbarungsver fahrens zwischen dem Bereitsteller-Kryptosystem und dem Empfänger- Kryptosystem vereinbart wurde. Dieser Endschlüssel kann nun beispielsweise zum Aufbau eines kryptographische abgesicherten Kommunikationskanals zwischen Be reitsteller-Kryptosystem und Empfänger-Kryptosystem genutzt werden. Gemäß eines weiteren Beispiels sind die zusammengesetzten kryptographischen Daten ein Schlüsselcontainer, der mehrere verschiedene kryptographische Schlüs sel umfasst, die durch den zweiten Kontrollalgorithmus wieder einzeln verfügbar gemacht und/oder ihrer jeweiligen Funktion gemäß verwendet werden, z.B. um Da ten zu ver- oder entschlüsseln, um Daten zu signieren, Signaturen zu prüfen, etc.
Figur 2 zeigt ein Blockdiagramm eines Bereitsteller-Kryptosystems 200. Das Bereit- steller-Kryptosystem kann zum Beispiel als Standard-Computersystem, Server- Computersystem, verteiltes Cloud-Computersystem oder sonstiges Datenverarbei tungssystem implementiert sein. Das Kryptosystem 200 umfasst ein oder mehrere Prozessoren 202 sowie ein flüchtiges oder nicht flüchtiges Speichermedium 204.
Vorzugsweise umfasst das Speichermedium zumindest ein Anwendungsprogramm 206, zum Beispiel ein E-Mail-Programm zur Verarbeitung von S/MIME Daten, sowie ein erstes kryptographisches Programm 212. Das erste Anwendungsprogramm und das erste kryptographische Programm sind durch eine Datenaustauschschnittstelle operativ aneinander gekoppelt. Es ist auch möglich, dass das erste kryptographi sche Programm eine Programmbibliothek ist oder ein in das erste Anwendungspro gramm integriertes Programmodul.
Das erste kryptographische Programm 212 umfasst eine Vielzahl von mehreren ers ten kryptographischen Algorithmen 214-224. Die ersten kryptographischen Algo rithmen können alle dem gleichen Typ angehören oder zu verschiedenen Typen angehören. Beispielsweise implementieren die ersten kryptographischen Algorith men 214-220 jeweils ein unterschiedliches Signierverfahren. Der erste kryptogra phische Algorithmus 222 ist ein Verschlüsselungsalgorithmus und der erste krypto graphische Algorithmus 224 ist ein Schlüsselvereinbarungsalgorithmus.
Das kryptographische Programm umfasst ein Berechnungsmodul 226, welches ei nen oder mehrere erste Kontrollalgorithmen 228-232 beinhaltet oder einiesen kann. Jeder dieser ersten Kontrollalgorithmen spezifiziert eine Auswahl und/oder eine Kombination (im Sinne der Art und Weise, wie die Algorithmen und/oder die Ausga ben der Algorithmen miteinander kombiniert werden sollen) mehrerer erster krypto- graphischer Algorithmen, wobei vorzugsweise nur erste kryptographische Algorith men des gleichen Typs verbunden werden. Es ist eine Vielzahl von ersten und dazu komplementären zweiten Kontrollalgorith- men möglich, die vorzugsweise mit dem gleichen Identifikator identifiziert werden, so z.B.:
SIGNATUR-UND: hier wird eine zusammengesetzte Signatur durch Berechnen ei ner Signatur durch jeden der vom ersten Kontrollalgorithmus ausgewählten Signatu ralgorithmen und nachfolgendes Kombinieren (z.B. Konkatenieren) dieser Signatu ren zu einer zusammengesetzten Signatur erzeugt. Die (vom Empfänger- Kryptosystem vorzunehmende) Verifikation eines empfängerseitig implementierten SIGNATUR-UND Kontrollalgorithmus gibt als Ergebnisdaten zurück, dass die zu sammengesetzte Signatur valide ist, wenn alle Signaturen der einzelnen zur Erzeu gung der zusammengesetzten Signatur verwendeten Signaturen valide sind.
SIGNATUR-ODER: hier wird wie beim SIGNATUR-UND eine zusammengesetzte Signatur durch Berechnen einer Signatur durch jeden der vom ersten Kontrollalgo rithmus ausgewählten Signaturalgorithmen und nachfolgendes Kombinieren dieser Signaturen zu einer zusammengesetzten Signatur erzeugt. Die (vom Empfänger- Kryptosystem vorzunehmende) Verifikation eines empfängerseitig implementierten SIGNATUR-ODER Kontrollalgorithmus gibt als Ergebnisdaten zurück, dass die zu sammengesetzte Signatur valide ist, wenn wenigstens eine Signatur der mehreren zur Erzeugung der zusammengesetzten Signatur verwendeten Signaturen valide ist.
SIGNATUR-K-aus-N (K>0; N >= K): hier wird eine zusammengesetzte Signatur durch Berechnen einer Signatur durch jeden der vom ersten Kontrollalgorithmus ausgewählten N Signaturalgorithmen und nachfolgendes Kombinieren dieser Signa turen zu einer zusammengesetzten Signatur erzeugt. Die (vom Empfänger- Kryptosystem vorzunehmende) Verifikation eines empfängerseitig implementierten SIGNATUR-K-aus-N Kontrollalgorithmus gibt als Ergebnisdaten zurück, dass die zusammengesetzte Signatur valide ist, wenn wenigstens K der Signaturen der N zur Erzeugung der zusammengesetzten Signatur verwendeten Signaturen valide ist.
SCHLÜSSELVEREINBARUNG-XOR: Die mit den einzelnen ersten kryptographi- schen Schlüsselvereinbarungsalgorithmen vereinbarten Schlüssel werden auf eine gemeinsame Länge gepaddet oder gekürzt und dann mit XOR zu einem Endschlüs sel verbunden. Der Endschlüssel stellt die zusammengesetzten kryptographischen Daten dar und wird als der zwischen dem Bereitsteller-Kryptosystem und dem Emp- fänger-Kryptosystem letztlich vereinbarte kryptographische Schlüssel verwendet. Das Empfänger-Computersystem Kryptosystem muss sämtliche Schlüsselvereinba rungsalgorithmen (in Form von zweiten kryptographischen Algorithmen) implemen tieren, die funktional komplementärer sind zu den vom Bereitsteller-Kryptosystem als erste kryptographische Algorithmen zur Erzeugung des Endschlüssels verwen deten Schlüsselvereinbarungsverfahren. Andernfalls schlägt die Schlüsselvereinba rung zwischen Bereitsteller-Kryptosystem und Empfänger-Kryptosystem fehl.
SCHLÜSSELVERSCHLÜSSELUNG-SEQUENTIELL: Ein symmetrischer Schlüssel wird mit einem ersten kryptographischen Algorithmus, der ein bestimmter Ver schlüsselungsalgorithmus ist, verschlüsselt. Anschließend wird das Chiffrat noch mals mit einem weiteren ersten kryptographischen Algorithmus, der einen anderen Verschlüsselungsalgorithmus implementiert, verschlüsselt. Das hierbei entstehende Chiffrat wird dann mit einem weiteren ersten kryptographischen Algorithmus, der einen weiteren anderen Verschlüsselungsschlüssel implementiert, verschlüsselt. Usw. Die Ausgabe des letzten ausgeführten Verschlüsselungsalgorithmus wird als die zusammengesetzten kryptographischen Daten bereitgestellt. Die (vom Empfän ger-Kryptosystem vorzunehmende) Entschlüsselung eines gemäß des ersten Kon- trollalgorithmus SCHLÜSSELVERSCHLÜSSELUNG-SEQUENTIELL erzeugten Chiffrate beinhaltet die Anwendung von funktional komplementären Entschlüsse lungsschlüsseln in inverser Reihenfolge auf das vom Bereitsteller-Kryptosystem empfangene Chiffrat. Sofern das Empfänger-Kryptosystem all die benötigten Ent schlüsselungsalgorithmen implementiert und über die nötigen Entschlüsselungs schlüssel verfügt, ist es in der Lage, die ursprünglichen Eingabedaten zu rekonstru ieren und als Ergebnisdaten zu verwenden.
SCHLÜSSEL-CONTAINER: hier wird ein zusammengesetzter Schlüssel erzeugt, der durch Aneinanderfügen von Schlüsseln, die durch die vom ersten Kontrollalgo- rithmus ausgewählten Algorithmen identifiziert und/oder berechnet werden, entsteht. Der zusammengesetzte Schlüssel kann z.B. durch Konkatenation gebildet werden. Der funktional zu diesem ersten Kontrollalgorithmus komplementäre zweite Kon- trollalgorithmus extrahiert die einzelnen Schlüssel aus dem Container und wendet diese vorzugsweise auch gemäß ihres Typs in einem kryptographischen Verfahren an. Jeder der ersten Kontrollalgorithmen kann also selbst als neuer, kryptographischer Algorithmus betrachtet werden, der sich aus mehreren (ersten) kryptographischen Algorithmen zusammensetzt.
Vor dem Hintergrund der wachsenden Verbreitung von Quantencomputern werden viele neue Algorithmen entwickelt, die wegen der kurzen Zeit zur kryptografischen Analyse u.U. noch Sicherheitsprobleme enthalten können oderwegen ihrer Kom plexitätfehlerhaft implementiert werden können. Diese neuen Algorithmen können - auch zusammen mit den bekannten Algorithmen - mittels einer oder mehrerer ers ter Kontrollalgorithmen kombiniert werden. Selbst wenn ein verwendeter Kompo nentenalgorithmus als gebrochen gälte, würden die zusammengesetzten kryptogra phischen Daten (zum Beispiel eine zusammengesetzte Signatur) mit wenigstens einem noch sicheren Komponentenalgorithmus korrekt verifiziert bzw. verarbeitet werden können (zumindest bei parallelem, nicht sequenzielle Einsatz der ersten kryptographischen Algorithmen).
Da bereitstellerseitig und/oder empfängerseitig die Regeln für das Zusammensetzen von kryptographischen Algorithmen in separat gespeicherten und verarbeiteten Kontrollalgorithmen gespeichert sind, kann eine große kryptografische Agilität er reicht werden. So kann der Betreiber eines zur Signaturerstellung ausgebildeten Bereitsteller-Kryptosystems z.B. bei Signatur-ODER weitere neue Signaturalgorith men hinzufügen, deren Signaturen in den zusammengesetzten kryptographischen Daten enthalten sind, selbst wenn bekannt ist, dass noch nicht alle Empfänger den neuen Signaturalgorithmus beherrschen (also entsprechende Signaturen prüfen können.
In dem hier gezeigten Beispiel könnte das Berechnungsmodul 226 zum Beispiel einen ersten Kontrollalgorithmus 228 gemäß SIGNATUR-UND, einen weiteren ers ten Kontrollalgorithmus 230 gemäß SIGNATUR-ODER und einen weiteren ersten Kontrollalgorithmus 232 gemäß SCHLÜSSELVERSCHLÜSSELUNG SEQUENTIELL umfassen.
Das erste Anwendungsprogramm könnte Eingabedaten 208, zum Beispiel ein elekt ronisches Dokument wie zum Beispiel eine E-Mail, an das erste kryptographische Programm 212 bereitstellen. Die Bereitstellung kann optional mit einer Vorgabe er- folgen, welche der ersten Kontrollalgorithmus zur Erzeugung eine Signatur für das elektronische Dokument zum Einsatz kommen soll. Das erste kryptographische Programm empfängt die Eingabedaten 208 und führt zum Beispiel den ersten Kon trollalgorithmus 230 (SIGNATUR-ODER) durch.
Innerhalb des ersten Kontrollalgorithmus 230 ist spezifiziert, dass die jeweils eine Signatur der Eingabedaten 208 oder eines Hashwerts der Eingabedaten zu berech nen. Außerdem sorgt der Kontrollalgorithmus 230 für eine Kombination der drei er zeugten Signaturen, zum Beispiel durch Konkatenieren der einzelnen Signaturen. Die einzelnen Signaturen können z.B. mittels vorgegebener Trennzeichen (Delimi- ter) , übervorgegebene Maximallängen oder auf sonstige Weise voneinander trenn bar sein. Das so erhaltene Konkatenat aus Signaturen wird als die zusammenge setzten kryptographischen Daten 236 in einer Datenstruktur 234 gespeichert und an das erste Anwendungsprogramm 206 zurückgegeben. Außerdem wird ein Identifi- kator des zweiten Kontrollalgorithmus, der zur Verarbeitung der zusammengesetz ten kryptographischen Daten 236 verwendet werden soll, in die Datenstruktur 234 geschrieben.
Schließlich ist das Bereitsteller-Kryptosystem 200 dazu ausgebildet, die Datenstruk tur mit den zusammengesetzten kryptographischen Daten 236 und dem Identifikator des zweiten Kontrollalgorithmus (SIGNATUR-ODER) an das Empfänger- Kryptosystem 240 bereitzustellen. Gemäß manchen Implementierungsvarianten beinhaltet das Bereitsteller-Kryptosystem eine Schnittstelle 210, um die Datenstruk tur 234 direkt an das Empfänger-Kryptosystem 240 zu senden. Zusätzlich oder al ternativ dazu kann das Bereitsteller-Kryptosystem aber auch eine Schnittstelle zur Speicherung der Datenstruktur 234 in einem Speichermedium 242 besitzen. Das Speichermedium 242 ist ein Speichermedium, auf welches das Empfänger- Kryptosystem aktuell oder künftig Lesezugriff hat.
Figur 3 zeigt ein Blockdiagramm eines Empfänger-Kryptosystems 240.
Das Empfänger-Kryptosystem 240 umfasst ein oder mehrere Prozessoren 302 so wie ein flüchtiges oder nicht flüchtiges Speichermedium 304. Das Empfänger- Kryptosystem kann in Form verschiedenster datenverarbeitender Systeme ausge bildet sein wie bereits für das Bereitsteller-Kryptosystem beschrieben. Das Kryptosystem 240 umfasst ein oder mehrere Prozessoren 302 sowie ein flüch tiges oder nicht flüchtiges Speichermedium 304.
Das Empfänger-Kryptosystem umfasst eine Schnittstelle 310 zum Empfang der zu sammengesetzten kryptographischen Daten. Beispielsweise können die zusam mengesetzten kryptographischen Daten als Bestandteil einer Datenstruktur 234 empfangen werden, wobei die Datenstruktur eine standardgemäße Datenstruktur sein kann, z.B. ein X.509 Zertifikat. Die Schnittstelle 310 kann z.B. eine Schnittstelle zum Empfang einer Datenstruktur 234 von dem Bereitsteller-Kryptosystem über ein Netzwerk sein oder eine Schnittstelle zum Lesen der Datenstruktur 234 von einem Speichermedium 242.
Vorzugsweise umfasst das Speichermedium zumindest ein Anwendungsprogramm 306, zum Beispiel ein E-Mail-Programm zur Verarbeitung von S/MIME Daten, sowie ein kryptographisches Programm 312. Das Anwendungsprogramm 306, auch als „zweites Anwendungsprogramm“ bezeichnet, und das „zweite“ kryptographische Programm 312 sind durch eine Datenaustauschschnittstelle operativ aneinander gekoppelt. Es ist auch möglich, dass das zweite kryptographische Programm eine Programmbibliothek ist oder ein in das zweite Anwendungsprogramm integriertes Programmodul.
Das zweite kryptographische Programm 312 umfasst eine Vielzahl von mehreren zweiten kryptographischen Algorithmen 314-324. Die zweiten kryptographischen Algorithmen können alle dem gleichen Typ angehören oder zu verschiedenen Ty pen gehören. Beispielsweise implementieren die zweiten kryptographischen Algo rithmen 314-320 jeweils ein unterschiedliches Signaturprüfverfahren. Der zweite kryptographische Algorithmus 322 ist ein Entschlüsselungsalgorithmus und der zweite kryptographische Algorithmus 324 ist ein Schlüsselvereinbarungsalgorith mus. Beispielsweise kann jeder der zweiten Algorithmen funktional komplementär zu einem ersten Algorithmus 214-224 des Bereitsteller-Kryptosystems sein. Es ist auch möglich, dass die zweiten Algorithmen eines Empfänger-Kryptosystems funk tional komplementär sind zu einer Menge an ersten Algorithmen, die verteilt in ver schiedenen Bereitsteller-Kryptosystemen gespeichert sind. Dies kann den Vorteil haben, dass das Empfänger-Kryptosystem zusammengesetzte kryptographische Daten, die von einer Vielzahl unterschiedlicher Bereitsteller-Kryptosysteme mit ei- nem unterschiedlichen Satz an ersten kryptographischen Algorithmen erzeugt wer den, gleichermaßen verarbeiten kann.
Das kryptographische Programm umfasst ein Berechnungsmodul 326, welches ei nen oder mehrere zweite Kontrollalgorithmen 328-332 beinhaltet oder einiesen kann. Jeder dieser zweiten Kontrollalgorithmen spezifiziert eine Auswahl und/oder eine Kombination (im Sinne der Art und Weise, wie Algorithmen und/oder die Aus gaben der Algorithmen miteinander kombiniert werden sollen) mehrerer zweiter kryptographische Algorithmen, wobei vorzugsweise nur zweite kryptographische Algorithmen des gleichen Typs verbunden werden.
Die zweiten Kontrollalgorithmen sind vorzugsweise funktional komplementär zu je einem ersten Kontrollalgorithmus, z.B. einem der mit Bezug auf Figur 2 beschriebe nen Kontrollalgorithmen wie z.B. SIGNATUR-UND, SIGNATUR-ODER, etc.
Das Berechnungsmodul ist dazu konfiguriert, die Datenstruktur 234 von dem An wendungsprogramm zu empfangen und auszuwerten. Die Datenstruktur enthält ne ben den zusammengesetzten kryptographischen Daten auch einen Identifikator ei nes zweiten Kontrollalgorithmus, hier z.B. von Kontrollalgorithmus 330, und be stimmt hierdurch den zweiten Kontrollalgorithmus, der vom Empfänger- Kryptosystem in Antwort auf den Empfang der Datenstruktur ausgeführt wird.
Der ausgewählte zweite Kontrollalgorithmus ist ein SIGNATUR-ODER Kontrollalgo rithmus, der zum ersten Kontrollalgorithmus 230 (SIGNATUR-ODER), der die zu sammengesetzten kryptographischen Daten 236 erstellt hat, funktional komplemen tär ist.
Vorzugsweise enthält die empfangene Datenstruktur neben dem Identifikator des zweiten Kontrollalgorithmus 330 auch Parameter. In diesen Parametern können Al gorithmenbezeichner und optional auch Parameter der einzelnen zweiten krypto graphischen Algorithmen 316, 318 und 320 („Komponentenparameter) spezifiziert sein, die von dem zweiten Kontrollalgorithmus verwendet werden, um die zusam mengesetzten kryptographischen Daten zu verarbeiten um die Ergebnisdaten 308 zu erhalten. Die Parameter können z.B. auch Delimiter oder Maximalzeichense quenzlängen spezifizieren, die die von den einzelnen ersten kryptographischen Al gorithmen erzeugten kryptographischen Daten voneinander separieren, oder sons- tige Parameter, die die Ausführung des zweiten Kontrollalgorithmus direkt steuern („Kontrollparameter“). Wenn der ausgewählte zweite Kontrollalgorithmus z.B. ein SIGNATUR-ODER Algorithmus ist, würden die Ergebnisdaten 308 spezifizieren, dass die zusammengesetzte Signatur 236 valide ist, wenn eine der von den ersten kryptographischen Algorithmen erzeugten Signaturen gemäß der Prüfung durch einen korrespondierenden Signaturprüfalgorithmus 316-320 ergibt, dass die Signa tur valide ist.
Gemäß bevorzugten Beispielen der Erfindung werden die zusammengesetzten kryptographischen Daten 236 in einer Datenstruktur 234 gespeichert, deren Struktur zwischen dem Bereitsteller-Kryptosystem und dem Empfänger-Kryptosystem ver einbart wurde. Dies bedeutet, dass sich beide Kryptosysteme darüber einig sind, welche Daten in welchem Feld der Datenstruktur gespeichert werden bzw. sind. Die Vereinbarung kann vorzugsweise darauf beruhen, dass die Struktur der Datenstruk tur in einem (konventionellen) Standard festgelegt ist.
Vorzugsweise beinhalten die Parameter des zweiten Kontrollalgorithmus, die zu sammen mit dem Identifikator des zweiten Kontrollalgorithmus in der Datenstruktur 234 gespeichert sind, Algorithmenbezeichner und optional auch Komponentenpa rameter von ein oder mehreren zweiten kryptographischen Algorithmen, die von dem zweiten Kontrollalgorithmus auszuwählen und/oder zu kombinieren sind. Die Parameter können auch Kontrollparamter des zweiten Kontrollalgorithmus beinhal ten. Die Art und Weise, wie ein erster und/oder zweiter kryptographischer Algorith mus ausgeführt wird und/oder der offizielle Algorithmenbezeichner ist typischer weise in kryptographischen Standards festgelegt.
Gemäß einem Beispiel kann es sich bei einem ersten und/oder zweiten kryptogra phischen Algorithmus um eine Variante des RSA handeln. Verschiedene Varianten des RSA und deren Bezeichner (Algorithmenbezeichner) sind zum Beispiel in dem Standard RFC 8017 beschrieben.
Gemäß eines weiteren Beispiels kann es sich bei einem ersten und/oder zweiten kryptographischen Algorithmus um den ECDSA Algorithmus handeln, der in dem Standard ANSI X9.62 beschrieben ist. Beispielsweise beinhalten, empfangen und/oder verwenden die ersten und/oder zweiten Kontrollalgorithmen Parameter. Die Parameter umfassen Algorithmenbe zeichner der einzelnen ersten oder zweiten von diesen Kontrollalgorithmen jeweils ausgewählten und/oder kombinierten kryptographischen Algorithmen, wobei die Pa rameter optional auch Komponentenparameter dieser kryptographischen Algorith men und/oder direkt von den Kontrollalgorithmen verwendete Kontrollparameter beinhalten. Vorzugsweise werden die Algorithmenbezeichner und Komponentenpa rameter gemäß bestehender konventioneller Standards definiert.
Vorzugsweise wird der Identifikator des zweiten Kontrollalgorithmus und die Ge samtheit der oben genannten und von diesem zweiten Kontrollalgorithmus verwen deten Parametern in die für einzelne kryptographische Algorithmen gemäß beste hender Standards vorgesehenen Felder einer standardisierten kryptographischen Datenstruktur gespeichert. Der Identifikator und die Parameter können z.B. gemäß ASN.1 Notation bezüglich Figur 4 erläutert bezeichnet werden. Das hat den Vorteil, dass das Programm auf der Anwendungsebene, das eine derartige kryptographi sche Datenstruktur empfängt, ggf. bereits teilweise verarbeitet und die extrahierten Identifikatoren, Parameter und kryptographischen Daten an ein kryptographisches Modul weiterreicht, nicht umgeschrieben werden muss. Denn die Struktur der Felder der Datenstruktur hat sich nicht verändert. Lediglich das kryptographische Modul, das die kryptographischen Operationen letztlich ausführt, muss wissen, dass der „Algorithmidentifier“ den Identifikator eines zweiten Kontrollalgorithmus beinhaltet, nicht den Algorithmenbezeichner eines einzelnen kryptographischen Algorithmus. Und es muss wissen, dass z.B. im Feld ::= SEQUENCE zusammengesetzte krypto graphische Daten und nicht kryptographische Ausgabedaten eines einzelnen kryp tographischen Algorithmus enthalten sind.
Algorithmidentifier ::= SEQUENCE { algorithm OBJECT IDENTIFIER,
Parameters ANY DEFINED BY algorithm OPTIONAL }
In einer nach ASN.1 spezifizierten Datenstruktur 234 ist der zweite Kontrollalgorith mus gemäß der oben genannten Darstellung spezifiziert: Der Identifikator des zwei ten Kontrollalgorithmus, z.B. „SIGNATUR-ODER“, bekommt eine OID im gleichen Format wie die OIDs einzelner kryptographischer Algorithmen, also z.B. „1.2.3.4.5.6.7.8.9“. Die Parameter wären: „SIGNATUR-ODER-param :: =
SEQUENCE OF Algorthmldentifier“, wobei bei Algorthmldentifier die Werte von mehreren als zweite kryptographische Algorithmen verwendete Signaturalgorithmen einsetzt, die wieder jeweils aus OID und Parametern bestehen.
Die hierfür Ausführungsformen beschriebene Speicherung der zusammengesetzten kryptographischen Daten in einem vordefinierten ersten Feld und des Identifikators des zweiten Kontrollalgorithmus sowie zugehöriger zweiter Parameter in einem zweiten Feld, die gemäß konventioneller Datenstrukturstandards zur Speicherung kryptographischer Daten bzw. Algorithmenbezeichnern eines einzigen kryptographi schen Algorithmus dienen kann den Vorteil haben, dass die verarbeitende Anwen dungssoftware des Empfänger-Kryptosystems ohne Änderung des Codes „weiß“, wie sie die zusammengesetzten kryptographischen Daten und den Identifikator des zweiten Kontrollalgorithmus auslesen und an die kryptographische Software weiter leiten muss.
In einem weiteren vorteilhaften Aspekt kann Standardkonformität sehr einfach dadurch erreicht werden, dass für jeden zusammengesetzten Algorithmus (mit ei genem OID) in der entsprechenden Definition (evtl als Standard publiziert) angege ben wird, wie mit den Schlüsseln, Signaturen und Chiffraten umzugehen ist. Bei spielsweise können zusammengesetzte Schlüssel und zusammengesetzte Signatu ren, also Schlüssel bzw. Signaturen, die aus zwei oder mehr Schlüsseln bzw. Sig naturen zusammengesetzt sind, einfache Konkatenationen der einzelnen, von den ersten kryptographischen Algorithmen erzeugten Schlüssel und Signaturen sein. Bei der Datenverschlüsselung-Iterativ ist das Chiffrat das Ergebnis der zuletzt durchge führten Komponentenverschlüsselung.
Figur 4 zeigt ein Schema eines ersten Kontrollalgorithmus und eine Datenstruktur mit den gemäß des ersten Kontrollalgorithmus erzeugten zusammengesetzten kryp tographischen Daten.
In dem ersten Kontrollalgorithmus sind z.B. ein Identifikator 402 des ersten Kon trollalgorithmus vorgegeben sowie ein Identifikator 410 desjenigen zweiten Kon trollalgorithmus, der zur Verarbeitung der erzeugten zusammengesetzten krypto graphischen Daten verwendet werden soll. Die Identifikatoren 402 und 410 sind ty- pischerweise identisch, können in manchen Ausführungsformen aber auch unter schiedlich sein.
Der erste Kontrollalgorithmus wird vorzugsweise so ausgeführt, dass er eine Reihe von Parametern 404, 408, 412, 416 als Eingabe verwendet und/oder ausgibt.
Beispielsweise umfassen die Parameter 408 Algorithmenbezeichner derjenigen ers ten kryptographischen Algorithmen, die zur Erzeugung der zusammengesetzten kryptographischen Daten verwendet werden sollen, optional von diesen benötigte Komponentenparameter (z.B. B1, B2 für Signieralgorithmus/Signaturprüfalgorithmus B, Komponentenparameter C1, C2 und C3 für Signieralgorith mus/Signaturprüfalgorithmus C, der Signieralgorithmus/Signaturprüfalgorithmus D benötigt keine Komponentenparameter) sowie optional auch Kontrollparameter 404, 412 für den ersten (und ggf. auch für den funktional korrespondierenden zweiten) Kontrollalgorithmus selbst.
So könnte z.B. ein Kontrollparameter 404, 410 bei SIGNATUR K-aus-N den Wert K aus der Menge der ersten kryptographischen Algorithmen spezifizieren. Der Wert K ist eine Zahl kleiner gleich N und spezifiziert die Mindestanzahl von Signaturen, die als valide verifiziert werden müssen, damit die von dem zweiten Kontrollalgorithmus in seiner Gesamtheit durchgeführte zusammengesetzte Signaturprüfung zum Er gebnis hat, dass ein signiertes Dokument valide ist. Bei
SCHLÜSSELVEREINBARUNG kann z.B. die Bitlänge, auf die die Ergebnisse der Einzelalgorithmen gekürzt oder gepaddet werden müssen, als Kontrollparameter verwendet werden. Wie die ersten und/oder zweiten Algorithmen kombiniert werden sollen, ist durch den Identifikator des ersten bzw. zweiten Kontrollalgorithmus vor gegeben, z.B. UND / ODER / AGGREGAT / etc.
In dem in Figur 4 gezeigten Beispiel kann N z.B. 3 sein und K2 sein. Das bedeutet, dass die durch die Algorithmenbezeichner bezeichneten drei Signierverfahren B, C und D jeweils auf die Eingabedaten 208, z.B. ein zu signierendes Dokument, ange wendet werden, wobei die Algorithmen B und C Komponentenparameter B1 , B2,
C1, C2, C3 verwenden. Die erhaltenen Signaturen 418, 420, 422 werden konkate- niert und als die zusammengesetzten kryptographischen Daten 236 z.B. in einem ersten Feld 438 einer Datenstruktur 234 gespeichert werden, die ein X.509-Zertifikat ist. Der Identifikator 410 des zweiten Kontrollalgorithmus sowie mehrere von diesem zu verwendende Parameter 412, 416 werden in einem zweiten Feld 440 der Daten struktur gespeichert. Zu den Parametern gehören die Algorithmenbezeichner B, C und D, die Komponentenparameter B1 , B2, C1 , C2, C3 sowie der Kontrollparamter K=2.
Hierdurch können Kryptosysteme, die X.509 Zertifikate verwenden, auf Quanten computer-sichere kryptographische Verfahren vorbereitet und umgestellt werden.
Da man noch nicht völlig sicher ist, welche Klassen kryptografischer Verfahren auch langfristig als sicher gegen Angriffe mit Quantencomputern betrachtet werden kön nen, kann es vorteilhaft sein, mehrere Quantencomputer-sichere kryptographische Verfahren aus verschiedenen mathematischen Problemklassen sowie ein oder mehrere konventionelle kryptographische Verfahren zur Erzeugung der zusammen gesetzten kryptographischen Daten zu verwenden.
Dies hat den Vorteil, dass die auf der Basis einer solchen Kombination aus her kömmlichen und neuen kryptographischen Algorithmen erzeugten zusammenge setzten Signaturen, Chiffrate und/oder Schlüssel auch von Anwendungen verwen det werden können, die noch keine Quantencomputer-sicheren kryptographischen Verfahren implementiert haben.
Im Folgenden werden verschiedene Beispiele für eine Datenstruktur 234 zur Spei cherung der zusammengesetzten kryptographischen Daten und des Identifikators des zweiten Kontrollalgorithmus beschrieben.
Im Folgenden werden verschiedene Ausführungsformengruppen a)-d) für eine Da tenstruktur beinhaltend die zusammengesetzten kryptographischen Daten und Kon- trollalgorithmen Identifikatoren bzw. ein Verfahren zur Speicherung dieser Daten in einer Datenstruktur beschrieben. Hierbei werden beispielhaft bestimmte Kontrollal- gorithmen bzw. von diesen gebildete/zu verarbeitende zusammengesetzte krypto graphische Daten aufgeführt, z.B. zusammengesetzte Signaturen. Alternativ kann aber auch jeder andere der hier beschriebenen Kontrollalgorithmen und die von die sem gebildeten zusammengesetzten kryptographischen Daten verwendet werden, insbesondere also z.B. auch „SIGNATUR-UND“, „SIGNATUR-ODER“, „SIGNATUR K aus N“, „SCHLÜSSELVEREINBARUNG-AGGREGAT“, "DATENVERSCHLÜSSELUNG-ITERATIV", "DATENVERSCHLÜSSELUNG PARALLEL", „SCHLÜSSEL-CONTAINER“. a) X.509 Zertifikate
Beispielsweise können die zusammengesetzten kryptographischen Daten und/oder der Identifikator des zweiten Kontrollalgorithmus in X.509-Zertifikaten in den folgen den Zertifikatsbereichen bzw. Feldern i, ii, iii und/oder iv gespeichert werden, die derzeit zur Speicherung von kryptographischen Daten und Algorithmenbezeichnern einzelner kryptographischer Algorithmen dienen. Ein entsprechendes Zertifikat 700 ist in Figur 7 beispielhaft dargestellt, auf welche hier auch Bezug genommen wird: i. signatureAlgorithm Feld 702, 440: in diesem Feld wird gemäß eines kon ventionellen kryptographischen Standards (siehe RFC 5280, 4.1.1.2) festlegt, welcher Algorithmus von der Certification Authority (CA) zur Signatur des Zertifikats verwendet wird. Die formale Beschreibung in ASN.1 ist:
Algorithmldentifier ::= SEQUENCE { algorithm OBJECT IDENTIFIER,
Parameters ANY DEFINED BY algorithm OPTIONAL }.
Gemäß Ausführungsformen der Erfindung würde das Zertifikat 234 also im signatureAlgorithm Feld 440 die folgenden Angaben enthalten:
SEQUENCE { algorithm SIGNATUR-K-aus-N,
Parameters SEQUENCE {
K INTEGER, zweite_krypto_algs SEQUENCE OF Algorithmldentifier
}
}
Somit würde im Feld „Algorithmldentifier“ im Eingabebereich „algorithm“ eine ID des zweiten Kontrollalgorithmus stehen, z.B. „SIGNATUR K-aus-N“ und im Eingabebereich „Parameters“ der oder die Kontrollparameter des Kontrollal gorithmus, z.B. der Wert K, und die Folge der Algorithmenbezeichner der zu verwendenden zweiten kryptographischen Algorithmen., z.B. „RSA PSS“ oder „ECDSA“ 416, gespeichert sein. Falls einige der zweiten kryptographi schen Algorithmen selbst Parameter für ihre Beschreibung benötigen, sind diese in der rekursiv benutzten Beschreibung von zweite_krypto_algs als „Algorithmldentifier“ enthalten. (In diesem Beispiel braucht N nicht als Para meter des Kontrollalgorithmus angegeben werden, weil sich der Wert N aus der Zahl der in zweite_krypto_algs aufgelisteten zweiten kryptographischen Algorithmen ergibt. Die gesamte Datenstruktur signatureAlgorithm sieht dann in diesem Beispiel für den zweiten Kontrollalgorithmus „SIGNATUR-K-aus-N“ so aus:
Algorithmldentifier ::= SEQUENCE { algorithm SIGNATUR-K-aus-N,
Parameters SEQUENCE {
K INTEGER, zweite_krypto_algs SEQUENCE OF {
{ algorithm RSA PSS,
Parameters { hashAlgorithm, maskGenAlgorithm, pSourceAlgorithm}
}.
{ algorithm ECDSA-with-sha256},
{ . . . }
}
}
} ii. In dem Zertifikatsfeld „signature“ 704, muss sich der gleiche Inhalt befinden wie im Feld (i) „signatureAlgorithm“, siehe RFC 5280, 4.1.1.2. iii. SignatureValue Feld (siehe RFC 5280, 4.1.1.3) 706, 438: Das ist ein Feld 438 zur Speicherung der Signatur der Zertifizierungsstelle über den Inhalt des Zertifikats mit dem Algorithmus signatureAlgorithm und dem privaten Schlüssel der Zertifizierungsstelle. Die formale Beschreibung in ASN.1 ist: SignatureValue BIT STRING.
Gemäß Ausführungsformen der Erfindung würde das Zertifikat 234 also im ersten Feld 438, im genanntem Standard das Feld SignatureValue, die zu sammengesetzten kryptographischen Daten enthalten, die sich aus der Sig natur mit dem unter (i) und (ii) genannten Kontrollalgorithmus und seinen Pa rametern ergeben hat. Im genannten Beispiel einer SIGNATUR K-aus-N ist das die Aneinanderreihung der Ergebnisse der einzelnen ersten kryptogra phischen Algorithmen, die ebenfalls als BIT STRING dargestellt sind. Die entstandene SEQUENCE OF BIT STRING wird vorzugsweise noch einer Typkonvertierung zu BIT STRING unterzogen. Die gesamte Datenstruktur SignatureValue sieht dann so aus:
SignatureValue ::= BIT STRING
{raspssSignatureValue | ecdsaSignatureValue | . . . } iv. SubjectPublicKeylnfo Feld (siehe RFC 5280, 4.1.2.7) 708: Das ist ein Zertifi katsbereich zur Speicherung des öffentlichen Schlüssels des Zertifikatsinha bers sowie eines Algorithmenbezeichners des kryptographischen Algorith mus, mit dem dieser Schlüssel benutzt werden kann. Bei dem kryptographi schen Algorithmus kann es sich z.B. um einen Signaturalgorithmus oder ei nen Algorithmus eines anderen Algorithmustyps handeln.
Gemäß Ausführungsformen der Erfindung werden in dem Zertifikat mehrere Schlüssel gleicher oder unterschiedlicher Algorithmen einer Entität zugeord net. Das Feld SubjectPublicKeylnfo ist von Typ SubjectPublicKeylnfo, der de finiert ist als
SubjectPublicKeylnfo ::= SEQUENCE { algorithm Algorithm Identifier, subjectPublicKey BIT STRING }
Gemäß Ausführungsformen der Erfindung würde das Zertifikat in diesem Be reich ein erstes Feld 438 enthalten und durch den Begriff „subjectPublicKey“ identifizieren und ein zweites Feld 440 enthalten und durch den Begriff „algo rithm“ identifizieren. Das 2. Feld enthält die ID des Kontrollalgorithmus SCFILÜSSEL-CONTAINER und als Parameter die Algorithmen der verschie denen im 1. Feld die als Konkatenation enthaltenen Schlüssel. Im vorliegen den Beispiel würde dieser Zertifikatsbereich 708 also die folgenden Angaben beinhalten:
SubjectPublicKeylnfo ::= SEQUENCE { algorithm " SCHLÜSSEL-CONTAINER und Parameter", subjectPublicKey [zusammengesetzte kryptographische Daten] }
Da algorithm aus SubjectPublicKeylnfo vom Typ
Algorithm Identifier ::= SEQUENCE { algorithm OBJECT IDENTIFIER,
Parameters ANY DEFINED BY algorithm OPTIONAL } ist, wird er wieder durch den Identifikator des Kontrollalgorithmus SCHLÜSSEL-CONTAINER und die Parameter festgelegt. Die Parameter be stehen wieder aus der Folge der Algorithmenbezeichner der ersten krypto- graphischen Algorithmen und optional ihrer jeweiligen Parameter. algorithm ::= SIGNATUR-ODER-Identifikator
Parameters ::= SEQUENCE { folge_schlüssel_algorithmen SEQUENCE OF Algorithm Identifier
}
Die zusammengesetzten kryptographischen Daten sind in diesem Fall die Anei nanderreihung der öffentlichen Schlüssel, die der Entität im Zertifikat zugeordnet werden und die in dieser Reihenfolge passend zu den in Parameters genannten Algorithmenbezeichner folge_schlüssel_algorithmen. Die zusammengesetzten kryptographischen Daten werden im Feld subjectPublicKey aus SubjectPubli- cKeylnfo abgelegt und ergeben sich bei SCHLÜSSEL-CONTAINER als SEQUENCE OF BIT STRING und werden noch einer Typkonvertierung zu BIT STRING unterzogen. Die gesamte Datenstruktur signatureValue sieht dann so aus:
SubjectPublicKeylnfo ::= SEQUENCE { algorithm SEQUENCE { algorithm SCHLÜSSEL-CONTAINER,
Parameters SEQUENCE { zweite_krypto_algs1 SEQUENCE OF {
{ algorithm RSA},
{ algorithm ecPublicKey Parameters namedCurve}
}
} subjectPublicKey BIT STRING {rsaKey | eccKey}
}
Es ist also möglich, zusammengesetzte kryptographische Daten innerhalb konventi oneller X.509 Zertifikate zu verwenden analog den bisher schon in diesen Zertifika ten enthaltenen kryptographischen Daten. An den Zertifikatsstandards und/oder den Anwendungsprogrammen, die die Zertifikate empfangen und parsen braucht nichts geändert werden, sofern diese Programme nicht auch die eigentlichen kryptogra phischen Algorithmen implementieren, die zur Verarbeitung des Zertifikats einge setzt werden.
Beispielsweise können X.509 Zertifikate mit zusammengesetzten kryptographischen Daten standardkonform gemäß der folgenden Standards verarbeitet werden: - ITU-T X.509 (10/2019) Information technology - Open Systems Interconnec tion - The Directory: Public-key and attribute certificate frameworks (identisch zu ISO/IEC 9594-8)
- RFC 5280: Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile, May 2008
In Zertifikaten ist es sogar möglich zusammengesetzte kryptographische Daten für zwei Zwecke zu nutzen: a) bei der Signatur der Zertifikate und b) bei der Zuordnung von Schlüsseln an den Zertifikatsinhaber.
Im Fall a) wird der Identifikator des zweiten Kontrollalgorithmus in einem X.509 Zer tifikat z.B. gespeichert in dem Feld algorithm des Feldes signatureAlgorithm als OBJECT IDENTIFIER, die Parameter des zweiten Kontrollalgorithmus sowie die Algorithmenbezeichner der zweiten kryptographischen Algorithmen samt ihrer Pa rameter werden in dem Feld Parameters des Feldes signatureAlgorithm gespei chert. (Im Feld signature des Feldes tbsCertificate stehen die gleichen Informatio nen wie im Feld signatureAlgorithm.) Die zusammengesetzten kryptographischen Daten werden gespeichert in dem Feld signatureValue.
Im Fall b) wird der Identifikator des zweiten Kontrollalgorithmus in einem X.509 Zer tifikat z.B. gespeichert in dem Feld algorithm des Feldes algorithm des Feldes sub- jectPublicKeylnfo als OBJECT IDENTIFIER, die Parameter des zweiten Kontrollal gorithmus sowie die Algorithmenbezeichner der zweiten kryptographischen Algo rithmen samt ihrer Parameter werden in dem Feld Parameters des Feldes algorithm des Feldes subjectPublicKeylnfo gespeichert. Die zusammengesetzten kryptogra phischen Daten werden gespeichert in dem Feld subjectPublicKey des Feldes sub jectPublicKeylnfo.
Das in Figur 7 gezeigte Beispiel soll veranschaulichen, dass es möglich ist, die zu sammengesetzten kryptographischen Daten mehrerer erster Kontrollalgorithmen im gleichen Zertifikat zu speichern. Es ist aber auch möglich, dass z.B. nur der Zertifi katsbereich iv bzw. nur die Zertifikatsfelder i-iii zusammengesetzte kryptographische Daten bzw. Identifikatoren von Kontrollalgorithmen samt zusammengesetzten Pa rametern enthalten und die jeweils anderen Bereiche des Zertifikats konventionelle kryptographische Daten, Identifikatoren und Parameter von nur einem einzigen kon ventionellen kryptographischen Algorithmus beinhalten. b) Dateisiqnaturen und verschlüsselte Dateien gemäß CMS
Auch in Datenstrukturen gemäß der Cryptographic Message Syntax (siehe RFC 5652: Cryptographic Message Syntax (CMS), September 2009)) können zusam mengesetzte kryptographische Daten gespeichert und ausgelesen werden, ohne dass am Standard irgendetwas geändert werden muss.
Für die Signatur von Daten wird in CMS der signed-data content type verwendet, siehe RFC 5652, Abschnitt 5). Die Signaturen der einzelnen Signatoren sind jeweils in einem als „signerlnfo“ bezeichneten Datenstrukturbereich von Typ Signerlnfo enthalten.
Signerlnfo ::= SEQUENCE {
Version CMSVersion, sid Signerldentifier, digestAlgorithm DigestAlgorithm Identifier, signedAttrs [0] IMPLICIT SignedAttributes OPTIONAL, signatureAlgorithm SignatureAlgorithm Identifier, signature SignatureValue, unsignedAttrs [1] IMPLICIT UnsignedAttributes OPTIONAL }
In dieser Datenstrukturbereich Signerlnfo können in das Feld 440 signatureAlgo rithm der Identifikator des Kontrollalgorithmus, seine Kontrollparameter und als wei tere Parameter die Algorithmenbezeichner der zweiten kryptographischen Algorith men samt ihrer Komponentenparameter eingesetzt werden. Typischerweise ist der Identifikator des Kontrollalgorithmus ein SIGNATUR-ODER, ein SIGNATUR-UND oder ein SIGNATUR-K-aus-N. Die zusammengesetzten kryptographischen Daten umfassen in diesem Fall eine Aneinanderreihung der Ergebnisse der einzelnen ers ten kryptographischen Algorithmen, die noch einer Typkonvertierung zu OCTET STRING unterzogen wurden. Die zusammengesetzten kryptographischen Daten werden im Feld 438 „signature“ des Datenstrukturbereiches Signerlnfo eingesetzt.
Für die Verschlüsselung von Daten wird in CMS der enveloped-data content type verwended, siehe RFC 5652, Abschnitt 6). Dabei wird per Zufall ein content- encryption key zur (z.B. symmetrischen) Dateiverschlüsselung erzeugt und für jeden Empfänger wird der content-encryption key einzeln (z.B. asymmetrisch) verschlüs selt. Für jeden Empfänger ist ein Datensatz vom Typ Recipientlnfo in den Daten vom Typ enveloped-data content type enthalten. Dieser Datenstrukturbereich kann einen als KeyTransRecipientlnfo, KeyAgreeRecipientlnfo bezeichneten Bereich sowie andere Bereiche analoger Funktion haben.
KeyT ransRecipientlnfo:
KeyTransRecipientlnfo ::= SEQUENCE {
Version CMSVersion, -- always set to 0 or 2 rid Recipientldentifier, keyEncryptionAlgorithm KeyEncryptionAlgorithm Identifier, encryptedKey EncryptedKey }
In der Ausprägung KeyTransRecipientlnfo wird im dortigen Feld 440 „keyEncryptio nAlgorithm“ der Identikator des Kontrollalgorithmus, seine Kontrollparameter und als weitere Parameter die Algorithmenbezeichner der zweiten kryptographischen Algo rithmen samt ihrer Komponentenparameter eingesetzt. Es kann z.B. der Identifikator des Kontrollalgorithmus ein DATENVERSCHLÜSSELUNG-ITERATIV verwendet werden. Die zusammengesetzten kryptographischen Daten umfassen die Ergebnis se der nacheinander ausgeführten ersten kryptographischen Algorithmen, die noch einer Typkonvertierung zu OCTET STRING unterzogen wurden. Die zusammenge setzten kryptographischen Daten werden im Feld 438 „encryptedKey“ der Daten struktur eingesetzt.
KeyAgreeRecipientlnfo:
KeyAgreeRecipientlnfo ::= SEQUENCE {
Version CMSVersion, -- always set to 3 originator [0] EXPLICIT OriginatorldentifierOrKey, ukm [1] EXPLICIT UserKeyingMaterial OPTIONAL, keyEncryptionAlgorithm KeyEncryptionAlgorithm Identifier, recipientEncryptedKeys RecipientEncryptedKeys }
In der Ausprägung KeyAgreeRecipientlnfo werden im dortigen Feld „keyEncryptio nAlgorithm“ der Identikator des Kontrollalgorithmus seine Kontrollparameter und als weitere Parameter die Algorithmenbezeichner der zweiten kryptographischen Algo rithmen samt ihrer Komponentenparameter gespeichert. Es kann z.B. als Identifika- tor des Kontrollalgorithmus ein SCHLÜSSELVEREINBARUNG-AGGREGAT ver wendet werden. Hier gibt es zwei Felder 438 mit zusammengesetzten kryptographi schen Daten. a) Der für die Schlüsselvereinbarung benutzte, im Allgemeinen ephemerale, öffentli che Schlüssel ist in der Unterstruktur originatorKey vom Typ OriginatorPublicKey der Struktur originator enthalten (siehe insb. RFC 5652, 6.2.2).
OriginatorPublicKey ::= SEQUENCE { algorithm Algorithm Identifier, publicKey BIT STRING }
Die Struktur OriginatorPublicKey enthält das Feld algorithm von Typ Algorithm Identi fier. Entsprechend Ausführungsformen der Erfindung enthält dieses Feld den Identi- fikator das Kontrollalgorithmus, optional dessen Kontrollparameter und die Folge der Algorithmenbezeichner der zweiten kryptographischen Algorithmen. Es kann z.B. der Identifikator des Kontrollalgorithmus SCHLÜSSEL-CONTAINER verwendet werden. Die zusammengesetzten kryptographischen Daten sind in diesem Fall die Aneinanderreihung der öffentlichen Schlüssel in der Reihenfolge, in der sie in den Parametern des Kontrollalgorithmus genannt sind. b) Die für die Verschlüsselung benutzten Verschlüsselungsschlüssel ist im Feld re- cipientEncryptionKeys enthalten, für einen Empfänger vom Typ recipientEncrypti- onKey (siehe insb. RFC 5652, 6.2.2).
RecipientEncryptedKey ::= SEQUENCE { rid KeyAgreeRecipientldentifier, encryptedKey EncryptedKey }
Entsprechend dieser Ausführungsform wird der Schlüssel encryptedKey durch den im Feld keyEncryptionAlgorithm aus der Struktur KeyAgreeRecipientlnfo bezeichne- ten ersten Kontrollalgorithmus unter Einbeziehung der in den Parametern genann ten ersten kryptographischen Algorithmen und den unter a) bezeichneten und an gegebenen Schlüsseln berechnet. Die so mit dem Kontrollalgorithmus berechneten zusammengesetzten kryptographischen Daten - der Verschlüsselungsschlüssel - ist das Ergebnis einer Aggregation (z.B. mit XOR) der Ergebnisse der ausgeführten ersten kryptographischen Algorithmen. Die zusammengesetzten kryptographischen Daten werden im Feld recipientEncryptedKey der Datenstruktur KeyAgreeRecipien tlnfo gespeichert.
Gemäß Ausführungsformen wird die Datenstruktur gemäß der Cryptographic Mes sage Syntax (CMS) zum Nachweis bzw. zur Prüfung der Korrektheit und Integrität von Pässen und anderen Reisedokumenten verwendet. Standards, die die Beschaf fenheit der Dokumente und deren elektronische Daten beschreiben, sind z.B. ICAO Doc 9303, Machine Readable Travel Documents, Seventh Edition, 2015, Part 11: Security Mechanisms for MRTDs, sowie ICAO Doc 9303, Machine Readable Travel Documents, Seventh Edition, 2015, Part 12: Public Key Infrastructure for MRTDs.
Diese Reisedokumente (Machine-Readable Travel Documents - MRTD) beinhalten elektronischen Daten, deren Integrität durch das Prüfen der Signatur im Document Security Object (SOD) festgestellt werden kann. Die Signatur entspricht der Signa tur von Dokumenten gemäß CMS (RFC 5652), ist also ein Beispiel für eine Datei signatur, die häufig Verwendung findet und deren Umstellung auf quantensichere Signaturen mittels der Speicherung von zusammengesetzten kryptographischen Signaturen und damit zusammenhängender Daten in den oben genannten Feldern durchgeführt werden kann.
Gemäß weiterer Ausführungsformen wird die Datenstruktur gemäß der Cryptogra phic Message Syntax (CMS) zum Nachweis bzw. zur Prüfung der Korrektheit und Integrität von Ausweisen, insbesondere des deutschen Personalausweises sowie deutschen Aufenthaltstiteln verwendet. Die Korrektheit und Integrität der in deut- sehen Personalausweisen und Aufenthaltstiteln gespeicherten elektronischen Daten wird abhängig von der verwendeten IT-Anwendung durch das Prüfen der Signatur im Document Security Object (SOD), im File EF. CardSecurity oder im File EF. ChipSecurity festgestellt. Die Signatur entspricht der Signatur von Dokumenten RFC 5652.
Relevante Standards für den Ausweis sind z.B. die Technische Richtlinie TR-03127, elD-Karten mit elD- und eSign-Anwendung basierend auf Extended Access Control, Personalausweis und elektronischer Aufenthaltstitel, Version1.21, Bundesamt für Sicherheit in der Informationstechnik, 2. Mai 2018, sowie Technical Guideline TR- 03110, Advanced Security Mechanisms for Machine Readable Travel Documents and elDAS Token - Part 3: Common Specifications, Version 2.21 , Bundesamt für Sicherheit in der Informationstechnik, 21. December 2016. c) Zertifikatsanforderunqen
In Zertifikatsanforderungen ist der technische Teil eines Zertifikatsantrags enthalten, mit dem der Antragsteller ein Zertifikat bei einer Zertifizierungsstelle beantragt. Er wird oft als PKCS#10 bezeichnet, weil der erste Standard für solche Zertifikatsan forderungen der Standard #10 aus der Serie der Public Key Cryptography Stan dards der RSA Laboratories war (heute nutzt man RFC 2986: PKCS #10: Certifica- tion Request Syntax Specification, Version 1.7, November 2000). Ein PKCS#10- Zertifikatsantrag sieht nach RFC 2986 wie folgt aus:
CertificationRequest ::= SEQUENCE { certificationRequestlnfo CertificationRequestlnfo, signatureAlgorithm Algorithmldentifier{{ SignatureAlgorithms }}, signature BIT STRING
}
Wie im späteren Zertifikat sind in einer Zertifikatsanforderung die folgenden Anga ben enthalten bzw. die folgenden Felder vorgesehen. i. signatureAlgorithm: Bezeichnet analog wie das Feld 702 im X.509-Zertifikat den Algorithmus, mit dem der Inhalt des PKCS#10-Zertifikatsantrags, das ist certificationRequestlnfo, signiert ist.
Gemäß Ausführungsformen der Erfindung wird im Feld „signatureAlgorithm“, das als zweites Feld 440 dient, der zweite Kontrollalgorithmus mit seinen Pa rametern eingetragen. iii. Signature: Entspricht dem Feld signatureValue 706 und enthält den Wert der Signatur.
Gemäß Ausführungsformen der Erfindung werden im Feld „signature“ der Zertifikatsanforderung, das als erstes Feld 438 die zusammengesetzten kryptographischen Daten, d.h. der Signatur, die entsprechend dem in i) be- zeichneten Algorithmus gebildet wurde, gespeichert.
Der Inhalt des PKCS#10-Zertifikatsantrags ist certificationRequestlnfo und ist nach RFC 2986 definiert als
CertificationRequestlnfo ::= SEQUENCE {
Version INTEGER { v1 (0) } (v1 ,...), subject Name, subjectPKInfo SubjectPublicKeylnfo{{ PKInfoAlgorithms }}, attributes [0] Attributes{{ CRIAttributes }}
} iv. subjectPKInfo: Entspricht dem Zertifikatsbereich SubjectPublicKeylnfo 708. Dieser Zertifikatsbereich enthält gemäß bisher im Stand der Technik vorge sehenen Verwendung einen öffentlichen Schlüssel, der im X.509-Zertifikat des Antragstellers enthalten sein soll. Die Bezeichner der ersten und zweiten Felder entsprechen den für Zertifikatsbereich 708 von X.509 Zertifikaten be schriebenen Bezeichnern (siehe insbesondere RFC 5280, das sich auf Sub jectPublicKeylnfo in Zertifikaten bezieht, und RFC 2986, das sich auf das Feld subjectPKInfo in PKCS#10 bezieht) und enthalten die gleiche Typdefini tion SubjectPublicKeylnfo wie auf Seite 74 zitiert)
Gemäß Ausführungsformen der Erfindung werden ist subjectPKInfo ein Be reich einer Datenstruktur 234, bestehend aus einem 1. Feld 438 und einem 2. Feld 440. Das 2. Feld enthält die ID des Kontrollalgorithmus (z.B. SCHLÜSSEL-CONTAINER) und als Parameter die Algorithmenbezeichner der verschiedenen im 1 . Feld als Konkatenation enthaltenen Schlüssel. d) Sperrlisten (CRL)
Sperrlisten sind durch Signaturen vor Verfälschungen gesichert. Die formale Syntax lautet
CertificateList ::= SEQUENCE { tbsCertList TBSCertList, signatureAlgorithm Algorithm Identifier, signatureValue BIT STRING }
Eine Sperrliste beinhaltet also standardgemäß (z.B. gemäß RFC 5280: Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile, May 2008) das Feld „signatureAlgorithm“, das als “zweites Feld” 440 ver wendet wird, und das "signature Value" Feld, das als “erstes Feld” 438 verwendet wird.
Gemäß Ausführungsformen der Erfindung ist die Datenstruktur eine Sperrliste, in welchem der Identifikator des zweiten Kontrollalgorithmus in dem Feld „signatureAl gorithm“ gespeichert wird, wobei im Feld „signatureValue“, in welches normaler weise die Bitsequenz der Einzelalgorithmen-Signatur gespeichert wird, gemäß Aus führungsformen der Erfindung die zusammengesetzten kryptographischen Daten gespeichert sind. Das Feld „signatureAlgorithm“ dient also hier als “zweites Feld” 440 zur Speicherung des Identifikators des zweiten Kontrollalgorithmus sowie der zusammengesetzten Parameter und das "signature Value" Feld als “erstes Feld” 438 zur Speicherung der zugehörigen zusammengesetzten kryptographischen Daten. e) Gültiqkeitsauskünfte für Zertifikate gemäß OCSP
Die Gültigkeitsauskünfte für Zertifikate gemäß des Standards OCSP (RFC 6990: X.509 Internet Public Key Infrastructure - Online Certificate Status Protocol - OCSP, June 2013) sind signiert. Die formale Syntax für den signierten Teil der Auskunft lautet: BasicOCSPResponse ::= SEQUENCE { tbsResponseData ResponseData, signatureAlgorithm Algorithm Identifier, signature BIT STRING, certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL }
Gemäß Ausführungsformen der Erfindung ist die Datenstruktur eine Gültigkeitsaus kunft für Zertifikate, wobei im Feld „signatureAlgorithm“ den Identifikator des zweiten Kontrollalgorithmus gespeichert ist, und im Feld „signature“ die zusammengesetzten kryptographischen Daten, vorzugsweise eine zusammengesetzte kryptographische Signatur, gespeichert ist.
Auch in dieser Datenstruktur gibt es also ein vordefiniertes Feld für einen Algorith- m Identifier und ein weiteres Feld für einen Signaturwert. Das Feld „signatureAlgo rithm“ dient also hier als “zweites Feld” 440 zur Speicherung des Identifikators des zweiten Kontrollalgorithmus sowie der zusammengesetzten Parameter und das "signature" Feld als “erstes Feld” 438 zur Speicherung der zugehörigen zusam mengesetzten kryptographischen Daten.
Figur 5 zeigt ein Schema der Anwendung eines anderen ersten Kontrollalgorithmus und eine Datenstruktur mit den gemäß diesem erzeugten zusammengesetzten kryp tographischen Daten.
Während Figur 4 die parallele Anwendung mehrerer erster kryptographischer Algo rithmen auf die Eingabedaten 208 illustriert, zeigt Figur 5 die sequentielle (iterative) Anwendung mehrerer erster Algorithmen auf die Eingabedaten. Hierbei wird zu nächst ein erster kryptographischer Algorithmus A 502 direkt auf die Eingabedaten 208 angewandt, um ein erstes Chiffrat 508 zu erzeugen. Dieses wiederum dient als Eingabe für einen zweiten kryptographischen Algorithmus B 504, der das Chiffrat 508 verschlüsselt, um ein weiteres Chiffrat 510 zu erzeugen. Das Verfahren kann iterativ mehrfach angewandt, werden, bis der zuletzt angewandte Algorithmus ein Chiffrat 510 ausgibt, welches als zusammengesetzte kryptographische Daten ver wendet wird.
Bei iterativer Anwendung der ersten kryptographischen Algorithmen ist der zweite Kontrollalgorithmus typischerweise nicht vom „ODER“-Typ, da sämtliche zweiten kryptographischen Algorithmen, die komplementär zu den iterativ angewandten ers ten kryptographischen Algorithmen sind, angewendet werden müssen, um die Ein gabedaten zu rekonstruieren. Fehlt auch nur einer dieser zweiten kryptographischen Algorithmen in der Kette, kann das Verfahren nicht durchgeführt werden. Dennoch kann auch eine iterative Anwendung von ersten kryptographischen Algorithmen im Kontext der Umstellung auf Quantencomputer-sichere Verfahren hilfreich sein. Bei spielsweise könnten die drei zuerst angewandten Verschlüsselungsalgorithmen herkömmliche, nicht Quanten-sichere Verschlüsselungsverfahren sein. Bereits durch den Umstand, dass mehrere Verfahren angewendet werden, erhöht sich die Sicherheit. Das Bereitsteller-Kryptosystem kann diese drei Verschlüsselungsverfah ren beispielsweise verwenden, um ein zusammengesetztes Chiffrat für ein noch nicht umgerüstetes Empfänger-Kryptosystem bereitzustellen. Falls das Bereitsteller- Kryptosystem zusätzlich auch über einen weiteren, Quantencomputer-sicheren Ver schlüsselungsalgorithmus verfügt, kann es einen weiteren ersten Kontrollalgorith- mus beinhalten, der noch eine vierte Stufe der Verschlüsselung mit dem Quanten computer-sicheren Verschlüsselungsalgorithmus vorsieht. Dieses in vier iterativen Verschlüsselungsschritten erzeugte zusammengesetzte Chiffrat kann an ein ande res Empfänger-Kryptosystem gesendet werden, welches über vier komplementäre Entschlüsselungsverfahren verfügt einschließlich eines Quantencomputer-sicheren Entschlüsselungsverfahrens.
Das Chiffrat 510 stellt die zusammengesetzten kryptographischen Daten oder einen Bestandteil derselben dar und wird in einem ersten Feld 438 einer vordefinierten Datenstruktur 234 gespeichert, in welchem standardgemäß kryptographische Daten eines einzelnen kryptographischen Algorithmus gespeichert werden. Der Identifika- tor410 des „DATENVERSCHLÜSSELUNG-ITERATIV“ Kontroallalgorithmus sowie zugehörige Parameter, insbesondere die Algorithmenbezeichner der funktional komplementären Entschlüsselungsalgorithmen C, B und A mit den jeweils benötig ten Komponentenparametern 414 werden in einem zweiten Feld 440 dieser Daten struktur gespeichert, in welchem standardgemäß Identifikatoren und Parameter ei nes einzelnen kryptographischen Algorithmus gespeichert werden. Da das Empfän ger-Kryptosystem unmittelbar Zugriff auf die Algorithmenbezeichner aller zur Ent schlüsselung benötigten Algorithmen A, B, C im zweiten Feld 440 hat, kann es ent scheiden, eine Entschlüsselung und den entsprechenden zweiten Kontrollalgorith- mus von vorneherein nicht durchzuführen, wenn es mindestens einen der benötig ten zweiten kryptographischen Algorithmen nicht unterstützt.
Figur 6 zeigt ein Schema der Anwendung eines weiteren ersten Kontrollalgorithmus und eine Datenstruktur mit den gemäß diesem erzeugten zusammengesetzten kryp- tographischen Daten. Die Anwendung dieses ersten Kontrollalgorithmus ähnelt dem für Figur 5 beschriebenen Algorithmus, mit dem Unterschied, dass die Komponen tenparameter der jeweiligen Verschlüsselungsalgorithmen zusammen mit den vom zuvor jeweils berechneten Chiffrat als Input verwendet werden, um das Chiffrats des nächsten Schritts in der Sequenz zu berechnen. In diesem Fall müssen lediglich Algorithmenbezeichner und Komponentenparameter des zuletzt ausgeführten Ver schlüsselungsalgorithmus 506 C bzw. des zuerst auszuführenden Entschlüsse lungsalgorithmus als Parameter im Klartext zusammen mit den zusammengesetzten kryptographischen Daten 236 an das Empfänger-Kryptosystem bereitgestellt wer den, die Algorithmenbezeichner und Komponentenparameter der anderen Ver- bzw. Entschlüsselungsalgorithmen B, A ergeben sich während der Entschlüsselung. Da das Empfänger-Kryptosystem jedoch in dieser Ausführungsform nicht sofort erken nen kann, ob es alle benötigten zweiten kryptographischen Algorithmen unterstützt, sind die Ausführungsformen nach Figur 5 bevorzugt.
Figur 7 zeigt ein beispielhaftes X.509 Zertifikat, das zusammengesetzte kryptogra- phische Daten und zugehörige Parameter von zwei unterschiedlichen Kontrollalgo- rithmen in spezifischen Feldern gespeichert enthält (siehe Beschreibung von Figur 4).
B e z u g s z e i c h e n l i s t e
102-112 Schritte
200 Bereitsteller-Kryptosystem
202 Prozessor(en)
204 Speichermedium
206 erstes Anwendungsprogramm
208 Eingabedaten
210 Schnittstelle
212 erstes kryptographisches Programm
214-224 erste kryptographische Algorithmen
226 Berechnungsmodul
228-232 erste Kontrollalgorithmen
234 Datenstruktur
236 zusammengesetzte kryptographische Daten
240 Empfänger-Kryptosystem
242 Speichermedium, Archiv
302 Prozessor(en)
304 Speichermedium
306 zweites Anwendungsprogramm
308 Ergebnisdaten
310 Software-/Hardwarefunktion
312 zweites kryptographisches Programm
314-324 zweite kryptographische Algorithmen
326 Berechnungsmodul
328-332 zweite Kontrollalgorithmen
402 Identifikator erste Kontrollalgorithmus
404 Parameter des ersten Kontrollalgorithmus
408 Algorithmenbezeichner und Komponentenparameter der ersten kryptographischen Algorithmen
410 Identifikator zweiter Kontrollalgorithmus
412 Parameter des zweiten Kontrollalgorithmus
414 Parameter des zweiten Kontrollalgorithmus 416 Algorithmenbezeichner und Komponentenparameter zweiter kryptographischer Algorithmen
418 Signatur erzeugt von Signieralgorithmus 216
420 Signatur erzeugt von Signaturalgorithmus 218 422 Signatur erzeugt von Signaturalgorithmus 220
438 erstes Feld 440 zweites Feld 502 Verschlüsselungsalgorithmus A 504 Verschlüsselungsalgorithmus B 506 Verschlüsselungsalgorithmus C
700 Datenstruktur 702 signatureAlgorithm Feld (zweites Feld mit Identifikator und Paramtern)
704 signature Feld (zweites Feld mit Identifikator und Pa ramtern)
706 signatureValue Feld (erstes Feld mit zusammengesetzten krypt. Daten)
708 subjectPublicKeylnfo Bereich (beinhaltet ein erstes und zweites Feld)

Claims

P a t e n t a n s p r ü c h e
1. Verfahren zum Datenaustausch zwischen einem Bereitsteller-Kryptosystem (200) und einem Empfänger-Kryptosystem (240), umfassend
- Berechnen (104) von zusammengesetzten kryptographischen Daten (236) durch Ausführung von mehreren der ersten kryptographischen Algorithmen (214-224), wobei die zusammengesetzten kryptographischen Daten als Funktion von Eingabedaten (208) berechnet werden, wobei eine Auswahl der mehreren ersten kryptographischen Algorithmen und/oder eine Kombi nation der mehreren ersten kryptographischen Algorithmen gemäß eines ersten Kontrollalgorithmus (228-232) erfolgt;
- Bereitstellung (106) der zusammengesetzten kryptographischen Daten von dem Bereitsteller-Kryptosystem an das Empfänger-Kryptosystem;
- Berechnen (110) von Ergebnisdaten (308) durch das Empfänger-
Kryptosystem als Funktion der zusammengesetzten kryptographischen Da ten durch Anwenden von einem oder mehreren der zweiten kryptographi schen Algorithmen (314-324), wobei eine Auswahl und/oder Kombination des einen oder der mehreren zweiten kryptographischen Algorithmen ge mäß eines zweiten Kontrollalgorithmus (328-332) erfolgt; und
- automatische Ausführung (112) einer Software- und/oder Flardwarefunktion
(310) durch das Empfänger-Kryptosystem in Abhängigkeit von den Ergeb nisdaten.
2. Das computerimplementierte Verfahren nach Anspruch 1 ,
- wobei der erste Kontrollalgorithmus eine Auswahl und/oder Sequenz von ers ten kryptographischen Algorithmen spezifiziert, die funktional komplementär ist zu der Auswahl und/oder Sequenz des oder der zweiten kryptographi schen Algorithmen, die in dem zweiten Kontrollalgorithmus spezifiziert sind.
3. Das computerimplementiertes Verfahren nach einem der vorigen Ansprüche,
- wobei das Bereitsteller-Kryptosystem mehrere erste Kontrollalgorithmen im plementiert; und/oder
- wobei das Empfänger-Kryptosystem mehrere zweite Kontrollalgorithmen im plementiert.
4. Das computerimplementiertes Verfahren nach einem der vorigen Ansprüche,
- wobei mindestens einer der ersten kryptographischen Algorithmen ein Algo rithmus zur Verschlüsselung, Signierung, oder Schlüsselvereinbarung ist, und wobei mindestens einer der ein oder mehreren zweiten kryptographi schen Algorithmen ein zu dem zumindest einen ersten kryptographischen Algorithmus komplementärer Algorithmus zur Entschlüsselung, Signaturprü fung und Schlüsselvereinbarung ist.
5. Das computerimplementiertes Verfahren nach einem der vorigen Ansprüche,
- wobei der erste Kontrollalgorithmus spezifiziert, dass die mehreren ersten kryptographischen Algorithmen sequentiell auf die Ausgabe des jeweils zu vor ausgeführten ersten kryptographischen Algorithmus angewendet wer den oder dass die mehreren ersten kryptographischen Algorithmen parallel auf die Eingabedaten oder Teile der Eingabedaten angewendet werden; und/oder
- wobei der zweite Kontrollalgorithmus spezifiziert, dass die mehreren zweiten kryptographischen Algorithmen sequentiell auf die Ausgabe des jeweils zu vor ausgeführten zweiten kryptographischen Algorithmus angewendet wer den oder dass die mehreren zweiten kryptographischen Algorithmen parallel auf die zusammengesetzten kryptographischen Daten oder Teile der zu sammengesetzten kryptographischen Daten angewendet werden.
6. Das computerimplementiertes Verfahren nach einem der vorigen Ansprüche,
- wobei mindestens der erste Kontrollalgorithmus Boolsche Operatoren und/oder arithmetische Operatoren enthält, welche mehrere der ersten kryp tographischen Algorithmen miteinander verbinden, wobei die Operatoren spezifizieren, wie die kryptographischen Daten, die von den einzelnen ers ten kryptographischen Algorithmen ausgegeben werden, zu kombinieren sind, um die zusammengesetzten kryptographischen Daten zu erhalten, und/oder wobei der zweite Kontrollalgorithmus Boolsche Operatoren und/oder arithmetische Operatoren enthält, welche mehrere der zweiten kryptographischen Algorithmen so miteinander verbinden, dass deren kom binierte Anwendung auf die übermittelten zusammengesetzten kryptogra phischen Daten und/oder auf eine Ausgabe eines zuvor ausgeführten zwei ten kryptographischen Algorithmus zu einer funktional zu der Ausführung der ersten kryptographischen Algorithmen komplementären Datenverarbei tung führt.
7. Das computerimplementierte Verfahren nach einem der vorigen Ansprüche, wobei der erste und/oder zweite Kontrollalgorithmus einen ldentifikator(402, 410) haben, der ausgewählt ist aus einer Gruppe umfassend:
- „SIGNATUR-UND“,
• wobei der SIGNATUR-UND Identifikator einen ersten Kontrollalgorith mus des Bereitsteller-Kryptosystems identifiziert, welcher spezifiziert, mittels eines oder mehrerer erster kryptographischer Algorithmen, die jeweils einen Signierungsalgorithmus implementieren, jeweils eine Signatur zu berechnen;
• wobei der SIGNATUR-UND Identifikator einen zweiten Kontrollalgo rithmus des Empfänger-Kryptosystem identifiziert, welcher spezifiziert, mittels eines oder mehrerer zweiter kryptographischer Algorithmen, die jeweils einen Signaturprüfalgorithmus implementieren, jeweils eine Signatur zu prüfen, die mittels eines zu diesem Signaturprüfalgorith mus korrespondierenden Signierungsalgorithmus erstellt wurde, wobei der zweite Kontrollalgorithmus spezifiziert, dass die Ergebnisdaten so berechnet werden, dass diese die Integrität und/oder Authentizität der zusammengesetzten kryptographischen Daten genau dann bestätigen, wenn alle von den Signaturprüfalgorithmen durchgeführten Signatur prüfungen jeweils ergeben, dass die jeweils geprüfte Signatur valide ist;
- „SIGNATUR-ODER“,
• wobei der SIGNATUR-ODER Identifikator einen ersten Kontrollalgo rithmus des Bereitsteller-Kryptosystems identifiziert, welcher spezifi ziert, mittels eines oder mehrerer erster kryptographischer Algorith- men, die jeweils einen Signierungsalgorithmus implementieren, jeweils eine Signatur zu berechnen;
• wobei der SIGNATUR-ODER Identifikator einen zweiten Kontrollalgo- rithmus des Empfänger-Kryptosystems identifiziert, welcher spezifi ziert, mittels eines oder mehrerer zweiter kryptographischer Algorith men, die jeweils einen Signaturprüfalgorithmus implementieren, jeweils eine Signatur zu prüfen, die mittels eines zum Signaturprüfalgorithmus korrespondierenden Signierungsalgorithmus erstellt wurde, mindes tens solange, bis zumindest einer der Signaturprüfalgorithmen zu dem Ergebnis kommt, dass die Signatur valide ist oder bis alle Signatur prüfalgorithmen des Empfänger-Kryptosystems durchgeführt wurden, wobei die Ergebnisdaten so berechnet werden, dass diese die Integri tät und/oder Authentizität der zusammengesetzten kryptographischen Daten genau dann bestätigen, wenn mindestens einer der Signatur prüfalgorithmen zum Ergebnis hat, dass die jeweils geprüfte Signatur valide ist;
- „SIGNATUR-K-aus N“,
• wobei der SIGNATUR-K-aus N Identifikator einen ersten Kontrollalgo- rithmus des Bereitsteller-Kryptosystems identifiziert, welcher spezifi ziert, mittels eines oder mehrerer erster kryptographischer Algorith men, die jeweils einen Signierungsalgorithmus implementieren, jeweils eine Signatur zu berechnen;
• wobei der SIGNATUR-K-aus N einen zweiten Kontrollalgorithmus des Empfänger-Kryptosystem identifiziert, welcher spezifiziert, mittels K zweiter kryptographischer Algorithmen, die jeweils einen Signatur prüfalgorithmus implementieren, jeweils eine Signatur zu prüfen, die mittels eines korrespondierenden Signierungsalgorithmus erstellt wur de, mindestens solange, bis zumindest K der Signaturprüfalgorithmen zu dem Ergebnis kommen, dass die jeweils geprüfte Signatur valide ist oder bis alle der Signaturprüfalgorithmen durchgeführt wurden, wobei die Ergebnisdaten so berechnet werden, dass diese die Integrität und/oder Authentizität der zusammengesetzten kryptographischen Da ten genau dann bestätigen, wenn mindestens K der Signaturprüfalgo rithmen zum Ergebnis haben, dass die jeweils geprüfte Signatur valide ist, wobei K eine Zahl größer 0, vorzugsweise größer 1 ist;
- „SCHLÜSSELVEREINBARUNG -AGGREGAT“,
• wobei der SCHLÜSSELVEREINBARUNG -AGGREGAT Identifikator einen ersten Kontrollalgorithmus des Bereitsteller-Kryptosystems iden tifiziert, welcher spezifiziert, mittels eines oder mehrerer erster krypto- graphischer Algorithmen, die jeweils bereitstellerseitige Schlüsselvereinbarungsschritte gemäß eines bestimmten Schlüsselvereinba rungsverfahrens implementieren, jeweils einen kryptographischen Schlüssel zu berechnen, und einen Endschlüssel durch Aggregation aller dieser Schlüssel zu berechnen;
• wobei der SCHLÜSSELVEREINBARUNG-AGGREGAT Identifikator einen zweiten Kontrollalgorithmus des Empfänger-Kryptosystem identi fiziert, welcher spezifiziert, mittels eines oder mehrerer zweiter krypto- graphischer Algorithmen, die jeweils empfängerseitige Schritte eines Schlüsselvereinbarungsverfahrens implementieren, jeweils einen kryp tographischen Schlüssel zu berechnen, und einen Endschlüssel durch Aggregation aller dieser Schlüssel zu berechnen;
- DATENVERSCHLÜSSELUNG-ITERATIV,
• wobei der DATENVERSCHLÜSSELUNG-ITERATIV Identifikator ei nen ersten Kontrollalgorithmus des Bereitsteller-Kryptosystems identi fiziert, welcher spezifiziert, mittels eines oder mehrerer erster krypto- graphischer Algorithmen, die jeweils einen Verschlüsselungsalgorith mus implementieren, jeweils ein Chiffrat gemäß eines bestimmten Verschlüsselungsverfahrens zu berechnen, wobei die Ausführung der Verschlüsselungsalgorithmen sequentiell erfolgt, wobei der erste aus geführte Verschlüsselungsalgorithmus die Eingabedaten als Input verwendet und alle nachfolgend ausgeführten Verschlüsselungsalgo rithmen das vom zuvor ausgeführten Verschlüsselungsalgorithmus er zeugte Chiffrat als Input verwenden;
• wobei der DATENVERSCHLÜSSELUNG-ITERATIV Identifikator ei nen zweiten Kontrollalgorithmus des Empfänger-Kryptosystem s identi fiziert, welcher spezifiziert, mittels eines oder mehrerer zweiter krypto- graphischer Algorithmen, die jeweils einen Entschlüsselungsalgorith- mus implementieren, jeweils ein Chiffrat gemäß eines bestimmten Entschlüsselungsverfahrens zu entschlüsseln um entschlüsselte Daten zu erhalten, wobei die Ausführung der Entschlüsselungsalgorithmen sequentiell erfolgt, wobei der erste ausgeführte Entschlüsselungsalgo rithmus das vom Bereitsteller-Computersystem bereitgestellte Chiffrat als Input verwendet und alle nachfolgend ausgeführten Entschlüsse lungsalgorithmen die vom zuvor ausgeführten Entschlüsselungsalgo rithmus erzeugten entschlüsselten Daten als Input verwenden;
- DATENVERSCHLÜSSELUNG-PARALLEL,
• wobei der DATENVERSCHLÜSSELUNG- PARALLEL einen ersten Kontrollalgorithmus des Bereitsteller-Kryptosystems identifiziert, wel cher spezifiziert, mittels eines oder mehrerer erster kryptographischer Algorithmen, die jeweils einen Verschlüsselungsalgorithmus imple mentieren, jeweils ein Chiffrat gemäß eines bestimmten Verschlüsse lungsverfahrens zu berechnen, wobei jeder der Verschlüsselungsalgo rithmen die Eingabedaten oder Teile davon als Input verwendet;
• wobei der DATENVERSCHLÜSSELUNG- PARALLEL Identifikator ei nen zweiten Kontrollalgorithmus des Empfänger-Kryptosystem identifi ziert, welcher spezifiziert, mittels mehrererzweiter kryptographischer Algorithmen, die jeweils einen Entschlüsselungsalgorithmus implemen tieren, jeweils ein Chiffrat gemäß eines bestimmten Entschlüsselungs verfahrens zu entschlüsseln um entschlüsselte Daten zu erhalten, wo bei jeder der Entschlüsselungsalgorithmen das vom Bereitsteller- Computersystem bereitgestellte Chiffrat als Input verwendet;
- „SCHLÜSSEL-CONTAINER“,
• wobei der SCHLÜSSEL-CONTAINER Identifikator einen ersten Kon trollalgorithmus des Bereitsteller-Kryptosystems identifiziert, welcher spezifiziert, mittels eines oder mehrerer erster kryptographischer Algo rithmen, die jeweils einen Schlüssel bezeichnen und/oder aus zumin dest Teilen der Eingabedaten errechnen, einen zusammengesetzten kryptographischen Schlüssel zu berechnen, wobei der zusammenge setzte kryptographische Schlüssel als die zusammengesetzten krypto graphischen Daten verwendet wird; • wobei der SCHLÜSSEL-CONTAINER Identifikator einen zweiten Kon- trollalgorithmus des Empfänger-Kryptosystems identifiziert, welcher spezifiziert, mittels eines oder mehrerer zweiter kryptographischer Al gorithmen, einzelne Schlüssel aus dem zusammengesetzten krypto- graphischen Schlüssel zu extrahieren und/oder zu verwenden.
8. Das computerimplementiertes Verfahren nach einem der vorigen Ansprüche, wobei die zusammengesetzten kryptographischen Daten Parameter enthalten und/oder zusammen mit den Parametern bereitgestellt werden, wobei die Pa rameter Algorithmenbezeichner (416) des von dem jeweiligen ausgeführten ersten kryptographischen Algorithmus implementierten kryptographischen Ver fahrens, sowie optional Komponentenparameter (416) dieser kryptographi schen Verfahren und/oder optional Kontrollparameter (412) für den zweiten Kontrollalgorithmus enthalten, wobei das Verfahren vorzugsweise ferner um fasst:
- Identifikation jedes der zweiten kryptographischen Algorithmen, die für die
Berechnung der Ergebnisdaten verwendet werden, innerhalb einer Vielzahl von zweiten kryptographischen Algorithmen durch das Empfänger- Kryptosystem vor oder während der Berechnung der Ergebnisdaten anhand der Algorithmenbezeichner, wobei jeder der identifizierten zweiten krypto graphischen Algorithmen empfängersystemseitige Schritte des gleichen kryptographischen Verfahrens implementiert wie ein zu diesem korrespon dierender erster kryptographischer Algorithmus.
9. Das computerimplementierte Verfahren nach einem der vorigen Ansprüche,
- wobei die Bereitstellung der zusammengesetzten kryptographischen Daten umfasst eine Speicherung der zusammengesetzten kryptographischen Da ten in einem einzelnen ersten vordefinierten Feld (438) einer zwischen dem Bereitsteller-Kryptosystem und dem Empfänger-Kryptosystem vereinbarten Datenstruktur (234),
- wobei das Empfänger-Kryptosystem dazu ausgebildet ist, das erste vordefi- nierte Feld der Datenstruktur zu lesen und zu parsen um die zusammenge setzten kryptographischen Daten zu erhalten.
10. Das computerimplementiertes Verfahren nach Anspruch 9, ferner umfassend:
- Speichern eines Identifikators des zweiten Kontrollalgorithmus und optional ein oder mehrerer Parameter (412, 416) in einem zweiten (440) vordefinier ten Feld der Datenstruktur (234) durch das Bereitsteller-Kryptosystem; und
- Lesen und Parsen des Identifikator des zweiten Kontrollalgorithmus aus dem zweiten vordefinierten Feld der Datenstruktur durch das Empfänger- Kryptosystem; und
- Auswahl des zweiten Kontrollalgorithmus auf Basis des gelesenen Identifika tors durch das Empfänger-Kryptosystem.
11. Das computerimplementiertes Verfahren nach Anspruch 9 oder 10, wobei die vereinbarte Datenstruktur ausgewählt ist aus einer Gruppe umfassend:
- ein Zertifikat, insbesondere ein X.509 Zertifikat;
- ein CV-Zertifikat (Card Verifyable Zertifikat);
- eine Dateisignatur oder eine verschlüsselte Datei, insbesondere eine Datei signatur oder eine verschlüsselte Datei gemäß Cryptographic Message Syntax (CMS) Standard,
- eine Zertifikatsanforderung, insbesondere eine Zertifikatsanforderung nach
RFC 2986: PKCS #10;
- eine Sperrliste, insbesondere eine Certificate Revocation List (CRL) gemäß gemäß RFC 5280;
- eine Gültigkeitsauskunft für Zertifikate, insbesondere eine Gültigkeitsauskunft gemäß Online Certificate Status Protocol - OCSP.
12. Das computerimplementiertes Verfahren nach einem der vorigen Ansprüche 9-
11 , wobei das erste Feld ein Feld ist, das gemäß eines kryptographischen Standards zur Speicherung der von einem einzelnen kryptographischen Al gorithmus erzeugten kryptographischen Daten bestimmt ist; und/oder wobei das zweite Feld ein Feld ist, das gemäß eines kryptographischen Standards zur Speicherung eines Algorithmenbezeichners eines einzelnen kryptographischen Algorithmus bestimmt ist.
13. Das computerimplementiertes Verfahren nach einem der vorigen Ansprüche,
- wobei die mehreren ersten kryptographischen Algorithmen mehrere krypto- graphische Signierungsalgorithmen gemäß mehrerer unterschiedlicher Sig nierungsverfahren umfassen;
- wobei die zweiten kryptographischen Algorithmen mehrere kryptographische Signaturprüfalgorithmen umfassen, die jeweils entsprechend einem der un terschiedlichen Signierungsverfahren implementiert sind.
14. Das computerimplementiertes Verfahren nach einem der vorigen Ansprüche,
- wobei die mehreren ersten kryptographischen Algorithmen mehrere krypto- graphische Verschlüsselungsalgorithmen gemäß mehrerer unterschiedli cher Verschlüsselungsverfahren umfassen;
- wobei die mehreren zweiten kryptographischen Algorithmen mehrere krypto- graphische Entschlüsselungsalgorithmen korrespondierend zu den mehre ren unterschiedlichen Verschlüsselungsverfahren umfassen.
15. Das computerimplementiertes Verfahren nach einem der vorigen Ansprüche,
- wobei die mehreren ersten kryptographischen Algorithmen mehrere bereit stellerseitige Schlüsselvereinbarungsalgorithmen gemäß mehrerer unter schiedlicher Schlüsselvereinbarungsverfahren umfassen;
- wobei die zweiten kryptographischen Algorithmen mehrere empfängerseitige Schlüsselvereinbarungsalgorithmen umfassen, die jeweils korrespondierend zu einem der unterschiedlichen Schlüsselvereinbarungsverfahren imple mentiert sind. 16. Das computerimplementiertes Verfahren nach einem der vorigen Ansprüche, ferner umfassend:
- Bereitstellung eines Templates des zweiten Kontrollalgorithmus durch das
Empfänger-Kryptosystem, wobei das Template vorgibt, ob die zweiten kryp tographischen Algorithmen seriell oder parallel angewendet werden müssen und vorgibt, wie die Ausgaben der zweiten kryptographischen Algorithmen kombiniert werden um die zusammengesetzten kryptographischen Daten zu erhalten; und
- In Antwort auf den Empfang der zusammengesetzten kryptographischen Da ten und von diesen zugeordneten Parametern durch das Empfänger- Kryptosystem, Erzeugung des zweiten Kontrollalgorithmus durch Ergänzung des Templates um die in den Parametern enthaltenen Algorithmenbezeich ner der zweiten Kontrollalgorithmen, wobei die zweiten kryptographischen Algorithmen, die vom zweiten Kontrollalgorithmus ausgewählt und/oder kombiniert werden, anhand dieser Algorithmenbezeichner ausgewählt wer den.
17. Das computerimplementierte Verfahren nach einem der vorigen Ansprüche, wobei die Eingabedaten (208) einen Text, einen Parameter eines kryptogra- phischen Verfahrens, und/oder einen kryptographischen Schlüssel beinhalten.
18. Ein Bereitsteller-Kryptosystem (210) umfassend:
- ein flüchtiges oder nicht flüchtiges Speichermedium (204) mit mehreren ers ten kryptographischen Algorithmen und mindestens einem ersten Kon- trollalgorithmus (228-232), wobei ein erster Kontrollalgorithmus eine Re chenvorschrift zur Auswahl und/oder Kombination von zwei oder mehreren der ersten kryptographischen Algorithmen (214-224) ist;
- zumindest einen Prozessor (202), der konfiguriert ist zum:
• Erzeugen (102) von Eingabedaten (208);
• Berechnen (104) von zusammengesetzten kryptographischen Daten (236) durch Ausführung von mehreren der ersten kryptographischen Al- gorithmen, wobei die zusammengesetzten kryptographischen Daten als Funktion der Eingabedaten berechnet werden, wobei eine Auswahl der mehreren ersten kryptographischen Algorithmen und/oder eine Kombi nation der mehreren ersten kryptographischen Algorithmen gemäß des zumindest einen ersten Kontrollalgorithmus erfolgt;
• Bereitstellen (106) der zusammengesetzten kryptographischen Daten von dem Bereitsteller-Kryptosystem an das Empfänger-Kryptosystem.
19. Das Bereitsteller-Kryptosystem gemäß Anspruch 18, ferner umfassend:
- eine erste kryptographische Applikation (212), die die ersten kryptographi schen Algorithmen und die ersten Kontrollalgorithmen beinhaltet; und
- ein erstes Anwendungsprogramm (206), das frei ist von kryptographischen
Algorithmen und das mit der ersten kryptographischen Applikation interope rabel ist und konfiguriert ist zur:
• Bereitstellung der Eingabedaten an die erste kryptographische Applika tion und/oder Veranlassung der ersten kryptographischen Applikation, die Eingabedaten zu erzeugen;
• Veranlassung der ersten kryptographischen Applikation, die zusam mengesetzten kryptographischen Daten zu berechnen und an das erste Anwendungsprogramm zurückzugeben;
• Speicherung der zusammengesetzten kryptographischen Daten in ei nem ersten vordefinierten Feld (438) einer zwischen dem Bereitsteller- Kryptosystem und dem Empfänger-Kryptosystem vereinbarten Daten struktur (234); und
• Senden der Datenstruktur an das Empfänger-Kryptosystem.
20. Ein Empfänger-Kryptosystem (240) umfassend:
- ein flüchtiges oder nicht flüchtiges Speichermedium (304) mit einem oder mehreren zweiten kryptographischen Algorithmen und mindestens einem zweiten Kontrollalgorithmus, wobei ein zweiter Kontrollalgorithmus eine Re chenvorschrift zur Auswahl und/oder Kombination von einem oder mehreren der zweiten kryptographischen Algorithmen ist; - zumindest einen Prozessor(302), der konfiguriert ist zum:
• Empfangen (108) von zusammengesetzten kryptographischen Daten des Bereitsteller-Kryptosystems;
• Berechnen (110) von Ergebnisdaten als Funktion der zusammengesetz ten kryptographischen Daten durch Anwenden von einem oder mehre ren der zweiten kryptographischen Algorithmen, wobei eine Auswahl und/oder Kombination des einen oder der mehreren zweiten kryptogra phischen Algorithmen gemäß eines der zweiten Kontrollalgorithmen er folgt; und
• automatische Ausführung (112) einer Software- und/oder Hardware funktion in Abhängigkeit von den Ergebnisdaten.
21. Das Empfänger-Kryptosystem gemäß Anspruch 20, ferner umfassend:
- eine zweite kryptographische Applikation (312), die die zweiten kryptographi schen Algorithmen und die zweiten Kontrollalgorithmen beinhaltet; und
- ein zweites Anwendungsprogramm (306), das frei ist von kryptographischen
Algorithmen und das mit der zweiten kryptographischen Applikation in teroperabel ist und konfiguriert ist zum:
• Empfang einerzwischen dem Bereitsteller-Kryptosystem und dem Emp fänger-Kryptosystem vereinbarten Datenstruktur;
• Parsen der Datenstruktur, um die zusammengesetzten kryptographi schen Daten aus einem ersten vordefinierten Feld (438) in der Daten struktur zu lesen;
• Bereitstellung der gelesenen zusammengesetzten kryptographischen Daten an die zweite kryptographische Applikation;
• Veranlassung der zweiten kryptographischen Applikation, die Ergebnis daten als Funktion der zusammengesetzten kryptographischen Daten zu berechnen und an das zweite Anwendungsprogramm zurückzuge ben; und
• Veranlassen der automatischen Ausführung der Software- und/oder Hardwarefunktion in Abhängigkeit von den Ergebnisdaten.
22. Eine Datenstruktur (234),
- wobei die Datenstruktur ein Format hat, welches zwischen einem Bereitstel- ler-Kryptosystem und einem Empfänger-Kryptosystem gemäß eines krypto- graphischen Standards vereinbart ist,
- wobei die Datenstruktur ein erstes vordefiniertes Feld (438) beinhaltet, wel ches gemäß des kryptographischen Standards zur Speicherung von krypto- graphischen Daten genau eines kryptographischen Algorithmus dient; und wobei das erste vordefinierte Feld zusammengesetzte kryptographische Da ten enthält, wobei die zusammengesetzten kryptographischen Daten aus kryptographischen Teildaten zusammengesetzt sind, die jeweils von mehre ren kryptographischen Algorithmen (214-224) erzeugt wurden; und/oder
- wobei die Datenstruktur ein zweites vordefiniertes Feld (440) beinhaltet, wel ches gemäß des kryptographischen Standards zur Speicherung eines Algo rithmenbezeichners genau eines kryptographischen Algorithmus dient; und wobei das zweite vordefinierte Feld einen Identifikator des zweiten Kon- trollalgorithmus sowie Algorithmenbezeichner der von diesem zu verwen denden zweiten kryptographischen Algorithmen und optional Komponen tenparameter und/oder Kontrollparameter des zweiten Kontrollalgorithmus.
23. Datenstruktur nach Anspruch 22, wobei die Datenstruktur ausgewählt ist aus einer Gruppe umfassend:
- ein Zertifikat, insbesondere ein X.509 Zertifikat;
- ein CV-Zertifikat (Card Verifyable Zertifikat);
- eine Dateisignatur oder eine verschlüsselte Datei, insbesondere eine Datei signatur oder eine verschlüsselte Datei gemäß Cryptographic Message Syntax (CMS) Standard,
- eine Zertifikatsanforderung, insbesondere eine Zertifikatsanforderung nach
RFC 2986: PKCS #10;
- eine Sperrliste, insbesondere eine Certificate Revocation List (CRL) gemäß gemäß RFC 5280;
- eine Gültigkeitsauskunft für Zertifikate, insbesondere eine Gültigkeitsauskunft gemäß Online Certificate Status Protocol - OCSP
24. Datenstruktur nach Anspruch 22 oder 23, wobei das erste Feld ein Feld ist, das gemäß eines kryptographischen Standards zur Speicherung der von einem einzelnen kryptographischen Al gorithmus erzeugten kryptographischen Daten bestimmt ist; und/oder - wobei das zweite Feld ein Feld ist, das gemäß eines kryptographischen Standards zur Speicherung eines Algorithmenbezeichners und optionaler Parameter eines einzelnen kryptographischen Algorithmus bestimmt ist.
25. Datenstruktur nach einem der Ansprüche 22-24, wobei es sich bei den krypto graphischen Daten des genau einen kryptographischen Algorithmus handelt um ein Chiffrat, um einen kryptographischen Schlüssel oder um eine digitale Signatur.
26. Datenstruktur nach einem der Ansprüche 22-25, wobei es sich bei den krypto graphischen Teildaten handelt um ein Chiffrat, um einen kryptographischen Schlüssel oder um eine digitale Signatur.
27. Ein Bereitsteller-Kryptosystem (200) mit mehreren ersten kryptographischen Algorithmen und zumindest einem ersten Kontrollalgorithmus, das dazu konfi guriert ist, eine Datenstruktur gemäß einem der Ansprüche 22-26 zu erzeugen.
28. Ein Empfänger-Kryptosystem (240) mit mehreren zweiten kryptographischen Algorithmen und zumindest einem zweiten Kontrollalgorithmus, das dazu kon figuriert ist, eine Datenstruktur gemäß einem der Ansprüche 22-26 zu verarbei ten.
29. Ein Bereitsteller-Kryptosystem (200) umfassend:
- ein flüchtiges oder nicht flüchtiges Speichermedium mit mehreren ersten kryptographischen Algorithmen und mindestens einen ersten Kontrollalgo rithmus, wobei ein erster Kontrollalgorithmus eine Rechenvorschrift zur Auswahl und/oder Kombination von einem oder mehreren der ersten kryp tographischen Algorithmen ist;
- zumindest einen Prozessor, der konfiguriert ist zum:
• Erzeugen von Eingabedaten;
• Berechnen von zusammengesetzten kryptographischen Daten durch Ausführung von mehreren der ersten kryptographischen Algorithmen, wobei die zusammengesetzten kryptographischen Daten als Funktion von Eingabedaten berechnet werden, wobei eine Auswahl der mehre ren ersten kryptographischen Algorithmen und/oder eine Kombination der mehreren ersten kryptographischen Algorithmen gemäß eines ers ten Kontrollalgorithmus erfolgt;
• Erzeugen einer Datenstruktur (234) gemäß einem der Ansprüche 22-26, wobei die Datenstruktur ein Format hat, das zwischen dem Bereitsteller- Kryptosystem und einem Empfänger-Kryptosystem vereinbart wurde, wobei das erste vordefinierte Feld mit den zusammengesetzten krypto graphischen Daten gefüllt wird; und
• Bereitstellen der Datenstruktur von dem Bereitsteller-Kryptosystem an das Empfänger-Kryptosystem.
30. Ein Empfänger-Kryptosystem (240) umfassend:
- ein flüchtiges oder nicht flüchtiges Speichermedium mit mehreren zweiten kryptographischen Algorithmen und mindestens einem zweiten Kontrollalgo rithmus, wobei ein zweiter Kontrollalgorithmus eine Rechenvorschrift zur Auswahl und/oder Kombination von einem oder mehreren der zweiten kryp tographischen Algorithmen ist;
- zumindest einen Prozessor, der konfiguriert ist zum:
• Empfangen einer Datenstruktur (234) gemäß eines der Ansprüche 22- 26 von dem Bereitsteller-Kryptosystem, wobei die Datenstruktur zu sammengesetzte kryptographischen Daten in dem vordefinierten ersten Feld (438) gespeichert hat;
• Berechnen von Ergebnisdaten als Funktion der zusammengesetzten kryptographischen Daten durch Anwenden von einem oder mehreren der zweiten kryptographischen Algorithmen, wobei eine Auswahl und/oder Kombination des einen oder der mehreren zweiten kryptogra phischen Algorithmen gemäß eines zweiten Kontrollalgorithmus erfolgt; und
• automatische Ausführung einer Software- und/oder Flardwarefunktion
(310) in Abhängigkeit von den Ergebnisdaten.
EP21742801.0A 2020-07-08 2021-07-07 Bereitsteller- und empfänger-kryptosysteme mit kombinierten algorithmen Pending EP4179694A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102020117999.5A DE102020117999A1 (de) 2020-07-08 2020-07-08 Bereitsteller- und Empfänger-Kryptosysteme mit kombinierten Algorithmen
PCT/EP2021/068805 WO2022008587A1 (de) 2020-07-08 2021-07-07 Bereitsteller- und empfänger-kryptosysteme mit kombinierten algorithmen

Publications (1)

Publication Number Publication Date
EP4179694A1 true EP4179694A1 (de) 2023-05-17

Family

ID=76958969

Family Applications (1)

Application Number Title Priority Date Filing Date
EP21742801.0A Pending EP4179694A1 (de) 2020-07-08 2021-07-07 Bereitsteller- und empfänger-kryptosysteme mit kombinierten algorithmen

Country Status (4)

Country Link
US (1) US20230269080A1 (de)
EP (1) EP4179694A1 (de)
DE (1) DE102020117999A1 (de)
WO (1) WO2022008587A1 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021056069A1 (en) * 2019-09-25 2021-04-01 Commonwealth Scientific And Industrial Research Organisation Cryptographic services for browser applications
JP2023072170A (ja) * 2021-11-12 2023-05-24 キヤノン株式会社 情報処理装置および情報処理装置の制御方法
CN115208587B (zh) * 2022-09-15 2022-12-09 三未信安科技股份有限公司 一种基于密码模块的密码算法的实现系统及方法
US12170725B2 (en) * 2022-10-03 2024-12-17 At&T Intellectual Property I, L.P. Methods, systems, and procedures for quantum secure ecosystems
CN119544233A (zh) * 2023-08-28 2025-02-28 华为技术有限公司 一种基于安全协商的通信方法及装置
CN118842659B (zh) * 2024-09-23 2024-12-20 北京隐算科技有限公司 一种基于RSA的n选k不经意传输方法
US20260106764A1 (en) * 2024-10-14 2026-04-16 Institute For Basic Science Electronic signature device using multiple electronic signature scheme and electronic signature system including the same
CN120434044B (zh) * 2025-07-02 2025-11-04 山东云海国创云计算装备产业创新中心有限公司 一种加密方法、装置、设备、存储介质及计算机程序产品

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6941459B1 (en) * 1999-10-21 2005-09-06 International Business Machines Corporation Selective data encryption using style sheet processing for decryption by a key recovery agent
DE102006012180A1 (de) * 2006-03-16 2007-09-20 Manfred Hoffleisch Kryptographisches Verfahren
US20100278338A1 (en) 2009-05-04 2010-11-04 Mediatek Singapore Pte. Ltd. Coding device and method with reconfigurable and scalable encryption/decryption modules
US8918648B2 (en) * 2010-02-25 2014-12-23 Certicom Corp. Digital signature and key agreement schemes
US10375043B2 (en) * 2014-10-28 2019-08-06 International Business Machines Corporation End-to-end encryption in a software defined network
EP3110065A1 (de) * 2015-06-24 2016-12-28 medisite Technology GmbH Verschlüsselungsfilter
US10666437B2 (en) * 2017-11-07 2020-05-26 Harris Solutions NY, Inc. Customizable encryption/decryption algorithm
US11563590B1 (en) * 2018-04-03 2023-01-24 Amazon Technologies, Inc. Certificate generation method
US11184157B1 (en) * 2018-06-13 2021-11-23 Amazon Technologies, Inc. Cryptographic key generation and deployment
US12058113B2 (en) * 2019-06-19 2024-08-06 Amazon Technologies, Inc. Hybrid key exchanges for double-hulled encryption
US11322050B1 (en) * 2020-01-30 2022-05-03 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography optimization

Also Published As

Publication number Publication date
WO2022008587A1 (de) 2022-01-13
DE102020117999A1 (de) 2022-01-13
US20230269080A1 (en) 2023-08-24

Similar Documents

Publication Publication Date Title
WO2022008587A1 (de) Bereitsteller- und empfänger-kryptosysteme mit kombinierten algorithmen
DE112021006229B4 (de) Hybride schlüsselableitung zum sichern von daten
DE60305775T2 (de) Verfahren und Gerät zur Berechnung von Haschwerten in einem kryptographischen Koprozessor
DE602005002652T2 (de) System und Verfahren für das Erneuern von Schlüsseln, welche in Public-Key Kryptographie genutzt werden
DE102009024604B4 (de) Erzeugung eines Session-Schlüssels zur Authentisierung und sicheren Datenübertragung
EP3182318B1 (de) Signaturgenerierung durch ein sicherheitstoken
EP1125395B1 (de) Verfahren und anordnung zur authentifikation von einer ersten instanz und einer zweiten instanz
DE112015002927B4 (de) Generierung und Verwaltung geheimer Chiffrierschlüssel auf Kennwortgrundlage
DE112011100182T5 (de) Transaktionsprüfung für Datensicherheitsvorrichtungen
DE102021129514A1 (de) Binden von post-quanten-zertifikaten
DE202008013415U1 (de) Datenverarbeitungssystem zur Bereitstellung von Berechtigungsschlüsseln
DE102015210734A1 (de) Verwaltung kryptographischer schlüssel
DE102010055699A1 (de) Kryptographisches Verfahren
WO2015022150A1 (de) Unterstützung einer entschlüsselung von verschlüsselten daten
DE19702049C1 (de) Zertifizierung kryptografischer Schlüssel für Chipkarten
DE102011003919A1 (de) Mobilfunkgerätbetriebenes Authentifizierugssystem unter Verwendung einer asymmetrischen Verschlüsselung
DE19622630C1 (de) Verfahren zum gruppenbasierten kryptographischen Schlüsselmanagement zwischen einer ersten Computereinheit und Gruppencomputereinheiten
DE112012000971B4 (de) Datenverschlüsselung
EP2863610A2 (de) Verfahren und System zum manipulationssicheren Bereitstellen mehrerer digitaler Zertifikate für mehrere öffentliche Schlüssel eines Geräts
EP3672142A1 (de) Verfahren und system zur sicheren übertragung eines datensatzes
EP3552344B1 (de) Bidirektional verkettete blockchainstruktur
CN114510734B (zh) 数据访问控制方法、装置及计算机可读存储介质
WO2018085870A1 (de) Verfahren zum austausch von datenfeldern von zertifizierten dokumenten
DE102015111715B4 (de) Sichere elektronische Unterzeichnung von Information
DE60021985T2 (de) Verfahren ind vorrichtung zur sicheren erzeugung von öffentlichen/geheimen schlüsselpaaren

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: UNKNOWN

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20230208

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

P01 Opt-out of the competence of the unified patent court (upc) registered

Effective date: 20230526

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

17Q First examination report despatched

Effective date: 20250509

RAP3 Party data changed (applicant data changed or rights of an application transferred)

Owner name: BUNDESDRUCKEREI GMBH