DISPLAYING DIGITAL DOCUMENTS WITH A BLOCKCHAIN
Patent Information
- Application Number
- DE502021006128
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-05-14
- Filing Date
- 2021-05-12
- Publication Date
- 2025-01-02
- Estimated Expiration
- 2041-05-12
AI Technical Summary
Current methods for securing digital documents are inadequate, as they lack protection against forgery and are logistically inefficient, especially for digital documents, where classic security concepts are inadequate or disadvantageous.
A method using a blockchain system with a smart contract, where digital documents are issued and verified through a centralized or decentralized signature server, utilizing asymmetric key pairs and hash values stored on a blockchain, ensuring secure and efficient issuance and authentication of digital documents.
This method provides secure and efficient issuance and verification of digital documents, preventing counterfeiting, and allows for the authentication of an unlimited number of copies with a single entry in the blockchain, reducing costs and improving security.
Description
[0001] The invention relates to a method for issuing a digital document in a blockchain, an issuing computer system, a signature server, and a system for implementing the method. Furthermore, the invention relates to a method for verifying the issued document.
[0002] Documents, such as certificates, usually comprise a body of documents, for example, paper, on which they are issued, and can easily be forged using modern image processing programs and color printers. The problem of a lack of forgery security arises particularly when, in addition to the original document, additional copies, such as transcripts, duplicates, and copies, are required.
[0003] Their authenticity is usually proven by certification. An official certification is an official attestation of the accuracy of a transcript, duplicate, copy, or similar document. Certification is generally based only on a brief visual inspection and is therefore unreliable. Furthermore, certification is already considered proper if the certification mark bears an official seal, such as a stamp, and the certification mark is signed by the certifying party. A certification mark includes the statement that the certified transcript / copy corresponds to a submitted original document. Furthermore, the certification mark can include a precise designation of the original document whose transcript / copy is being certified. Such certification can also be easily forged using modern image processing programs.
[0004] Applying security features to document bodies, such as paper, is generally logistically inefficient. Blank sheets with the corresponding security features, such as those used for identification documents or banknotes, must be physically distributed and protected against misuse or theft. Furthermore, the costs of implementing the security features increase linearly with the number of certificates. A fundamental principle of the security features used is that security is achieved by a 1:1 copy of the security features, which is too costly and therefore economically unviable.
[0005] The aforementioned problems arise even more in the case of digital documents, to which the corresponding classic security concepts generally cannot be applied and / or are inadequate or detrimental.
[0006] DE 10 2018 115 350 A1 describes a method for the tamper-proof issuance and storage of a plurality of electronic documents using a blockchain. The method comprises receiving a data record for entry by a blockchain server of a blockchain network, wherein the data record comprises data of an electronic document to be issued according to a specification of a sovereign institution, and executing program instructions of a program module of the blockchain, wherein the program module is configured to issue electronic documents according to the specification. Executing the program instructions comprises checking the data record to determine whether the data record meets the specification. If the data record meets the specification, the data record is added to an additional block of the blockchain.
[0007] EP 3 319 006 A1 describes a method for offline authentication of a virtual document using a first and a second electronic device. The first electronic device comprises a virtual document and a storage ID. The second electronic device comprises a cryptographically secured database containing hash values of a plurality of virtual documents. The storage ID identifies a database entry with the hash value of the virtual document.The method comprises transmitting the virtual document together with a storage ID to the second electronic device, calculating a hash value of the virtual document by the second electronic device, identifying the database entry with the hash value of the virtual document using the storage ID of the virtual document, and comparing the calculated hash value with the hash value of the virtual document stored in the identified database entry, wherein the authenticity of the virtual document is confirmed if both hash values match.
[0008] The invention is based on the object of creating an efficient and secure method for issuing and securing a digital document.
[0009] The problem underlying the invention is solved by the features of the independent patent claims. Embodiments of the invention are specified in the dependent patent claims.
[0010] Embodiments include a method for issuing a digital document using an issuer computer system of an issuer of the digital document and a central or decentralized signature server of a signer of the digital document. The issuer computer system comprises a communication interface for communication via a network and a memory. A first private cryptographic key of a first asymmetric key pair of the issuer computer system is stored in a protected memory area of the memory. The signature server has a second private cryptographic key of a second asymmetric key pair assigned to the signer as the signature key, wherein the authenticity of the second asymmetric key pair is secured via a PKI.
[0011] The digital document is issued using a blockchain. A smart contract with initial program instructions is associated with the blockchain. Executing the initial program instructions creates entries in the blockchain associated with the smart contract.
[0012] The procedure includes: Creating a first data set with document data for the digital document in a machine-readable format by the issuer computer system, Sending the first data set by the issuer computer system using the communication interface over a network to the signature server, Receiving the first hash value of the digital document from the signature server over the network by the issuer computer system using the first communication interface, wherein the digital document comprises the first data set signed with a first signature created using the signature key, wherein the digital document further comprises a second data set with the document data in a page description language format, wherein the second data set is signed with a second signature created using the signature key,Creating an entry request signed with the issuer's private cryptographic key by the issuer computer system, wherein the entry request identifies the smart contract and includes the first hash value of the digital document, sending the signed entry request by the issuer computer system using the communication interface over the network to a first blockchain server for entering the first hash value of the digital document into the blockchain using the smart contract, upon entry of the first hash value into the blockchain, receiving the digital document from the signature server over the network by the issuer computer system using the first communication interface.
[0013] Embodiments can have the advantage that digital documents are issued whose data can be machine-readable and thus fully automatically evaluated and / or processed using the first data set, and can also be visually output in a user-friendly manner using the second data set, for example on a display or with a printer. The second data set in the page description language format specifies the design and / or visual appearance of the document for visual output, for example on a display or with a printer. Furthermore, embodiments can have the advantage that the issuer does not require a PKI certificate, but rather a central PKI certificate can be used to secure a plurality of digital documents from different issuers.
[0014] The authenticity of the document is secured both through the signatures and through the entry in the blockchain. The signature server is responsible for the signatures, while the issuing computer system is responsible for the entry in the blockchain. Thus, the document is secured via two independent, interconnected instances, which increases security.
[0015] Embodiments can have the advantage of enabling the secure issuance or certification of digital documents, such as certificates or other files. Issuing a digital document here means creating an electronic file with all the data of the corresponding document as well as proof of the authenticity of the corresponding data. According to embodiments, such proof of authenticity for a digital document comprises a hash value of the corresponding digital document entered into a blockchain. Securing a digital document with a checksum based on a hash and storing it in a blockchain is effective and secure. This allows forgery, in particular, to be efficiently prevented. The resulting costs hardly increase with the number of documents, since the costs for securing individual documents are already low.Furthermore, embodiments can have the advantage that the blockchain confirms the authenticity of all copies of a document once entered into the blockchain. It is thus possible to certify an unlimited number of copies with a single entry in the blockchain. As long as the copies are identical in content to the original document or file, so that the hash value does not change, the blockchain can be used to verify that a corresponding copy is indeed a faithful copy. In the case of conventional paper documents, for example, each individual copy would have to be certified. The method is suitable for all types of digital documents, i.e., data objects or files. Documents of any size or number of pages can be secured efficiently and in a space-saving manner. The method is easy to use.Finally, using a blockchain allows a cryptocurrency to implement an implicit fee system.
[0016] The resulting hash value of the document is permanently stored and publicly accessible. Depending on the implementation, the hash value is entered into the blockchain along with a timestamp. The timestamp indicates, for example, the time at which the corresponding block with the associated hash was entered into the blockchain. This way, the time of document issuance can be verified at any time. No pre- or post-dating is possible during entry. Despite the potential public accessibility of the hash value, the blockchain does not contain any publicly accessible personal data of the document holder or any other data contained in the document. The personal data of the document holder, as well as the document itself, are solely under the control of the document holder or the document issuer.Only those in possession of the document can calculate its hash value and verify whether an identical hash value has been stored in the blockchain. If this is the case, the document in question is considered authentic. However, the publicly accessible hash values on the blockchain do not provide any information about the nature or content of the underlying document.
[0017] Depending on the implementation, the entry in the blockchain containing the hash value includes a signature from the document issuer. For example, the entry containing the hash value is signed with the issuer's private cryptographic key. This signature can be verified with the issuer's corresponding public cryptographic key. Since the issuer's public key has been made public, it is verifiable that the document was actually issued by an authorized issuer. For example, in the case of a certificate, it can be verified whether the responsible school actually issued the certificate, i.e., entered it into the blockchain.
[0018] For example, the entry in the blockchain includes an identifier of the issuer, such as a school. This identifier can, for example, correspond to and / or be derived from the issuer's public cryptographic key, so that the origin of the hash value in the blockchain is verifiable. The identifier can, for example, be a blockchain address of the issuer. Only data signed with the issuer's corresponding private cryptographic key can be entered under this blockchain address. When entering data into the blockchain, for example, the entry request identifies the corresponding blockchain address.
[0019] According to embodiments, a blockchain is provided for issuing and verifying digital documents, such as certificates. If an issuer of documents, such as a government agency, university, school, institute, or private company, wishes to use the blockchain, they can obtain authorization. During the authorization process, for example, the issuer is authenticated. As soon as the issuer is authorized, i.e., their public cryptographic key is stored or registered in the blockchain, they can issue digital documents and store their hash values in the blockchain for the purpose of verification. This storage of the hash values in the blockchain corresponds to a certification of the corresponding digital documents as well as all faithful copies of them.
[0020] Embodiments can thus enable documents, such as certificates, to be issued exclusively or in addition to their paper issuance in digital form as a data construct for electronic data processing. Such digital documents can be stored and / or transported on any electronic device with appropriate storage. However, these electronic devices should be protected against unauthorized access. For example, the documents can be stored in a protected storage area of the corresponding storage. Furthermore, the documents can be cryptographically secured, for example, using a security module. Furthermore, the digital documents can be easily sent via electronic communication connections, such as the Internet.However, the communication connections used for sending should be protected against eavesdropping or attempts at manipulation by unauthorized third parties. Cryptographic security can be achieved, for example, by encryption with a symmetric cryptographic key and / or a public cryptographic key assigned to the recipient. According to embodiments, transmission takes place via a connection secured by end-to-end encryption. Furthermore, the transmission of the digital document can be secured using suitable transport encryption, such as HTTPS.
[0021] If the owner of such a digital document needs a copy to send, for example copies of certificates for an online application, they can create one themselves. As long as the copy is unchanged from the original, i.e. has the same hash value, the resulting copy is already certified by the hash value entered in the blockchain. The recipient of the corresponding copy can calculate its hash value and use the blockchain to check whether an identical hash value has been stored by an authorized authority, i.e. the issuer. For example, an applicant can send all of their certificates in digital form when applying online, and the recipient can have a computer system automatically check their authenticity. This type of automation can be particularly advantageous for large international companies that receive thousands of applications per month.Embodiments implement sufficiently high security standards to rule out forgeries. This can be advantageous for hospitals, for example, as it allows for efficient and effective verification of whether an applicant is submitting forged certificates, especially a forged license to practice medicine. The verification can be implemented efficiently, for example, by using a central blockchain for all national and / or at least a selection of international universities that offer recognized medical programs. Since the blockchain only contains hash values and no personal data of the certificate holder, a high standard of data protection is also ensured.
[0022] According to embodiments, an entry is associated with the program module, for example, if it includes an ID of the program module.
[0023] A "document" is understood to mean, in particular, a certificate, a certificate, or an identification, valuable, or security document, in particular a sovereign document, in particular a paper-based and / or plastic-based document, such as an electronic identification document, in particular a passport, identity card, visa, driver's license, vehicle registration document, vehicle registration document, health insurance card, or a company ID card, or another ID document, a chip card, a means of payment, in particular a banknote, bank card or credit card, a waybill, or other proof of authorization. In particular, the document can be a Machine-Readable Travel Document, as standardized, for example, by the International Civil Aviation Organization (ICAO) and / or the BSI.
[0024] A "digital" document is understood to be a data construct for electronic data processing that contains the same data as a previously defined document, but does not have a permanently assigned physical document body. A digital document, also referred to as an electronic document, can thus include, for example, a text, a table of numbers, an image, or a sequence or combination of texts, tables, or images that have been created or converted into a file by digitization, i.e., conversion into binary code. In particular, the validity of such a document is independent of the existence of a permanently assigned document body. A "digital" document can be an electronic file of any file format, in particular a non-executable text or spreadsheet file.Furthermore, a digital document can also be, for example, a video file, a song file, program code, an executable file, an archive or something similar.
[0025] A certificate is a statement in text or written form that establishes a specific fact or situation. It can also identify the issuer of the certificate. A certificate can be, for example, a school or university certificate, a certificate of successful participation in continuing education or courses, a lecture certificate, an internship certificate, or a job reference.
[0026] A certificate could, for example, be an IHK examination certificate, which is a document awarded to a successful graduate after passing the final examination before the Chamber of Industry and Commerce (IHK) in a recognized apprenticeship or advanced training course. An IHK certificate includes, for example, information about the learned profession, i.e. a job title, and the passed final examination. The certificate can have a uniform layout and include the job title as well as the field of study or focus. The overall result, including grade and points, is shown above the individual examination results. At the request of the test taker, a vocational school grade can be shown below the individual examination results.
[0027] In addition, a document can also be, for example, a skilled worker certificate, journeyman's certificate, master's certificate, bachelor's certificate, master's certificate, magister's certificate, diploma certificate, doctorate certificate or license to practice.
[0028] A "blockchain" is understood here and below to be an ordered data structure comprising a plurality of interconnected data blocks. In particular, a blockchain is understood to be an ordered data structure in which each block (except the first block) contains a check value, such as a hash value, of its predecessor block, and thus, based on each block, the validity of all its predecessor blocks can be checked and, if necessary, confirmed. For examples of a blockchain, see https: / / en.wikipedia.org / wiki / Block chain_(database) and "Mastering Bitcoin," Chapter 7, The Blockchain, page 161 ff. The blockchain concept was described, for example, in a 2008 white paper on Bitcoin under the pseudonym Satoshi Nakamoto ("Bitcoin: Peer-to-Peer Electronic Cash System" (https: / / bitcoin.org / bitcoin.pdf)).The blockchain described therein consists of a series of data blocks, each containing one or more entries or transactions and provided with a checksum in the form of a hash value. Additional blocks of the blockchain are generated, for example, in a computationally intensive process known as mining. These additional blocks are then added to the blockchain and distributed via a network to all participants, or nodes, in the network.
[0029] Embodiments can have the advantage that the blockchain offers a high degree of security against subsequent manipulation by storing cryptographic checksums, i.e., hash values, of the previous block in each subsequent block. The chaining of the blocks can then be verified using these root hash values. Each block of the blockchain contains the hash of the entire previous block header in its header. This clearly defines the order of the blocks, creating a chain structure. By chaining the individual blocks together in this way, subsequent modification of previous blocks or individual entries is virtually impossible, since this would require the hash values of all subsequent blocks to be recalculated in a short period of time.
[0030] A blockchain can, for example, also be implemented as a private blockchain, where only a select group of participants has the authority to add valid blocks. This authority can be verified, for example, by means of a signature using a private cryptographic key. The private cryptographic key can belong to an asymmetric key pair, which also includes a public cryptographic key with which the signature can be verified. The asymmetric key pair can also be associated with a certificate, for example, that proves the authority to create a valid block of the blockchain. This certificate can also be associated with a public key infrastructure (PKI), which verifies the authenticity of the certificate.According to another embodiment, a public key for each participant in the selected group can be stored in the blockchain, for example, in a genesis block. These public keys can be used to verify whether block signatures, and thus the corresponding blocks themselves, are valid.
[0031] Consensus can also be implemented in a blockchain in other ways. For example, consensus can be reached by voting on the inclusion of proposed entries in the blockchain. For example, each participant maintains a unique list of other participants whom they trust as a group. Each participant can suggest additional entries to be included in an additional block of the blockchain. The inclusion and thus the recognition of the validity of the proposed entries is voted on. For example, each participant only votes on those proposals that originate from participants on their list. In other words, the decision as to whether a proposal for an additional entry is recognized as valid, i.e.whether there is consensus among the participants regarding the validity of this entry, only the votes of those participants who are included in the list of the participant making the corresponding proposal are taken into account. For a proposal for an entry to be accepted as valid, a certain minimum proportion of voting participants must vote yes, for example 80%. All proposed entries that meet this criterion are included in the blockchain. Such a vote can consist of several rounds. All other proposals that do not meet the aforementioned criterion are discarded or put to a vote again in the vote on the next block of the blockchain. The aforementioned lists represent subgroups of the blockchain network that the participant who maintains the respective list trusts as a group, without this requiring them to trust every individual participant on the list.An example of such a consensus procedure is the Ripple Protocol Consensus Algorithm (David Schwartz et al.: "The Ripple Protocol Consensus Algorithm", Ripple Labs Inc., 2014, https: / / ripple.com / files / ripple_consensus_whitepaper.pdf).
[0032] To verify blockchain entries or search for hash values, a GUI, for example in the form of a website, can be provided by a blockchain administration instance. For example, the blockchain can be private, e.g., internal to a company or within a network, or public. For example, it could be a Bitcoin, Litecoin, or Ethereum blockchain.
[0033] A "program module" here refers to a standalone program stored in a blockchain. The program module can be configured to control the creation of entries in the blockchain assigned to the program module. The program module can be stored in a single block of the blockchain or distributed across multiple blocks of the blockchain. For example, each issuer or each administrative entity of a group of issuers, or all issuers together, is assigned an individual program module. The blockchain is, for example, a special document or certificate blockchain. A program module can be, for example, a "smart contract," such as one that can be implemented in the Ethereum blockchain.
[0034] A "program" or "program instructions" is understood here, without limitation, to mean any type of computer program that contains machine-readable instructions for controlling a functionality of the computer.
[0035] An "interface" is defined here as an interface through which data can be received and sent. The communication interface can be configured as contact-based or contactless. The communication interface can be an internal or external interface, which is connected to an associated device, for example, via a cable or wirelessly.
[0036] Communication can, for example, take place via a network. A "network" is understood here to mean any transmission medium with a connection for communication, in particular a local connection or a local network, in particular a local area network (LAN), a private network, in particular an intranet, and a digital private network (Virtual Private Network - VPN). For example, a computer system can have a standard radio interface for connecting to a WLAN. Furthermore, it can be a public network, such as the Internet. Depending on the embodiment, this connection can also be established via a mobile network. "Memory" is understood here to include both volatile and non-volatile electronic memories or digital storage media.
[0037] "Non-volatile memory" refers to electronic memory for the permanent storage of data. Non-volatile memory can be configured as non-modifiable memory, also known as read-only memory (ROM), or as modifiable memory, also known as non-volatile memory (NVM). In particular, this can be an EEPROM, such as a Flash EEPROM, also known as Flash. Non-volatile memory is characterized by the fact that the data stored on it is retained even after the power supply is turned off.
[0038] "Volatile electronic memory" refers to a memory for temporarily storing data, characterized by the fact that all data is lost after the power supply is turned off. In particular, this can be a volatile random-access memory (RAM) or a volatile processor memory.
[0039] A "protected memory area" is understood here to be an area of an electronic memory to which access, i.e., read or write access, is only possible via a processor of the security module. According to embodiments, access from the processor coupled to the memory is only possible if a necessary condition is met. This can be, for example, a cryptographic condition, in particular, successful authentication and / or successful authorization verification.
[0040] A "processor" is understood here and below to mean a logic circuit used to execute program instructions. The logic circuit can be implemented on one or more discrete components, in particular on a chip. In particular, a "processor" is understood to mean a microprocessor or a microprocessor system comprising multiple processor cores and / or multiple microprocessors.
[0041] A public key infrastructure (PKI) is a system for issuing, distributing, and verifying digital certificates. In an asymmetric cryptosystem, a digital certificate serves to confirm the authenticity of a public key and its permissible scope of use and validity. The digital certificate itself is protected by a digital signature, the authenticity of which can be verified using the public key of the certificate issuer. A digital certificate is used to verify the authenticity of the issuer key. In this way, a chain of digital certificates can be established, each of which confirms the authenticity of the public key with which the previous certificate can be verified. Such a chain of certificates forms a so-called validation path or certification path.PKI participants must be able to rely on the authenticity of the last certificate, the so-called root certificate, and the key certified by this certificate without the need for any additional certificates. The root certificate is managed by a so-called root certification authority, whose assumed authenticity underlies the authenticity of all PKI certificates.
[0042] A "certificate" here refers to a digital certificate, also known as a public-key certificate. Such certificates based on asymmetric key pairs create a so-called public-key infrastructure (PKI). Such a certificate consists of structured data that serves to assign a public key of an asymmetric cryptosystem to an identity, such as a person or a device. A certificate can, for example, contain a public key and be signed. Alternatively, certificates based on zero-knowledge cryptosystems are also possible. For example, the certificate can conform to the X.509 standard or another standard.
[0043] Digital certificates are a proven means of proving authorization when securing electronic communication using asymmetric cryptographic methods. Certificates are structured data that document the authenticity and / or other properties / authorizations of the owner of a public key (signature verification key) and are confirmed by an independent, trustworthy authority (certification service provider / CSP), generally the certification authority that issued the certificate. Certificates are typically made available to a wide audience to enable them to verify electronic signatures for authenticity and validity.
[0044] A certificate can be associated with an electronic signature if the private key associated with the public key was used to generate the electronic signature to be verified. By making a certificate associated with a public key available to the public, a CDA enables users of asymmetric cryptosystems to associate the public key with an identity, such as a person, an organization, an energy system, or a computer system.
[0045] Asymmetric key pairs are used for a variety of cryptosystems and also play an important role in the signature of electronic documents. An asymmetric key pair consists of a public key, which is used to encrypt and / or decrypt data and may be passed on to third parties, such as a service provider, and a private key, which is used to encrypt and / or decrypt data and must generally be kept secret. The public key allows anyone to encrypt data for the owner of the private key, verify digital signatures on their documents, or authenticate them. A private key allows its owner to decrypt data encrypted with the public key or to create digital signatures for electronic documents.A signature created with a private key can be verified with the corresponding public key.
[0046] The creation of a digital signature, hereinafter also referred to simply as a "signature," is a cryptographic process in which an additional data value, referred to as a "signature," is calculated for any data, for example, an electronic document. The signature can, for example, be an encrypted hash value of the electronic document, in particular a hash value encrypted with a private key of a cryptographic key pair associated with a certificate. The special feature of such a signature is that its authorship and affiliation with a specific person or entity can be verified by any third party.
[0047] A digital signature is also understood here as a digital seal that is not assigned to a natural person, but to a legal entity. A digital seal therefore serves not as a declaration of intent by an individual, but as proof of origin for an institution. It can thus ensure the origin and integrity of digital documents and prove that they originate from a specific legal entity.
[0048] An "encrypted end-to-end connection" or an "encrypted end-to-end transmission channel" is understood here as a connection between a sender and a receiver with end-to-end encryption, in which the data to be transmitted is encrypted by the sender and only decrypted by the receiver. The encryption of transmitted data thus occurs across all transmission stations, so that intermediate stations cannot gain knowledge of the content of the transmitted data due to the encryption. The connection is cryptographically secured by encryption to prevent spying and / or manipulation of the transmission. A so-called secure messaging procedure can be used for this purpose.For example, end-to-end encryption is based on two symmetric cryptographic keys, with a first symmetric key being used to encrypt messages and a second symmetric key being used to authenticate the sender of the message.
[0049] A key for authenticating a message sender in a secure messaging process can, for example, be used to create a message authentication code (MAC). A MAC can be used to obtain certainty about the origin of messages and to verify their integrity. MAC algorithms require two input parameters: the data to be protected and a secret key. From these two, a message authentication code is calculated in the form of a checksum. The sender of a message calculates a MAC for the data to be transmitted in the message and sends the message, along with the MAC, to the recipient. The recipient calculates the MAC for the received message using its key and compares the calculated MAC with the received MAC.If both values match, it follows that the message was sent by a party that has access to the secret key and that the message was not altered during transmission.
[0050] According to embodiments, the second data set is created by the issuing computer system and sent to the signature server along with the first data set. Embodiments may have the advantage that the issuing computer system can determine the design or visual appearance of the digital document upon output using the second data set.
[0051] According to embodiments, the second data set is a data set created by the signature server using the first data set sent by the issuing computer system. For this purpose, the signature server includes, for example, a template for the design or visual appearance of the digital document in the page description language.
[0052] According to some embodiments, the second signature signs the second data set together with the signed first data set. Some embodiments may have the advantage that the second signature can ensure the authenticity of the content of the entire digital document.
[0053] According to embodiments, the machine-readable format is a markup language, such as the Extensible Markup Language (XML), and / or an exchange format, such as the JavaScript Object Notation (JSON), Open Badges, and / or Verifiable Credentials.
[0054] Extensible Markup Language (XML) is a markup language for representing data, especially hierarchically structured data, in the form of a machine-readable text file. The representation of data according to XML is also human-readable. JavaScript Object Notation (JSON) is an exchange format for transferring and storing data, especially structured data. JSON is in the form of a machine-readable text file that is also human-readable. A JSON document can, for example, be valid JavaScript, which can be interpreted by a JavaScript interpreter using eval(). Open Badges are learning badges in the form of digital certificates from the Mozilla Foundation, and Verifible Credentials are verifiable credentials standardized by the W3C in "Verifiable Credentials Data Model 1.0 - Expressing verifiable information on the Web" dated November 19, 2019.
[0055] The first dataset with document data, for example, is a statement of learning outcomes from a certificate, particularly a higher education certificate. For example, the information can be based on the CEN standards EN15981:2011 EuroLMAI (European Learner Mobility Achievement Information) and / or EN15982:2011 MLO (Metadata for Learning Opportunities). EuroLMAI defines a model for the documentation and exchange of learner achievement information between learning management information systems, as well as for the merging of information from third-party providers. The model specifically considers diplomas, diploma supplements, and transcripts of higher education records. MLO defines an abstract model for representing learning opportunities.This model describes three information sources through which metadata can be stored to facilitate the publication of learning offers, namely the provider of the learning offer, the abstract description of a learning offer and a concrete example of this learning offer.
[0056] Depending on the embodiment, the page description language is one of the following languages: Portable Document Format (PDF), PostScript (PS), Device Independent File Format (DVI).
[0057] A page description language describes the structure of a page as it should appear in a specific output program or device, such as a printer. The Portable Document Format is a vector-based page description language that allows free scalability of the display. A PDF file describes the layout created with a creation application in a proportional form that is independent of the printer and presets. A PDF file can precisely reproduce a document, including all colors, raster and vector graphics, and fonts. PostScript files allow graphics and printed pages to be output on various output devices in any size and resolution without loss of quality. Graphic elements and fonts are described as scalable vector graphics, and raster graphics can also be embedded. A DVI file saves text supplemented with typesetting information.This typesetting information includes, for example, fonts, character and line spacing, character positions, etc.
[0058] Depending on the embodiment, the digital document is a digital certificate.
[0059] According to embodiments, the method further comprises: Providing a copy of the digital document by the issuer's computer system for downloading from a download server, providing an access code to a user, the access code proving the user's authorization to download the digital document.
[0060] The access code allows the user to download the digital document, or the user can forward the access code and thus grant a third party access to the digital document. Embodiments can have the advantage that the digital document can be made available to the user or their user computer system. The user can, in particular, be the owner of the digital document, who thus obtains control over the document and can send it to selected other computer systems, such as verification computer systems, which can verify the authenticity of the digital document and / or the document data using the blockchain and / or the signatures.
[0061] Depending on the embodiment, the access code is assigned a validity period and / or a maximum number of uses as proof of authorization for the user to download the digital document.
[0062] Embodiments can have the advantage that the validity of the access code can be effectively controlled both in terms of time and the number of uses, thus preventing misuse. For example, the access code can be a one-time access code that allows only one-time use.
[0063] According to embodiments, the method further comprises sending the digital document from the issuing computer system to the user computer system via the network, for example, in response to a request to issue the digital document. Embodiments can have the advantage that the digital document can be made available to the user or their user computer system. The user can, in particular, be the owner of the digital document, who thus obtains control over the document and can thus send it to selected additional computer systems, such as verification computer systems, which can verify the authenticity of the digital document and / or the document data using the blockchain and / or the signatures.
[0064] According to embodiments, the method further comprises: Encrypting the digital document using a symmetric cryptographic key by the issuer computer system, storing the encrypted digital document in a permanent memory.
[0065] Embodiments may have the advantage of enabling secure and permanent storage of issued digital documents, whereby only the owners of the symmetric cryptographic key can access the content of a correspondingly encrypted digital document.
[0066] According to embodiments, the file name under which the encrypted digital document is stored comprises a hash of personal data of the document owner, such as first name and last name. Furthermore, the hash can include document-related data, such as the year of issue. Embodiments can have the advantage that this personal and / or document-related data is known to the document owner. The document owner can thus always find the appropriate encrypted file containing their encrypted document, even if the file name is lost, since the document owner can derive or restore it at any time from their knowledge using a hash function. The corresponding hash thus serves as an access key for accessing the encrypted document.
[0067] According to embodiments, the method further comprises: Encrypting the symmetric key using the first public key of the first asymmetric key pair of the issuer, storing the symmetric key encrypted with the first public key together with the encrypted digital document in the permanent storage.
[0068] Some embodiments may have the advantage that the issuer has access to the symmetric key and can retrieve it at any time. This eliminates the need to store the symmetric key locally.
[0069] According to embodiments, the method further comprises providing the symmetric cryptographic key to a management computer system of a management entity.
[0070] According to embodiments, the method further comprises: Encrypting the symmetric key using a third public key of a third asymmetric key pair of an administrative entity, storing the symmetric key encrypted with the third public key together with the encrypted digital document in the permanent storage.
[0071] Some embodiments can have the advantage that the administrative instance also has access to the symmetric key and can retrieve it at any time. This eliminates the need to store the symmetric key locally.
[0072] According to embodiments, secure storage of digital documents in encrypted form can thus be enabled, with decryption only possible with the private cryptographic key of the issuer, for example, a school, or an authorizing administrative authority, such as a school authority. Using the corresponding private cryptographic keys, the cryptographic keys used to encrypt the stored documents can be decrypted, and these, in turn, can be used to decrypt the encrypted documents themselves.
[0073] Embodiments may have the advantage that the management computer system can also access the content of the digital document stored encrypted in the permanent memory. According to embodiments, the method comprises encrypting the symmetric cryptographic key with a public cryptographic key of an asymmetric cryptographic key pair of the management computer system of the management entity. The management computer system can decrypt the encrypted symmetric cryptographic key using a private cryptographic key of its asymmetric cryptographic key pair. Embodiments may have the advantage that the management computer system can also access the content of the digital document stored encrypted in the permanent memory.The advantage of double encryption is that multiple entities, such as issuers or administrative entities, can be granted access without encrypting the entire document multiple times. Only the symmetric access key is encrypted for each accessor using their respective public cryptographic key.
[0074] According to embodiments, the method further comprises: Receiving the signed entry request by the first blockchain server, executing the first program instructions of the smart contract identified by the signed entry request by the first blockchain server, wherein the execution of the first program instructions comprises checking the signature of the entry request using a first public cryptographic key of the first asymmetric key pair of the issuer computer system and, in the case of a valid signature, generating an additional first block of the blockchain, e.g. a next block with an additional entry, in order to issue the digital document, wherein the generated first block comprises a first entry with the first hash value, e.g. the additional entry of the next block comprises the corresponding hash value.
[0075] Embodiments may have the advantage of providing an effective method for entering digital documents into a blockchain.
[0076] According to embodiments, the method further comprises authorizing the issuing computer system to enter hash values of digital documents into the blockchain. The authorization comprises: Creating an authorization request to an authorizing administrative authority, e.g. a school authority in the case of an authorization request from a school as issuer, by the issuer computer system, wherein the authorization request comprises the first public cryptographic key of the issuer, sending the authorization request by the issuer computer system via the network to an administrative computer system of the authorizing administrative authority to create an entry request by the administrative computer system to a second blockchain server for entering an authorization of the issuer, wherein the entry request comprises the first public cryptographic key of the issuer and is signed with the third private cryptographic key of the third asymmetric key pair of the administrative computer system.
[0077] Embodiments may have the advantage that hierarchical authorization of a subordinate entity, such as a school, can be implemented by an authorizing higher-level entity, such as a school authority. The authorizing higher-level entity can, for example, be correspondingly authorized by a higher-level entity, and so on. For this purpose, the higher-level entity can send a corresponding authorization request with its third public cryptographic key to its higher-level entity, which then creates and signs a corresponding entry request for entering an authorization from the requesting entity, and sends it to a blockchain server for entry of the authorization in the blockchain.
[0078] According to embodiments, the authorization request is signed using the issuer's first private cryptographic key. Embodiments may have the advantage that the issuer's signature can be verified using the first public cryptographic key included in the authorization request, thus ensuring that the issuer is in possession of the corresponding first private cryptographic key.
[0079] The authorizing administrative authority authorizes the issuer's authorization request, for example, using the registration request.
[0080] According to embodiments, the method by the authorizing administrative entity using the administrative computer system further comprises: Creating the registration request by the management computer system for registering the issuer's authorization, wherein the registration request identifies the smart contract, comprises the issuer's first public cryptographic key, and is signed with a third private cryptographic key of a third asymmetric key pair of the management computer system, sending the registration request by the issuer computer system over the network to the second blockchain server, wherein the second blockchain server is configured to generate blocks of the blockchain, receiving the registration request by the second blockchain server, executing second program instructions of the smart contract identified by the registration request by the second blockchain server, wherein the execution of the second program instructions comprises checking the validity of the registration request and, in the case of a valid registration request,to authorize the issuer's first public cryptographic key, comprising generating a second additional block of the blockchain with an authorization confirmation from the issuer's computer system.
[0081] According to embodiments, checking the validity of the registration request comprises verifying the signature of the authorizing administrative entity with a third public cryptographic key of the third asymmetric key pair of the administrative computer system. According to embodiments, the third public cryptographic key of the administrative system is stored in the blockchain and / or in the smart contract.
[0082] The authorizing administrative authority enters the authorization into the blockchain by calling a function of the smart contract. For example, the authorizing administrative authority creates an entry request to enter the authorization into a block of the blockchain. The entry request identifies, for example, the corresponding smart contract whose function is to be used. This entry request is protected with a private cryptographic key from an asymmetric key pair of the authorizing administrative authority. For example, the entry request includes the issuer's first public cryptographic key.
[0083] Embodiments may have the advantage that the authorizing administrative authority confirms subordinates or those to be authorized after they have registered and transmitted the registered public cryptographic key used as a blockchain address to the authorizing administrative authority via a known channel. For example, an issuer, such as a school, generates an asymmetric key pair with a public cryptographic key to be used for the blockchain address or for an identifier in the blockchain and communicates this public cryptographic key to the authorizing administrative authority, such as a school board. The authorizing administrative authority authorizes the issuer in the blockchain through an authorization entry in the blockchain with the issuer's public cryptographic key.For example, secure transmission may not be necessary because known actors are exchanging information and only non-sensitive public data, such as the public cryptographic key, is sent.
[0084] According to embodiments, the method further comprises authorizing the issuer computer system to enter hash values of digital documents into the blockchain, wherein the authorizing comprises: Creating an authorization request by the issuer computer system, wherein the authorization request identifies the smart contract and comprises the issuer's first public cryptographic key, Sending the authorization request by the issuer computer system over the network to a second blockchain server, wherein the second blockchain server is configured to generate blocks of the blockchain, Receiving the authorization request by the second blockchain server, Executing second program instructions of the smart contract identified by the authorization request by the second blockchain server, wherein the execution of the second program instructions comprises checking the validity of the authorization request and, in the case of a valid authorization request,to authorize the issuer's first public cryptographic key, comprising generating a second additional block of the blockchain with an authorization confirmation from the issuer's computer system.
[0085] Embodiments may have the advantage that only authorized issuers can initiate the entry of hash values of digital documents. For example, upon an authorization request, data from the requesting issuer is first entered into the blockchain using the issuer's first public cryptographic key. A valid authorization request may require additional authorization by an administrative computer system of an authorizing administrative authority. For example, upon receipt of an authorization confirmation from an administrative authority registered in the blockchain, an authorization note is entered into the blockchain, with the entry containing the authorization note representing the authorization confirmation of the issuer's computer system. According to alternative embodiments, a valid authorization password is a prerequisite for a valid authorization request.In this case, for example, no additional authorization of the issuer computer system by an authorizing administrative authority is necessary, since the corresponding authorization is already available in the form of the authorization password.
[0086] According to embodiments, the authorization request includes the issuer's first public cryptographic key.
[0087] According to embodiments, the authorization request includes an authorization password. According to embodiments, checking the validity of the authorization request includes checking the validity of the authorization password.
[0088] Embodiments can have the advantage that the issuer, for example, is provided with an authorization password for authorization in the blockchain by an authorizing administrative authority of the blockchain or the program module or the issuer. With this authorization in the blockchain, the issuer can activate the authorization to store hash values using the program module. For example, the issuer is a school that wishes to authorize itself to store hash values of certificates. To do so, the school requests an authorization password from the authorizing administrative authority for authorization. This can be done, for example, in writing by mail, by email, or via a website. An electronic request can be cryptographically secured.Cryptographic security can be achieved, for example, by encryption with a symmetric cryptographic key and / or a public cryptographic key assigned to the recipient. According to embodiments, transmission occurs via a connection secured by end-to-end encryption. Furthermore, the transmission of the request can be secured using suitable transport encryption, such as HTTPS. For example, the school is authenticated based on the request. In the case of an electronic request, it can be signed, for example, with a seal, i.e., a private cryptographic signature key assigned to the school. Upon receipt of the request, the authorizing administrative authority sends the school the authorization password. For example, the transmission can be by mail.This can serve as an additional security measure, as the school's mailing address is publicly known and generally only changes when the school moves. Thus, it can be assumed with a high degree of certainty that the recipient of the mailed authorization password is indeed the school, even if the underlying request, for example, originates from an unauthorized third party impersonating the school. Alternatively, the authorization password can be sent electronically via a cryptographically secured communication connection as described above.
[0089] The authorization password can be a one-time password, or OTP, for example. An OTP is a one-time password that is only valid for one-time use.
[0090] Depending on the embodiment, the authorization request also includes an issuer ID. Upon successful verification of the authorization password, the issuer ID is entered into the second block of the blockchain along with the public cryptographic key. Embodiments can have the advantage that the identity of the issuer can be determined from the blockchain. Alternatively, the public cryptographic key or a blockchain address derived from the public cryptographic key can be used as the issuer ID.
[0091] An ID is an identifier, also known as a code, that includes a characteristic linked to a specific identity for the unique identification of a person or object, such as the issuer of the digital documents to which the identifier is assigned. An identifier can include numbers, letters, special characters, and combinations thereof. For example, the issuer ID can include the name of the issuer.
[0092] Depending on the embodiment, checking the authorization password includes: Comparing the received authorization password by the first blockchain server with an authorization password stored in the blockchain, if the received authorization password matches the stored authorization password, confirming the validity of the received authorization password by the first blockchain server.
[0093] Embodiments may have the advantage of providing an efficient method for determining the validity of an authorization password presented by an issuer for authorization. According to embodiments, the authorization password stored in the blockchain is generated by an administrative computer system of an authorizing administrative authority and stored in the blockchain.
[0094] According to embodiments, if the received authorization password matches the stored authorization password, a note is stored in a blockchain entry indicating that the corresponding stored authorization password has been used. This ensures that no further authorization is possible using the same authorization password. Thus, a one-time password can be implemented.
[0095] According to embodiments, the authorization password is provided in the form of a second hash value stored in the blockchain and signed. Comparing the received authorization password with the stored authorization password comprises: Checking the validity of the signature of the stored second hash value, calculating a third hash value of the received authorization password, comparing the calculated third hash value with the stored second hash value.
[0096] Embodiments may have the advantage that the authorization password cannot be derived from the second hash value. Thus, the authorization password can be kept secret, even if the blockchain entries, and in particular the second hash value, are publicly accessible. Furthermore, the signature can be used to verify whether the authorization password is provided by an authorized entity.
[0097] Depending on the embodiment, the authorization further includes: Sending a password request to obtain the authorization password by the issuer computer system to the administration computer system of the authorizing administration authority, wherein the password request identifies the issuer, wherein the method by the authorizing administrative authority using the administrative computer system further comprises: Receiving the password request, identifying a postal address associated with the issuer, creating a response letter addressed to the identified postal address, which includes the authorization password, sending the response letter by post.
[0098] Embodiments may have the advantage of implementing an efficient and secure method for providing the authorization password and thus for authorizing issuers. According to embodiments, the method further includes a validation check of the request. For example, it is checked whether the request originates from an institution, such as a university or school, that is actually authorized to issue corresponding documents, such as certificates.
[0099] Depending on the embodiment, the authorization further includes: Sending a password request to obtain the authorization password by the issuer computer system to the administration computer system of the authorizing administration authority, wherein the password request identifies the issuer, wherein the method by the authorizing administrative authority using the administrative computer system further comprises: Receiving the password request, creating a response to the password request that includes the authorization password, sending the response in cryptographically secured form to the issuer's computer system.
[0100] Embodiments may have the advantage of implementing an efficient and secure method for providing the authorization password and thus for authorizing issuers. According to embodiments, the method further includes a validation check of the request. For example, it is checked whether the request originates from an institution, such as a university or school, that is actually authorized to issue corresponding documents, such as certificates.
[0101] According to embodiments, the method for authorizing the issuer computer system further comprises providing the authorization password of the issuer computer system, wherein providing the authorization password comprises: Calculating a second hash value of the authorization password by the management computer system, Signing the second hash value with a third private cryptographic key of a third assigned asymmetric key pair of the authorizing management entity, Creating a provisioning request by the management computer system, wherein the provisioning request identifies the smart contract and includes the signed second hash value, Sending the provisioning request by the management computer system to a third blockchain server configured to generate blocks of the blockchain, Receiving the provisioning request by the third blockchain server, Executing third program instructions of the smart contract identified by the provisioning request by the third blockchain server,wherein executing the third program instructions comprises verifying the signature of the second hash value by the third blockchain server using a third public cryptographic key of the asymmetric key pair of the authorizing administrative entity, and, in the case of a valid signature, generating a third additional block of the blockchain by the third blockchain server, wherein the generated third block comprises a third entry with the signed second hash value.
[0102] Embodiments may have the advantage of providing an efficient and secure method for authorizing one or more issuers by providing one or more second hash values for one or more authorization passwords.
[0103] According to embodiments, the public cryptographic key of the authorizing administrative entity is stored in the blockchain, and the third blockchain server uses the public cryptographic key of the first administrative computer system stored in the blockchain to verify the signature of the second hash value. Embodiments may have the advantage that the public cryptographic key for verifying the validity of the signature of the second hash value is provided by the blockchain, thus enabling efficient verification.
[0104] According to some embodiments, an ID of the authorizing administrative authority is stored in the blockchain along with the authorizing administrative authority's public cryptographic key. Some embodiments may have the advantage that the identity of the authorizing administrative authority can be determined from the blockchain.
[0105] According to embodiments, the management computer system is the signature server.
[0106] According to embodiments, checking an authenticity of the digital document by a checking computer system comprises: Calculating the hash value of the received digital document by the verification computer system, querying the blockchain for an entry with the calculated hash value of the received digital document by the verification computer system, whereby the existence of an entry in the blockchain with the calculated hash value of the received digital document is a prerequisite for confirmation of the authenticity of the received digital document by the verification computer system.
[0107] Embodiments may have the advantage that the review computer system, which may be, for example, a review server, enables effective review of the digital document. For example, the review computer system provides a website via which the digital document can be analyzed for review and on which the review result is displayed.
[0108] Embodiments may have the advantage that the digital document can be efficiently verified for its authenticity. The verification computer system may, for example, be the user computer system of the document owner or another computer system to which the document is presented, for example, by the user computer system of the document owner.
[0109] Embodiments may have the advantage of providing a method that reliably enables the authenticity of digital documents and / or the document data they comprise by anyone who has access to the corresponding digital document. If the hash value of the digital document matches a hash value stored in the blockchain, it follows that the digital document is an authentic document. In particular, this also enables a machine-based, automated verification of the document data.
[0110] According to embodiments, checking the authenticity of the digital document by a verification computer system comprises: Verifying the first and / or second signature of the received digital document using the PKI for the second asymmetric key pair of the signature server, wherein a successful verification of the first and / or second signature is a prerequisite for confirmation of the authenticity of the received digital document by the verification computer system.
[0111] Embodiments may have the advantage of providing a method that reliably enables the authenticity of digital documents and / or the document data they comprise by anyone who has access to the corresponding digital document. If the signature of the document or the document data is valid, it follows that the digital document is an authentic document. In particular, this also enables a machine-based, automated verification of the document data.
[0112] According to embodiments, the method further comprises, in the event that all requirements for confirming the authenticity of the received digital document are met, confirming the authenticity of the received digital document by the verification computer system.
[0113] Embodiments further include an issuer computer system for issuing a digital document. The issuer computer system comprises a processor, a communication interface for communication over a network, and a memory. Program instructions of the issuer computer system are stored in the memory. A first private cryptographic key of a first asymmetric key pair of the issuer computer system is stored in a protected memory area of the memory. The digital document is issued using a blockchain, to which a smart contract with first program instructions is assigned. By executing the first program instructions, entries associated with the smart contract are generated in the blockchain.
[0114] Execution of the program instructions of the issuer computer system by the processor controls the issuer computer system to perform a method comprising:Creating a first data set with document data for the digital document in a machine-readable format by the issuer computer system, Sending the first data set by the issuer computer system using the communication interface over a network to a central signature server of a signer of the digital document, Receiving a first hash value of the digital document from the signature server over the network by the issuer computer system using the communication interface, wherein the digital document comprises the first data set signed with a first signature created using a PKI-secured signature key of the signature server, wherein the digital document further comprises a second data set with the document data in a page description language format,wherein the second data record is signed with a second signature created using the signature key, , Creating an entry request signed with the issuer's private cryptographic key by the issuer computer system, wherein the entry request identifies the smart contract and includes the first hash value of the digital document, sending the signed entry request by the issuer computer system using the communication interface over the network to a first blockchain server for entering the first hash value of the digital document into the blockchain using the smart contract, upon entering the first hash value into the blockchain, receiving the digital document from the signature server over the network by the issuer computer system using the communication interface.
[0115] According to embodiments, the issuer computer system is configured to execute each of the method steps of the issuer computer system according to one of the previously described embodiments of the method for issuing the digital document.
[0116] Embodiments further include a signature server for signing a digital document. The signature server comprises a processor, a communication interface for communication via a network, and a memory. Program instructions of the signature server are stored in the memory. A second private cryptographic key of a second asymmetric key pair of the signature server is stored as the signature key in a protected memory area of the memory.
[0117] Execution of the signature server's program instructions by the processor executes a method on the signature server, which includes: Receiving a first data set with document data for the digital document in a machine-readable format by the signature server using the communication interface over a network from an issuer computer system of an issuer of the digital document, Creating a first and a second signature of the digital document by the signature server using the signature key secured via the PKI, wherein the first data set of the digital document is signed with the first signature, wherein a second data set of the digital document with the document data in a page description language format, the digital document is signed with the second signature, Calculating a first hash value of the digital document, Sending the first hash value by the signature server using the communication interface over the network to the issuer computer system for entry in the blockchain,Upon entering the first hash value into the blockchain, the signature server sends the digital document to the issuing computer system via the network using the communication interface.
[0118] According to embodiments, the signature server is configured to execute each of the method steps of the signature server according to one of the previously described embodiments of the method for issuing the digital document.
[0119] According to embodiments, the signature server receives the second data set together with the first data set from the issuer computer system, or execution of the program instructions of the signature server by the processor further controls the signature server to create the second data set using the received first data set.
[0120] According to embodiments, the second signature signs the second data set together with the signed first data set.
[0121] Embodiments further include a system for issuing a digital document. The system includes an issuer computer system according to one of the previously described embodiments, which is configured to execute the method steps of the issuer computer system according to one of the previously described embodiments of the method for issuing the digital document, and a signature server according to one of the previously described embodiments, which is configured to execute the method steps of the signature server according to one of the previously described embodiments of the method for issuing the digital document.
[0122] According to embodiments, the system further comprises one or more blockchain servers configured to execute the method steps of the one or more blockchain servers according to one of the previously described embodiments of the method.
[0123] According to embodiments, the system further comprises a management computer system assigned to an authorizing management instance, which is configured to execute the method steps of the management computer system according to one of the previously described embodiments of the method. According to embodiments, the system provides the management instance with access to a service with which the management instance can authorize subordinate instances. This authorization is signed with the private key of the management instance.
[0124] According to embodiments, the system further comprises a test computer system configured to carry out the method steps according to one of the previously described embodiments of the method.
[0125] The use of ordinal numbers such as first, second, third, etc. serves here, unless the specific context clearly indicates otherwise, solely to distinguish different elements from one another and is not intended to imply a particular order.
[0126] The aforementioned blockchain servers, i.e. the first to third blockchain servers, may, depending on the embodiments, be all or part of one and the same or different blockchain servers.
[0127] Embodiments of the invention will be explained in more detail below with reference to the drawings. They show: Figures 1 schematic block diagram of an embodiment of an exemplary system for issuing a digital document, Figures 2 schematic block diagrams of embodiments of exemplary digital documents, Figure 3 schematic block diagram of an embodiment of an exemplary system for issuing a digital document, Figure 4 schematic block diagram of an embodiment of an exemplary system for issuing a digital document, Figure 5 schematic block diagram of an embodiment of an exemplary system for verifying a digital document, Figure 6 schematic block diagram of an embodiment of exemplary blockchain entries for issuing a digital document, Figure 7 a schematic UML diagram of an embodiment of an exemplary method for issuing a digital document,Figure 8 shows a schematic flow diagram of an embodiment of an exemplary method for issuing a digital document. Figure 9 shows a schematic flow diagram of an embodiment of an exemplary method for providing a digital document. Figure 10 shows a schematic flow diagram of an embodiment of an exemplary method for storing a digital document. Figure 11 shows a schematic flow diagram of an embodiment of an exemplary method for authorizing an issuer of a digital document. Figure 12 shows a schematic flow diagram of another embodiment of an exemplary method for authorizing an issuer of a digital document. Figure 13 shows a schematic flow diagram of an embodiment of an exemplary method for providing an authorization password.Figure 14 is a schematic flow diagram of an embodiment of an exemplary method for verifying a digital document, and Figure 15 is a schematic flow diagram of an embodiment of an exemplary method for signing a digital document.
[0128] Elements of the following embodiments that correspond to one another are identified by the same reference numerals.
[0129] Figures 1A and 1Bshow a block diagram of a first embodiment of an exemplary system for issuing a digital document 210. The digital document 210 is, for example, a digital certificate, and the issuer of the digital document 210 is, for example, a school or college. For example, an issuer computer system 200 of the issuer, upon executing program instructions 214, creates a first record of document data 209 for the digital document 210 in a machine-readable format. This document data 209 can be stored in a memory 202 of the issuer computer system 200. The program instructions 214 are executed by a processor 212 of the issuer computer system 200. Furthermore, the memory 202 of the issuer computer system 200 includes a protected storage area 204 with a private cryptographic key 206 of an asymmetric key pair.The private cryptographic key 206 is used to sign entry requests for entering a hash value 104 of the document 210 into the blockchain 110. For example, the asymmetric key pair is assigned to a blockchain address of the issuer. For example, the issuer's blockchain address is derived from a public cryptographic key 208 of the asymmetric key pair, which is also stored in memory 202. A signature with the private cryptographic key 206 serves, for example, as an authorization credential for the issuer computer 200 to initiate an entry in the blockchain, for example, from the issuer's blockchain address. Furthermore, the issuer computer system 200 includes a communication interface for communication via the network 160. The network 160 is, for example, the Internet.In addition to or as an alternative to a signature with a private cryptographic key of the sender, communication via network 160 can be cryptographically secured, for example, by encrypting the transmitted data with a symmetric cryptographic key and / or a public cryptographic key assigned to the recipient. For example, a symmetric key calculated using the pseudorandom number is used. The distribution of the symmetric cryptographic key can be secured, for example, in the form of a hybrid encryption scheme using an asymmetric key pair. Hybrid encryption comprises a combination of asymmetric encryption and symmetric encryption. The sender selects a random symmetric key, for example, a pseudorandom number, called a session key.This session key is used to symmetrically encrypt the data to be protected. The session key is then asymmetrically encrypted using the recipient's public key. This approach can combine the advantage of secure key distribution using asymmetric keys with the speed advantage of symmetric encryption. According to some embodiments, transmission occurs via a connection secured by end-to-end encryption. Furthermore, the transmission can be secured, for example, using suitable transport encryption, such as HTTPS.
[0130] Execution of the program instructions 214 by the processor 212 causes the issuer computer system 200 to send, for example, a signature request with the first data set containing the document data 209 in the machine-readable format to a signature server 300. In response to sending the signature request, the issuer computer system 200 receives, for example, a hash value 104 of the digital document 210 from the signature server 300. In addition to the first data set signed using a signature key 306 of the signature server 300, the digital document 210 includes a second data set containing the document data in a page description language format. This second data set is signed with a second signature created using the signature key 306. The second data set can, for example, be created by the issuer computer system 200 and sent together with the first data set to the signature server 300 for signing.Alternatively, the second data set can be created by the signature server 300 upon receipt of the signature request using the first data set. For this purpose, the signature server 300 includes, for example, a layout scheme that defines the layout of the issuer's documents. Upon entry of the hash value 104 into the blockchain 110, the issuer computer system 200 further receives the digital document 210 with the two signatures of the signature server 300 from the signature server 300.
[0131] Furthermore, the issuer computer system 200 can, for example, include an access code 211 for enabling access to the digital document 210 via a download server 700. The access code 211 can include a random number. Furthermore, the access code 211 can additionally be assigned a validity period and / or a maximum number of uses as proof of authorization for the user to download the digital document 210 from the download server 700. The access code 211 is generated, for example, by the issuer computer system 200 or made available by the download server 700 and the issuer computer system 200 via the network 160. The issuer computer system 200 can make the access code 211 available to a user computer system, for example upon request, via the network 160.
[0132] Finally, the issuer computer system 200 may include, for example, in the protected storage area 204, a cryptographic key 207, for example, a symmetric cryptographic key, for encrypting the digital document 210. The encrypted digital document 210 may be stored, for example, in a storage system 220 that provides permanent storage for storing digital documents. The storage system 220 may be included in the issuer computer system 200 or accessible to the issuer computer system 200 via the network 160 using the communication interface 216.
[0133] The issuer computer system 200 sends the hash value 104 of the digital document 210 via the network 160 to one of the blockchain servers 100, 130 of the blockchain network 170. To calculate the hash value, the issuer computer system 200 can, for example, use its own hash algorithm, which the program instructions 214 include. According to embodiments, the blockchain network 170 includes a blockchain server 100; according to further embodiments, the blockchain network 170 includes a plurality of blockchain servers 100, 130. According to embodiments, the network 160 includes the blockchain network 170.
[0134] The blockchain server 100 includes the blockchain 110 in its memory 108. The blockchain 110 includes a plurality of blocks 112, 116. According to embodiments, the blocks 112, 116 each include a time specification indicating the time of creation of the corresponding block 112, 116. For example, the time specification includes a date and a time. According to embodiments, the blocks 112, 116 each include one or more entries 114, 118. The entries 114, 118 each include, for example, a blockchain address that identifies the entry in the blockchain. The entries 114, 118 can furthermore be structured, for example, as transactions and each specify an input address (In) and a target address (Out) of the corresponding transaction. The entry 118 can furthermore include a smart contract SC 148 with program instructions.By executing these program instructions of the smart contract, entries 114 assigned to the program module 148 are created in the blockchain 110, or corresponding entries 114 are retrieved and evaluated. According to embodiments, the smart contract 148 can also be stored distributed across multiple entries 118 and / or provided in addition to the blockchain, wherein a hash value of the smart contract 148 is stored in block 108. By executing the program instructions of the smart contract 148 by the processor 102, for example, the hash 104 of the certificate 210 is stored in the entry 114 of the blockchain 110. By executing the program instructions, the issuing computer system 200 can also be authorized in the blockchain by an administrative computer system 600 of an administrative authority, such as a school authority or an association.Authorization includes, for example, creating an entry in the blockchain using a public cryptographic key of an asymmetric key pair assigned to the corresponding computer system 200. Furthermore, by executing the program instructions, authorization passwords for the corresponding authorizations can be stored in the blockchain. Finally, the authenticity of a digital document 210 can be verified by comparing a hash value calculated for the document 210 with the hash value 104 stored in the blockchain. If there is a match, the certificate 210 is, for example, authentic.
[0135] The blockchain server 100 further includes program instructions 106, which, for example, control communication via a communication interface 120 via the network 160 and / or the blockchain network 170. Furthermore, the program instructions 106 control, for example, the storage and retrieval of the blockchain 110. Furthermore, the blockchain server 100 includes, for example, an asymmetric key pair and / or a symmetric key (not shown) for signing data and / or encrypting data.
[0136] The additional blockchain servers 130 of the blockchain network 170 also include processors 132, memory 138 with the blockchain and the program module 148, and communication interfaces 150. Furthermore, the blockchain servers 130 each include, for example, an asymmetric key pair and / or a symmetric key (not shown) for signing data and / or encrypting data.
[0137] The signature server 300 includes a private cryptographic key 306 of an asymmetric key pair, which is stored in a protected memory area 304 of a memory 302 of the signature server 300. This private cryptographic key 306 serves as a signature key for creating the signed digital document 210. Furthermore, the signature server 300 includes, for example, a PKI certificate 308 with a public cryptographic key of the asymmetric key pair of the signature server 300. The public cryptographic key and thus the asymmetric key pair of the signature server 300 are secured by means of a PKI via the PKI certificate 308. For communication via the network 160, the signature server 300 includes a communication interface 316. Furthermore, the signature server 300 includes, for example, an asymmetric key pair and / or a symmetric key (not shown) for encrypting data.A processor 312 of the computer system 300 is configured, for example, to execute program instructions 314. Executing the program instructions 314 controls, for example, receiving and processing data from the issuer computer system 200. The signature server 300 receives from the issuer computer system 200 at least a first data set containing the document data 209 in a machine-readable format. Furthermore, the signature server 300 can receive a second data set from the issuer computer system 200 containing the document data in a page description language format. Alternatively, the signature server 300 can create the second data set using the received first data set. Executing the program instructions 314 further controls, for example, the creation of two signatures of the first and second data sets by the signature server 300 using the signature key 306.The signature server calculates the hash value 104 of the digital document 210 resulting from the signing of the data records. Furthermore, the signature server sends the digital document 210 to the issuer computer system 200 upon entry of the hash value 104 into the blockchain 110.
[0138] The system may further comprise a user computer system 400. The user computer system 400 is, for example, a computer system of an owner of the document 210 or of another recipient of the document 210. The digital document 210 can be sent to the user computer system 300, for example, from the issuer computer system 200 via the network 160, or the user computer system 300 can be provided with the access code 211, which authorizes the user computer system 300 to download the digital document 210 from a download server 700. Alternatively, the digital document 210 can also be sent to the user computer system 300 from another computer system or, for example, provided on a portable storage medium, such as a USB stick. A processor 312 of the computer system 300 is configured, for example, to execute program instructions 314.Executing the program instructions 314 controls, for example, the receiving or downloading of the digital document 210. The user computer system 400 stores the received document 210, for example, in its memory 402. For communication via the network 160, the user computer system 400 includes a communication interface 416. Furthermore, the user computer system 400 includes, for example, an asymmetric key pair and / or a symmetric key (not shown) for signing data and / or encrypting data.
[0139] The download server 700 is configured, for example, to provide documents, such as the digital document 210, for download. The download server 700 can be provided by the issuer computer system 200 or in the form of a standalone server. As a standalone server, the download server 700 comprises, for example, a processor 712 configured to execute program instructions 714. Execution of the program instructions 714 controls, for example, provision of the digital document 210 by the download server 700 during a download process. For example, the digital document 210 is provided to the download server 700, for example via the network 160, and stored by the download server 700 in the memory 702. For communication via the network 160, for example during a download process, the download server 700 comprises a communication interface 716.Furthermore, the download server 700 includes, for example, an asymmetric key pair and / or a symmetric key (not shown) for signing data and / or encrypting data. During a download process, the download server 700 checks, for example, whether the computer system requesting the download of the digital document 210 can present a valid access code 211 for accessing the digital document 210.
[0140] For example, a verification server 600 can be used to verify the digital document 210. The digital document 210 is sent to the verification server 600 via the network 160, for example, from the user computer system or another computer system that has access to the digital document 210 and wishes to verify it. A processor 612 of the verification server 600 is configured, for example, to execute program instructions 614. Execution of the program instructions 614 controls, for example, a verification of the received document 210 by the verification server 600. The verification server 600 stores the received document 210, for example, in its memory 602. For communication via the network 160, the verification server 600 comprises a communication interface 616. Furthermore, the verification server 600 comprises, for example, an asymmetric key pair and / or a symmetric key (not shown) for signing data and / or encrypting data.
[0141] By executing the program instructions 614, a hash value of the document 210 can be calculated and compared with the hash value 104 stored in the blockchain 110, or a corresponding comparison request can be sent to one of the blockchain servers 100, 130. If both hash values match, the received digital document 210 is an authentic document. To calculate the hash value, the program instructions 614 of the verification server 600 can, for example, include a hash algorithm. The result of the verification is communicated to the computer system requesting the verification, for example, via the network 160.
[0142] According to alternative embodiments, the verification function of the verification server 600 can also be executed directly by other computer systems, such as the user computer system 400, wherein the hash value of the document 210 is calculated by the corresponding computer system and compared with the hash value 104 stored in the blockchain 110 or a corresponding comparison request is sent to one of the blockchain servers 100, 130.
[0143] Furthermore, the system can comprise an administrative computer system 500 of an administrative authority, such as a school authority or an association. For example, issuer data 510 of the issuer, such as its name and address, are stored in a memory 502 of the administrative computer system 500 with the issuer computer system 200. Furthermore, the memory 502 comprises a public cryptographic key 508 of an asymmetric key pair of the administrative authority. Furthermore, the administrative computer system 500 can store a private cryptographic key 504 of the asymmetric key pair in a protected memory area 504. A processor 512 of the administrative computer system 500 is configured to execute program instructions 514. Executing the program instructions 514, for example, authorizes the issuer computer system 200 in an entry of the blockchain 110.For example, upon receiving an authorization request from the issuer computer system 200 with the public cryptographic key 208, the management computer system 500 creates an entry request for entering an authorization or an authorization confirmation with the public cryptographic key 208 to authorize the issuer computer system 200 in the blockchain 110. The private cryptographic key 504 can be used, for example, to sign the entry request, wherein the resulting signature can be verified with the public cryptographic key 508. Furthermore, the corresponding entry request is sent from the issuer computer system 200, for example, via the network 160, to one of the blockchain servers 100, 130.The receiving blockchain server 100, 130 checks the validity of the entry request, for example, the signature is verified with the public cryptographic key 508 as the signature verification key, and upon successful verification, enters the authorization confirmation with the public cryptographic key 208 to authorize the issuer computer system 200 in the blockchain 110. Alternatively, by executing the program instructions 514, for example, an authorization password for authorizing the issuer computer system 200 can be provided in an entry in the blockchain 110. The private cryptographic key 504 can, for example, be used to sign the authorization password, wherein the resulting signature can be verified with the public cryptographic key 508. Furthermore, the corresponding authorization password is provided to the issuer computer system 200 for authorization.This can be done, for example, via network 160 or via alternative transmission channels, such as mail. Finally, management computer system 500 includes a communication interface 516 for communication via network 160. Furthermore, verification server 500 includes, for example, an additional asymmetric key pair and / or an additional symmetric key (not shown) for signing data and / or encrypting data.
[0144] Figures 2A and 2B show block diagrams of embodiments of exemplary digital documents 210. A first embodiment of the document 210 in Figure 2Acomprises a first data set 248 with document data in a machine-readable format, for example, XML or JSON. The machine-readable document data is signed with a first signature 250 of a signature key of a signature server. Furthermore, the document 210 comprises a second data set 252 with document data in a page description language format, for example, PDF, PS, or DVI. The signed machine-readable document data together with the document data in the page description language are signed, for example, with a second signature 254 of the signature key of the signature server. Thus, the digital document 210 as a whole is signed with the second signature 254, and the machine-readable document data is additionally signed with the first signature 250.This enables both a signature verification of the machine-readable document data alone in the case of machine-based processing of the corresponding document data, as well as a signature verification of the digital document 210 when the document data is displayed on an output device, such as a screen, according to the layout defined by the page description language. Depending on the embodiment, the first data set can be attached to the second data set 252 or embedded in it. A hash value 104 is calculated from the entire digital document 210 with both document data sets 248, 252 and both signatures 250, 254 and stored in the blockchain.
[0145] A second embodiment of document 210 in Figure 2Bcomprises the first data set 248 with document data in the machine-readable format, for example, XML or JSON. The machine-readable document data is signed with the first signature 250 of the signature key of the signature server. Furthermore, the document 210 comprises the second data set 252 with document data in a page description language format, for example, PDF, PS, or DVI. The document data in the page description language is signed, for example, with the second signature 254 of the signature key of the signature server. Thus, the document data in the page description language is signed with the second signature 254, while the machine-readable document data is signed with the first signature 250.This enables both a signature verification of the machine-readable document data alone in the case of machine-based processing of the corresponding document data, as well as a signature verification of the digital document when the document data is displayed on an output device, such as a screen, according to a layout defined by the page description language. In this embodiment, the first data set 248 is appended to the second data set 252. A hash value 104 is calculated from the entire digital document 210, including both document data sets 248, 252 and both signatures 250, 254, and stored in the blockchain.
[0146] Figure 3shows a schematic block diagram of an embodiment of an exemplary system for issuing a digital document. The issuer computer system 200 creates at least a first data set with document data in a machine-readable format, and according to embodiments, additionally a second data set with the document data in a page description language format. The data sets are transmitted to a signature server 300 via the network 160 for signing and thus creating the signed digital document. This can be done, for example, directly or via a corresponding backend. The signature server 300 uses, for example, a private cryptographic key of an asymmetric key pair as the signature key, the authenticity of which is secured by means of a PKI certificate, such as an X.509.Furthermore, the signed document can be made available for download via a download portal provided by a download server 700. For this purpose, the signed document can be sent from the issuer computer system to the download server, for example, directly or via a corresponding backend. Communication between the issuer computer system 200 and the backend can, for example, use messages compliant with the REST (Representational State Transfer) paradigm. Furthermore, the signed document can be permanently stored, for example in encrypted form, in a storage system 220. The storage of the signed document in the storage system 220 via the network 160 can, for example, occur directly or via a corresponding backend.Finally, a hash value of the signed document, which the issuer computer system 200 receives from the signature server 300, can be sent by the issuer computer system 200 to a blockchain 110 for registration. This is done, for example, using a signed registration request.
[0147] Figure 4 shows a block diagram of a system for issuing a digital document 210. The system components or participants shown, ie issuer computer system 200, blockchain server 100, user computer system 300 and verification server 600, are analogous to the corresponding system components or participants from Figures 1A and 1B configured. Figure 4illustrates the communication between the system components or participants in more detail. The issuing computer system 200, in cooperation with a signature server, generates a digital document 210, for example, a certificate. A hash value 104 is calculated for the generated document 210. The calculated hash value 104 is transmitted to the blockchain server 100, which enters it into an entry 114 of an additional block 112 of the blockchain 110.
[0148] The digital document 210 is provided by the issuer computer system 200 to the user computer system 300, which may be, for example, a computer system of a document holder. The provision can be effected, for example, directly by sending the digital document 210 from the issuer computer system 200 over a network to the user computer system 300, by transferring it to a portable physical storage medium, or indirectly by making the digital document 210 available on a download server for download by the user computer system 300 over a network. To verify the authenticity of the document 210, a computer system in possession of the digital document 210, for example, the user computer system 300, forwards the digital document 210 to a verification server 600.For example, the verification server 600 provides a web page for uploading the digital document 210 to be verified, which the computer system can access using a browser. To verify the authenticity of the digital document 210, the verification server 600 uses a hash algorithm 119 to calculate the hash value 104 of the digital document 210 and compares it with the hash value stored in the entry 114 of the blockchain 110. If the two hash values match, the submitted certificate 210 is an authentic document.
[0149] Figure 5shows a schematic block diagram of an embodiment of an exemplary system for verifying a digital document. To verify the authenticity of the document, a computer system that wishes to have the authenticity verified forwards the digital document to a verification server. This can be done, for example, directly over a network, such as using REST-based machine-to-machine communication. For example, the issuer computer system 200 can initiate a verification of the digital document using a REST request and transmit the digital document to the verification server 600. Alternatively or additionally, a browser-based verification can be implemented. For example, the verification server 600 or a web server 601 connected to the verification server 600 provides a web page for uploading the digital document to be verified for this purpose.Communication between verification server 600 and web server 601 can, for example, be REST-based. The website can be accessed via a browser 415, for example using HTML and / or JavaScript, from any computer system that wishes to have the digital document verified and has a corresponding browser with a network connection. To verify the authenticity of the digital document, verification server 600 uses a hash algorithm to calculate the hash value of the digital document and compares this hash value with the hash value stored in the entry of blockchain 110. To do this, verification server 600 sends, for example, a corresponding request to a blockchain server. An unsigned message can be used for this purpose, for example, if no personal or content-related data relating to the digital document is exchanged during the existence check of the hash value. Do the two match?
[0150] If the hash values match, the submitted certificate 210 is an authentic document.
[0151] Figure 6shows exemplary blockchain entries for issuing and verifying digital documents. For example, a blockchain entry includes a smart contract 148 "Contract Certificate." The following explains the issuing and verification of a digital document using the example of a digital certificate. However, the procedure explained can easily be applied to other types of digital documents. For example, the smart contract 148 defines a number of program instructions.These program instructions include, for example, a createSchool() program instruction for initializing an authorization for an issuer, such as School A; a createSchool() program instruction for authorizing the school's authorization by an authorizing administrative authority, such as School Authority B; a createCert() program instruction for issuing digital documents, such as certificates X and Y; and a verifyCert() program instruction for verifying the authenticity of issued documents. For example, School Authority B is authorized in a blockchain entry 172: "Address: 0x22222; City: XXX; Name: Authority B." Using the address "0x22222," which is assigned to School Authority B, executing the createSchool() program instruction can create a blockchain entry 174 for School A: "Address: 0x111111; City: YYY; Name: School A; Authorized: 0x222222."Through this authorization, the address "0x111111" is assigned to the school. Using this address "0x111111," and executing the program instruction registerCert(), blockchain entries 176 and 178 can be generated for issuing digital documents or for entering the hash values of the corresponding digital documents into the blockchain. These blockchain entries 176 and 178 are assigned to the corresponding certificates X and Y and define their properties: "Hash: 123456; Author: 0x111111; Date: 15.7.2019; Revoked: no" and "Hash: 123456; Author: 0x111111; Date: 15.7.2019; Revoked: no" respectively. For example, the issuer of a digital document can also enter revocation notes in the blockchain, the entry of which effectively revokes the corresponding digital document.
[0152] Figure 7shows a UML diagram of an embodiment of an exemplary method for issuing a digital document 210. In step 800, in response to an authorization request from the issuing computer system 200, e.g., School A, a blockchain entry with the issuer's data is created using a corresponding program instruction of the smart contract "createSchool(School A)". In step 802, the entry of the issuer in the blockchain 110 is authorized by an administrative computer system 500 of an authorizing administrative authority, e.g., Authority B. For this purpose, in response to an authorization confirmation from the administrative computer system 500, an authorization note for authorizing the school is entered into the blockchain 110 using a corresponding program instruction of the smart contract "authorizeSchool(School A)".In step 804, the issuer computer system 200, now authorized to issue digital documents, such as certificates, can create a signed digital document using a signature server, calculate its hash value "Hash 1," and have the calculated hash value entered into the blockchain 110 using a corresponding program instruction of the smart contract "registerCert(Hash 1)." The signed digital document, for example, a certificate, can be transmitted from the issuer computer system 200 to a user computer system 400 in step 806. The user computer system 400 can calculate a hash value "Hash 1" of the received digital document and, using a corresponding program instruction of the smart contract "verifyCert(Hash 1)," check or have checked whether the hash value of the received digital document is entered into the blockchain 110 and whether the document is therefore authentic or not.Alternatively, the hash value calculation and initiation of the query of the blockchain 110 can also be carried out via a verification server.
[0153] Figure 8shows a flowchart of one embodiment of an exemplary method for issuing a digital document. In block 900, an issuer computer system creates a first data record with document data for the digital document in a machine-readable format. In block 902, the issuer computer system sends the first data record to a signature server over a network. For example, the first data record is sent to the signature server with a signature request. In block 904, in response to the sending of the first data record in block 902, the issuer computer system receives a hash value of the digital document from the signature server over the network. The digital document includes, in addition to the first data record signed with a first signature created using the signature key, a second data record with the document data in a page description language format.The second data record is signed with a second signature created using the signature key. For example, the second signature also includes the signed first data record. The signature server generates the first and second signatures using its signature key. According to embodiments, the issuer computer system creates the second data record and sends it, together with the first data record, to the signature server for signing. According to alternative embodiments, the signature server creates the second data record using the first data record and a template stored with the signature server for a layout of the document in the page description language. In block 906, the issuer computer system creates an entry request signed with the issuer's private cryptographic key. According to embodiments, the entry request identifies a smart contract.Furthermore, the registration request includes a hash value of the digital document. In block 908, the signed registration request is sent by the issuer computer system over the network to a blockchain server of a blockchain network for entering the hash value of the digital document into the blockchain using the smart contract. In block 910, the blockchain server of a blockchain network receives the registration request, verifies its signature, and, if the signature verification is successful, enters the hash value into the blockchain in block 912. According to embodiments, a public cryptographic key for verifying the signature of the registration request is provided by the blockchain.According to embodiments, the entry in the blockchain comprises, in addition to the hash value of the digital document, one or more of the following information: an identifier of the issuer, for example in the form of a blockchain address of the issuer, a timestamp with the date and / or time of the entry. In order to revoke or revoke a certificate whose hash value has been entered into the blockchain, a revocation note can be entered into the blockchain by a blockchain server of the blockchain network using the smart contract, for example in response to a signed request from the issuer's computer system. According to embodiments, the entry in the blockchain comprises, in addition to the revocation note and the hash value of the digital document, one or more of the following information: an identifier of the issuer, for example in the form of a blockchain address of the issuer, a timestamp with the date and / or time of the entry.In block 914, the issuer computer system receives the digital document with the signatures from the signature server upon entering the hash value into the blockchain. For example, the issuer computer system first receives an entry confirmation from one of the blockchain servers and then sends an entry notification to the signature server. The signature server can, for example, verify this entry notification and, upon successful verification, send the digital document with the signatures to the issuer computer system.
[0154] Figure 9shows a flowchart of an embodiment of an exemplary method for providing a digital document. In block 920, a copy of the digital document is created. In block 922, this copy is made available for downloading, for example, on a download server. According to embodiments, the issuer computer system sends the digital document for this purpose to a corresponding download server, which, for example, provides a website from which the digital document can be downloaded. In block 924, the issuer computer system, for example, creates an access code that enables access to the digital document made available for download. According to alternative embodiments, the access code is created by the download server and made available to the issuer computer system.For example, a validity period and / or a maximum number of uses is assigned to the access code as proof of authorization to download the digital document. In block 926, the access code is sent from the issuer computer system to a user computer system. This can be done, for example, via a cryptographically secured communication connection, such as an end-to-end encrypted one. In block 928, the user computer system receives the access code and uses it to download the digital document from the download server in block 929.
[0155] Figure 10shows a flowchart of one embodiment of an exemplary method for permanently storing a digital document. In block 930, the digital document is encrypted by the issuer computer system using a cryptographic key, for example, a symmetric cryptographic key. In block 932, the encrypted document is sent to a storage system. In block 934, the storage system receives the encrypted document and stores it in block 936. According to embodiments, in block 930, a copy of the cryptographic key used to encrypt the document is also encrypted using the public key of the issuer's asymmetric key pair.The thus encrypted copy of the cryptographic key is sent, for example, in block 932, together with the encrypted document to the storage system, received by the storage system in block 934, and stored together with the encrypted document in block 936. According to embodiments, in block 930, a copy of the cryptographic key used to encrypt the document is also encrypted using the public key of the asymmetric key pair of an administrative entity. The thus encrypted copy of the cryptographic key is sent, for example, in block 932, together with the encrypted document to the storage system, received by the storage system in block 934, and stored together with the encrypted document in block 936.
[0156] Figure 11shows a flowchart of one embodiment of an exemplary method for authorizing an issuer of a digital document to enter a hash value of the digital document into the blockchain. In block 940, the issuer's issuer computer system creates an authorization request to an authorizing administrative authority, e.g., a school board in the case of an authorization request from a school as the issuer. The authorization request includes the issuer's public cryptographic key. In block 942, the created authorization request is sent over the network to a management computer system of an authorizing administrative authority. In block 944, the management computer system of the authorizing administrative authority receives the authorization request and, in block 946, in response to receiving the authorization request, creates an entry request for entering the authorization.an authorization confirmation from the issuer into the blockchain. The entry request identifies a smart contract to be used for the entry and includes the received public cryptographic key of the issuer. Furthermore, creating the entry request includes signing the entry request by the management computer system with a private cryptographic key of an asymmetric key pair of the management computer system. In block 948, the entry request is sent from the issuer computer system over the network to a blockchain server configured to generate blocks of the blockchain. In block 950, the blockchain server receives the entry request and checks its validity in block 952. For this purpose, for example, program instructions of the smart contract identified by the entry request are executed by the blockchain server.According to embodiments, checking the validity of the registration request in block 952 comprises checking the signature of the authorizing administrative entity with a public cryptographic key of the asymmetric key pair of the administrative computer system. According to embodiments, the public cryptographic key of the administrative system is provided, for example, in the blockchain and / or in the smart contract. In block 954, in the case of a valid registration request, an additional block with an authorization confirmation for authorizing the issuer's public cryptographic key for the blockchain is generated and added to the blockchain.
[0157] Figure 12shows a flowchart of an embodiment of an exemplary method for authorizing an issuer of a digital document to enter a hash value of the digital document into the blockchain. In block 960, an authorization request from the issuer is created for a blockchain server. In block 962, the authorization request is sent to the blockchain server. In block 964, the blockchain server receives the authorization request and checks the validity of the authorization request, for example, using a smart contract identified by the authorization request. For example, the issuer can prove its authorization using an authorization password. The authorization request is valid, for example, if the authorization password is valid. Upon a valid authorization request, the issuer is authorized in the blockchain using the smart contract in block 966.For example, a public cryptographic key of the issuer is stored in the blockchain. The public cryptographic key is provided to the blockchain server, for example, with the authorization request. According to an alternative embodiment, the authorization in block 966 initially comprises an entry of the issuer in the blockchain. In addition, authorization of the authorization is requested by an administrative computer system of an authorizing administrative authority. Upon receipt of an authorization confirmation, a corresponding authorization note is entered into the blockchain, thus completing the authorization.
[0158] Figure 13shows a flowchart of an embodiment of an exemplary method for providing an authorization password. In block 970, an authorization password is calculated by an authorizing administrative authority responsible for or assigned to the issuer, or a provider of the blockchain or smart contract. In block 971, a hash value of the authorization password is calculated. In block 972, the hash value is encrypted with a private cryptographic key of the authorizing administrative authority or provider. In block 973, a provision request for providing the authorization password is created and sent to a blockchain server in block 974. The blockchain server receives the provision request in block 975 and, if the provision request is valid, stores the authorization password in a blockchain entry in block 976 using the smart contract.The provisioning request is valid, for example, if the authorizing administrative authority or the provider is registered by the smart contract, i.e. a blockchain entry associated with the smart contract includes a public cryptographic key of the authorizing administrative authority or the provider, and the provisioning request includes a signature with a private cryptographic key associated with the public cryptographic key.
[0159] Figure 14shows a flowchart of an embodiment of an exemplary method for authenticating a digital document. To verify the validity of the presented document, a verification request for verifying the digital document is sent from a requesting computer system to a verification server in block 980. For example, the document to be verified is sent together with the verification request. For example, the document to be verified is uploaded to the verification server for verification using a website provided by the verification server for verifying digital documents. In block 986, the test question and the digital document to be verified are received by the verification server. The verification server calculates the hash value of the digital document to be verified and checks in block 988 whether the corresponding hash value is entered in the blockchain. If the verification server itself has access to the blockchain, it can perform this check itself.Alternatively, the verification server sends the hash value to a blockchain server with access to the blockchain for verification and receives in response an indication as to whether the hash value is entered in the blockchain. According to embodiments, the verification additionally includes checking whether a revocation note for the digital document is stored in the blockchain and the corresponding document is therefore no longer valid. Based on the verification results, a response to the verification request is created by the verification server in block 990 and sent to the requesting computer system in block 992. The requesting computer system receives the response in block 994. If the document is entered and, for example, not revoked, the response informs the requesting computer system of this fact.
[0160] Figure 15shows a flowchart of an embodiment of an exemplary method for signing a digital document by a signature server. In block 1000, the signature server receives a first data record containing document data for the digital document in a machine-readable format from an issuer computer system. In block 1002, the signature server creates a first signature of the first data record of the digital document using a PKI-secured signature key of the signature server. The signature key is, for example, a private cryptographic key of an asymmetric key pair of the signature server. In block 1002, the signature server creates a second signature of a second data record of the digital document using the PKI-secured signature key of the signature server.The second data record of the digital document comprises the document data of the digital document in a page description language format. For example, the signature server receives the second data record in block 1000 together with the first data record from the issuer computer system, or the signature server itself creates the second data record using the received first data record. If the signature server creates the second data record, the signature server includes, for example, a template for the layout of the digital document in the page description language. According to embodiments, the second signature comprises the first data record with the first signature, i.e., the combination of the signed first data record and the unsigned second data record is signed with the second signature. In block 1006, a hash value of the digital document, i.e., of the two data records with the two signatures, is calculated.In block 1008, the hash value is sent by the signature server over the network to the issuer computer system for entry into the blockchain. In block 110, upon entry of the first hash value into the blockchain, the digital document is sent by the signature server over the network to the issuer computer system. For example, the signature server receives a corresponding entry confirmation and / or a confirmation that the entry was initiated from the issuer computer system and verifies the entry of the hash value by querying the blockchain. According to embodiments, the signature server can perform this query itself if it has access to the blockchain; it can perform the query via a blockchain server and / or via a verification computer server. Alternatively, the blockchain can be queried after a predefined time interval has elapsed.For example, a successful verification of the entry of the hash value of the digital document is a prerequisite for sending the digital document in block 1010. List of reference symbols
[0161] 100 Blockchain server 102 Processor 104 Hash value 106 Program instructions 108 Memory 110 Blockchain 112 Block 114 Entry 116 Block 118 Entry 119 Hash algorithm 120 Communication interface 130 Blockchain server 132 Processor 138 Memory 148 Smart contract 150 Communication interface 160 Network 170 Blockchain network 172 Blockchain entry 174 Blockchain entry 176 Blockchain entry 178 Blockchain entry 200 Issuer computer system 202 Memory 204 Protected storage area 206 Private key 207 Symmetric key 208 Public key 209 Document data 210 Digital document 211 Access code 212 Processor 214Program instructions 216Communication interface 220Storage system 248Data record 250Signature 252Data record 254Signature 300Signature server 302Memory 304Protected storage area 306Private key 308PKI certificate 312Processor 314Program instructions 316Communication interface 400User computer system 402Memory 412Processor 414Program instructions415 Browser 416 Communications interface 500 Management computer system 502 Memory 504 Protected memory area 506 Private key 508 Public key 510 Issuer data 512 Processor 514 Program instructions 516 Communications interface 600 Audit server 601 Web server 602 Memory 612 Processor 614 Program instructions 616 Communications interface 700 Downloader 702 Memory 712 Processor 714 Program instructions 716 Communications interface
Claims
1. A method for issuing a digital document (210) using an issuer computer system (200) of an issuer of the digital document (210) and a central signature server (300) of a signatory of the digital document (210), wherein the issuer computer system (200) comprises a communication interface (216) for communication via a network (160) and a memory (202), wherein a first private cryptographic key (206) of a first asymmetric key pair of the issuer computer system is stored in a protected memory region (204) of the memory (202), wherein the signature server (300) has, as signature key, a second private cryptographic key (306) of a second asymmetric key pair assigned to the signatory, wherein the authenticity of the second asymmetric key pair is secured via a PKI, wherein the digital document (210) is issued using a blockchain (110), wherein the blockchain (110) is associated with a smart contract (148) with first program instructions, wherein entries associated with the smart contract (148) are generated in the blockchain (110) by executing the first program instructions, wherein the method for issuing the digital document (210) comprises: • creating a first data record (248) containing document data (209) for the digital document (210) in a machine-readable format by the issuer computer system (200), • sending the first data record (248) by the issuer computer system (200) using the communication interface (216) via a network (160) to the signature server (300), • receiving a first hash value (104) of the digital document (210) from the signature server (300) via the network (160) by the issuer computer system (200) using the communication interface (216), wherein the digital document (210) comprises the first data record (248), which is signed with a first signature (250) created using the signature key, wherein the digital document (210) further comprises a second data record (252) containing the document data (209) in a format of a page description language, wherein the second data record (252) is signed with a second signature (254) created using the signature key, • creating an entry request, signed with the private cryptographic key (206) of the issuer, by the issuer computer system (200), wherein the entry request identifies the smart contract (148) and comprises the first hash value (104) of the digital document (210), • sending the signed entry request by the issuer computer system (200), using the communication interface (216), via the network (160) to a first blockchain server (100, 130) to enter the one first hash value (104) of the digital document (210) into the blockchain (110) using the smart contract (148), • upon entry of the first hash value (104) into the blockchain, receiving the digital document (210) from the signature server (300) via the network (160) by the issuer computer system (200) using the communication interface (216).
2. The method according to claim 1, wherein the second data record (252) is created by the issuer computer system (200) and is sent together with the first data record (248) to the signature server (300), or wherein the second data record (252) is a data record created by the signature server (300) using the first data record (248) sent from the issuer computer system (200).
3. The method according to any one of the preceding claims, wherein the second signature (254) signs the second data record (252) together with the signed first data record (248), and / or wherein the machine-readable format is XML, JSON, Open Badge, or Verifiable Credentials, and / or wherein the page description language is one of the following languages: PDF, PS, DVI, and / or wherein the digital document (210) is a digital certificate.
4. The method according to any one of the preceding claims, wherein the method further comprises: • providing a copy of the digital document (210) by the issuer computer system (200) for download from a download server (700), • providing an access code (211) for a user, wherein the access code (211) proves the authorisation of the user to download the digital document (210).
5. The method according to claim 4, wherein a validity period and / or a maximum number of uses is assigned to the access code (211) as proof of authorisation of the user to download the digital document (210).
6. The method according to any one of the preceding claims, wherein the method further comprises: • encrypting the digital document (210) using a symmetric cryptographic key (207) by the issuer computer system (200), • storing the encrypted digital document (210) in a permanent memory (220).
7. The method according to claim 6, wherein the method further comprises: • encrypting the symmetric key using the first public key (208) of the first asymmetric key pair of the issuer, • storing the symmetric key that is encrypted with the first public key (208) together with the encrypted digital document (210) in the permanent memory (220) and / or • encrypting the symmetric key using a third public key (508) of a third asymmetric key pair of a management entity, • storing the symmetric key that is encrypted with the third public key (508) together with the encrypted digital document (210) in the permanent memory (220).
8. The method according to any one of the preceding claims, wherein the method further comprises: • receiving the signed entry request by the first blockchain server (100, 130), • executing, by the first blockchain server (100, 130), the first program instructions of the smart contract (148) identified by the signed entry request, wherein the execution of the first program instructions comprises a verification of the signature of the entry request using a first public cryptographic key (208) of the first asymmetric key pair of the issuer computer system and, in the event of a valid signature, to issue the digital document (210), a generation of an additional first block (112) of the blockchain (110), wherein the generated first block (112) comprises a first entry (114) with the first hash value (104).
9. The method according to any one of the preceding claims, wherein the method further comprises an authorisation of the issuer computer system (200) to enter hash values of digital documents into the blockchain (110), wherein the authorisation comprises: • creating an authorisation request to an authorising managing entity by the issuer computer system (200), wherein the authorisation request comprises the first public cryptographic key (208) of the issuer, • sending the authorisation request by the issuer computer system (200) via the network (160) to a management computer system (500) of the authorising management entity to create an entry request by the management computer system (500) to a second blockchain server (100, 130) for entry of an authorisation of the issuer, wherein the entry request comprises the first public cryptographic key (208) of the issuer and is signed with the third private cryptographic key (506) of the third asymmetric key pair of the management computer system (500), and / or wherein the method further comprises an authorisation of the issuer computer system (200) for entry of hash values of digital documents into the blockchain (110), wherein the authorisation comprises: • creating an authorisation request by the issuer computer system (200), wherein the authorisation request identifies the smart contract (148) and the first public cryptographic key (208) of the issuer, • sending the authorisation request by the issuer computer system (200) via the network (160) to a second blockchain server (100, 130), wherein the second blockchain server (100, 130) is configured to generate blocks of the blockchain (110), • receiving the authorisation request by the second blockchain server (100, 130), • executing, by the second blockchain server (100, 130), second program instructions of the smart contract (148) identified by the authorisation request, wherein the execution of the second program instructions comprises a verification of the validity of the authorisation request and, in the event of a valid authorisation request, in order to authorise the first public cryptographic key (208) of the issuer, comprises a generation of a second additional block of the blockchain (110) with an authorisation confirmation of the issuer computer system (200).
10. The method according to any one of the preceding claims, wherein a verification of the authenticity of the digital document (210) by a verifying computer system (600) comprises: • calculating the hash value of the received digital document (210) by the verifying computer system (600), • querying the blockchain (110) following an entry with the calculated hash value of the received digital document (210) by the verifying computer system (600), wherein an existence of an entry in the blockchain (110) with the calculated hash value of the received digital document (210) is a prerequisite for confirmation of the authenticity of the received digital document (210) by the verifying computer system (600), and / or wherein a verification of the authenticity of the digital document (210) by a verifying computer system (600) comprises: • verifying the first and / or second signature (250, 254) of the received digital document (210) using the PKI for the second asymmetric key pair of the signature server (300), wherein a successful verification of the first and / or second signature (250, 254) is a prerequisite for confirmation of the authenticity of the received digital document (210) by the verifying computer system (600), wherein the method, for example, further comprises: in the event that all prerequisites for confirmation of the authenticity of the received digital document (210) are satisfied, confirming the authenticity of the received digital document (210) by the verifying computer system (600).
11. An issuer computer system (200) for issuing a digital document (210), wherein the issuer computer system (200) comprises a processor (212), a communication interface (216) for communication via a network (160), and a memory (202), wherein program instructions (214) of the issuer computer system (200) are stored in the memory (202), wherein a first private cryptographic key (206) of a first asymmetric key pair of the issuer computer system is stored in a protected memory region (204) of the memory (202), wherein the digital document (210) is issued using a blockchain (110), wherein the blockchain (110) is associated with a smart contract (148) with first program instructions, wherein entries associated with the smart contract (148) are generated in the blockchain (110) by executing the first program instructions, wherein execution of the program instructions (214) of the issuer computer system (200) by the processor (212) controls the issuer computer system (200) to execute a method for issuing the digital document (210), which method comprises: • creating a first data record (248) containing document data (209) for the digital document (210) in a machine-readable format by the issuer computer system (200), • sending the first data record (248) by the issuer computer system (200) using the communication interface (216) via a network (160) to a central signature server (300) of a signatory of the digital document (210), • receiving a first hash value (104) of the digital document (210) from the signature server (300) via the network (160) by the issuer computer system (200) using the communication interface (216), wherein the digital document (210) comprises the first data record (248), which is signed with a first signature (250) created using a signature key of the signature server (300), which signature key is secured via a PKI, wherein the digital document (210) further comprises a second data record (252) containing the document data (209) in a format of a page description language, wherein the second data record (252) is signed with a second signature (254) created using the signature key, • creating an entry request, signed with the private cryptographic key (206) of the issuer, by the issuer computer system (200), wherein the entry request identifies the smart contract (148) and comprises the first hash value (104) of the digital document (210), • sending the signed entry request by the issuer computer system (200), using the communication interface (216), via the network (160) to a first blockchain server (100, 130) to enter the one first hash value (104) of the digital document (210) into the blockchain (110) using the smart contract (148), • upon entry of the first hash value (104) into the blockchain, receiving the digital document (210) from the signature server (300) via the network (160) by the issuer computer system (200) using the communication interface (216).
12. A signature server (300) for signing a digital document (210), wherein the signature server (300) comprises a processor (312), a communication interface (316) for communication via a network (160), and a memory (302), wherein program instructions (314) of the signature server (300) are stored in the memory (302), wherein a second private cryptographic key (206) of a second asymmetric key pair of the signature server (300) is stored as signature key in a protected memory region (304) of the memory (302), wherein execution of the program instructions (314) of the signature server (300) by the processor (312) controls the signature server (300) to execute a method, which method comprises: • receiving a first data record (248) containing document data (209) for the digital document (210) in a machine-readable format by the signature server (300) using the communication interface (316) via a network (160) from an issuer computer system (200) of an issuer of the digital document (210), • creating a first and a second signature of the digital document (210) by the signature server (300) using the signature key secured via the PKI, wherein the first data record (248) of the digital document (210) is signed with the first signature (250), wherein a second data record (252) of the digital document (210) containing the document data (209) in a format of a page description language the digital document (210) is signed with the second signature (254), • calculating a first hash value (104) of the digital document (210), • sending the first hash value (104) by the signature server (300) using the communication interface (316) via the network (160) to the issuer computer system (200) for entry into the blockchain, • upon entry of the first hash value (104) into the blockchain, sending the digital document (210) by the signature server (300) using the communication interface (316) via the network (160) to the issuer computer system (200).
13. The signature server according to claim 12, wherein the signature server (300) is configured to receive the second data record (252) together with the first data record (248) from the issuer computer system (200), or wherein execution of the program instructions (314) of the signature server (300) by the processor (312) further controls the signature server (300) to create the second data record (252) using the received first data record (248), and / or wherein the second signature (254) signs the second data record (252) together with the signed first data record (248).
14. A system for issuing a digital document (210), wherein the system comprises an issuer computer system (200) according to claim 11, which is configured to carry out the method steps of the issuer computer system (200) according to any one of claims 1 to 10, and comprises a signature server (300) according to any one of claims 12 to 13, which is configured to carry out the method steps of the signature server (300) according to any one of claims 1 to 10.
15. The system according to claim 14, which further comprises one or more blockchain servers (100, 130), which are configured to carry out the method steps of the one or more blockchain servers (100, 130) according to any one of claims 1 to 10, and / or which further comprises a management computer system (500), which is associated with an authorising management entity and which is configured to carry out the method steps of the management computer system (500) according to claim 7, and / or which further comprises a verifying computer system (600), which is configured to carry out the method steps according to claim 10.
