http___maturski.org_INFORMACIONI_20SISTEMI_DigitalniPotpis_20.html_1.xml
1.1 2.1 3.1 4.1 4.2 4.3 4.4 4.5 4.6 5.1 5.2 5.3 6.1 6.2 6.3 6.4 7.1 7.2 7.3 7.4 7.5 7.6 8.1 8.2 8.3 8.4 8.5 9.1 9.2 10.1 10.2 10.3 11.1 11.2 11.3 11.4 11.5 12.1 12.2 13.1 13.2 13.3 14.1 14.2 14.3 15.1 15.2 15.3 15.4 16.1 16.2 16.3 16.4 17.1 17.2 17.3 17.4 18.1 18.2 18.3 19.1 19.2 19.3 19.4 20.1 20.2 20.3 20.4 20.5 21.1 21.2 21.3 21.4 21.5 21.6 22.1 22.2 22.3 22.4 22.5 22.6 23.1 24.1 25.1 25.2 26.1 27.1 28.1 29.1 29.2 30.1 31.1 31.2 32.1 32.2 33.1 33.2 34.1 34.2 35.1 35.2 36.1 37.1 38.1 39.1 40.1 41.1 42.1 42.2 43.1 44.1 45.1 46.1 46.2 46.3 47.1 47.2 47.3 48.1 49.1 49.2 49.3 50.1 51.1 51.2 51.3 51.4 52.1 52.2 52.3 52.4 53.1 54.1 55.1 56.1 57.1 58.1 59.1 60.1 61.1 62.1 63.1 63.2 64.1 65.1 66.1 67.1 68.1 69.1 70.1 71.1 72.1 73.1 74.1 74.2 74.3 74.4 75.1 75.2 76.1 77.1 78.1 79.1 80.1 81.1 82.1 83.1 83.2 84.1 84.2 85.1 86.1 86.2 87.1 88.1 89.1 90.1 91.1 92.1 93.1 93.2 94.1 95.1 96.1 97.1 97.2 98.1 98.2 99.1 100.1 101.1 102.1 103.1 104.1 104.2 105.1 106.1 107.1 108.1 109.1 109.2 110.1 111.1 111.2 111.3 111.4 112.1 113.1 113.2 113.3 114.1 115.1 116.1 117.1 117.2 117.3 117.4 117.5 118.1 119.1 119.2 119.3 120.1 121.1 121.2 122.1 122.2 122.3 123.1 123.2 124.1 124.2 124.3 124.4 124.5 124.6 124.7 126.1 127.1 128.1 129.1 129.2 130.1 130.2
Tech World | Manufacturing & Engineering Professionals | Project Management ++ |13 more ... Data encryption has become a sad necessity for responsible data managers. However cryptography is jargon-heavy even by the discouraging standards of the IT world – symmetric and asymmetric cryptosystems, public versus private keys, digital signatures, hash algorithms, RSA, DES, Rijndael, PGP, MD5, SHA-1, https, secure sockets, Camellia, IDEA; what does it all mean? What are the differences? Relative advantages and disadvantages? Hopefully this article will clear some of the fog. Substitution ciphers Although we tend to use the words ‘code’ and ‘cipher’ interchangeably, technically they're two entirely different things. When you substitute each letter in a message for a different symbol that's a cipher. A code on the other hand means assigning a secret meaning to a word or phrase. For example, if "The birds are flying south" means "Flee! The police are on to us!" that's a code. But the simple schoolboy “code”, 1 = 'A', 2 = 'B' etc. (invented, legend has it, by Julius Caesar), is a cipher, a substitution cipher in fact. So the ASCII “code” is actually a kind of cipher for example. Substitution ciphers were good enough for nearly two thousand years but they eventually failed in the face of improving technology. The Enigma cipher used by the German military during World War II is a substitution cipher and it was broken long before the days of computers, both by the Poles and more famously the British. Don’t, however, dismiss substitution ciphers. If you just want to deter prying eyes a substitution cipher using multiple substitutions and several different substitutions schemes offers a reasonable level of encryption for virtually no computational effort. (This is the way Enigma works and after all, it did take Alan Turing to break it). Random substitution There is a form of substitution cipher that does offer excellent security. By making random substitutions, the patterns that make other substitution ciphers vulnerable are eliminated. The simplest form of random substitution is to break a message into blocks of 4 bytes (4 ASCII characters) and add a pseudo-random number to each block. To recover the plaintext (the input message) subtract the same series of pseudo-random numbers from the ciphertext (the encrypted message). The key is simply the seed value for the pseudo-random number generator. This form of encryption is widely used (the file encryption options offered by word processors often use this method) as it’s simple, highly reliable and will defeat all but the most determined and skillful attackers. Symmetric cryptosystems: DES and AES If, however, you need higher levels of security there are plenty of alternatives. Block ciphers break the message into fixed-length blocks, then each block of plaintext is converted into a block of ciphertext using a sequence of arithmetic operations and/or substitutions. The best known of these is DES (the Data Encryption Standard), developed by the National Institute of Standards and Technology in the US. DES uses 64-bit blocks with a 64-bit key (although only 56 bits are significant; the other 8 are parity bits). The bits within a block are shuffled and XOR’ed with the key in a sequence of 16 substitutions called “rounds”, to create the ciphertext. Applying the same process (with the same key) to the ciphertext restores the original plaintext, so the process is symmetric. It has been very widely used, by the US government and commercial organisations around the world, including many financial institutions. It is easy to code (and there are good public domain implementations) and as it only involves bit-shifting operations combined with a few small look-up tables it doesn’t impose too much of a computational load. Unfortunately, while it was secure enough in 1976 when it was introduced, advances in computer hardware mean the relatively short key is now vulnerable to a brute-force attack. A decent supercomputer or Beowulf cluster could check all possible DES keys in just a few days and the time can’t be far off when even a desktop PC will be enough to crack any DES-encrypted message. Consequently the National Institute of Standards and Technology (NIST) no longer recommends DES and has instead proposed a successor, AES (Advanced Encryption Standard, also known as Rijndael – pronounced "rein-dahl" – from the names of its two inventors). AES is similar to DES in principle but uses much longer keys (128, 192 or 256 bits) and is specifically designed to resist the most sophisticated cryptographic attacks, methods such as timing analysis (looking for correlations between a plaintext and the time taken to encrypt it) and power analysis (looking for variations in the processor power requirements for encrypting different plaintexts). It has very low memory requirements so is particularly suited for embedded applications such as smart cards. DES and AES are by no means the end of the story as far as symmetric encryption systems go. Microsoft uses a proprietary symmetric encryption system for Windows XP key validation and other systems you may encounter include RC4, RC6 and IDEA, while the European Union’s cryptography committee, NESSIE (New European Schemes for Signatures, Integrity and Encryption), recommends the Japanese Camellia cipher as an alternative to AES. Asymmetric cryptosystems and RSA Symmetric block ciphers such as DES and AES can provide very high levels of security. However they have one obvious weakness, in that both sender and receiver must share the key, yet keep it secret from anyone else. This poses a particular problem for Internet commerce since a secret key would no longer be secret if it were sent over the Internet, and if it was embedded in a browser it could be discovered by reverse-engineering the program. On the other hand without some way to encrypt web traffic, sensitive details such as credit card numbers would be available to anyone with the slightest knowledge of TCP/IP. The solution lies in an ingenious group of ciphers known as asymmetric or public key/private key systems. In asymmetric systems the key used to encrypt a message is not the same as that used to decrypt it. If a message has been encrypted using one key of a pair it cannot be decrypted even by someone else who has that key (crucially, knowing one key doesn’t provide knowledge of the other). Only the matching key of the pair can be used for decryption. This seems rather extraordinary – almost magical on the face of it. If you know both the encryption algorithm and the key, how is it possible that the encryption process can’t simply be reversed to recover the original message? Nonetheless, that’s exactly how it is. Given a pair of keys, a message encrypted with one can only be decrypted with the other and vice-versa. There are a number of asymmetric key systems but the best known and most widely used is RSA, named for its (three) co-inventors. Originally patented, the patent expired in September 2000 and the algorithm is now in the public domain. The Secure Sockets Layer used for secure communications on the Internet uses RSA (the https protocol is simply http over SSL). Unfortunately, nothing in life is free, and so it is with asymmetric cryptosystems. Since d can be computed from e given p and q, and p and q are the factors of N, they must be chosen so large that N cannot be factorised in any reasonable time. As computer power has grown so too has the ability to compute the factors of very large numbers. Current hardware means key lengths should be 1024 bits for complete security. Raising such very large numbers to very large exponents is computationally much more demanding than the bit shifting and XOR'ing of symmetric cryptosystems such as DES, so asymmetric encryption is really only practical for short messages. A common workaround when encrypting long messages is to use RSA to encrypt a short preamble containing a DES or AES key selected at random, then send the main body of the message encrypted with that key. A recipient with the corresponding private key can decrypt the preamble and use the key it contains to decipher the rest of the message. Modern web browsers use exactly this method to conduct secure communications. Digital signatures An increasingly important use for asymmetric encryption is digital signing. A digital signature is the reverse of public key encryption. Just like an ordinary signature it is used to prove the identity of the sender of a message. This can happen in several ways. The simplest is to send a random message as both plaintext and ciphertext. The recipient deciphers the ciphertext version using the published public key and if the two versions match it proves the sender was in possession of the private key. One drawback of this form of signature is that it only verifies itself, not any message to which it is attached. An alternative form uses a redundancy or hash function to create a message digest from a message in order to verify the source and reliability of the message. Suppose A and B (the Alice and Bob so beloved of cryptographers) want to exchange messages. A encrypts a message using B’s public key and appends the hashed value of the message encrypted with her own private key. On receiving the message B deciphers it using his private key, and also deciphers the accompanying message digest using A’s public key. If it matches the hash value he computes from the message he received, he can conclude that: (a) The message originated from A (the only person who could have encrypted the digest correctly) and (b) The message has not been altered in transit. The RSA algorithm has become the standard for digital signature applications and the company founded by the co-inventors of RSA, RSA Data Security Inc, has developed (and published) a number of improvements on this basic scheme. Digital signatures on the Web are based on RSA, as is the popular PGP – Pretty Good Privacy – package. Cryptography Techniques Encryption - What is it and how does it work? Encryption is esentially the transformation of meaningful data into non-meaningful data for the purposes of transportation so that anyone without a secret decryption key can not read the original meaningful data unless they are the intended recipient of the data. Privacy is ensured by keeping the information hidden from anyone for whom it is not intended, even those who can see the encrypted (meaningless) data. As a simple example it is possible to encrypt files on a hard disk to prevent intruders from reading them. However, when the environment, where data is exchanged, has many people transferring data within it, the risks of intruders, be they passive (attempting to read the data) or active (attempting to corrupt the data), increases to the point of justifying that all data packets leaving a particular node need to be encrypted. Encryption allows secure communication over an insecure data comunications channel. It works as follows: The sender intends to send a message to the recipient. The data is not to be seen by any other person that may also be using the same environment. The sender completes writing the message which when read is meaningful. This is the plaintext. He/She then encrypts the message with an encryption key. There are different types of encryption discussed below. The encrypted message is sent off down the insecure communications channel to the intended recipient. The message in this meaningless form is called the ciphertext. On arrival of the encrypted message, the receiver decrypts the ciphertext with the decryption key and reads the message. While the ciphertext is in transit, an intruder, in order to read the message, may try the following: - obtain the secret key (eg by theft) or - recover the plaintext without using the secret key. A secure Cryptosystem is one where the plaintext cannot be recovered from the ciphertext without using the decryption key. Symmetric Cryptosystem Here, the same single key is used as both the encryption key and the decryption key. Secret-key cryptography Secret-key cryptography is a very straightforward agreement between sender and receiver a message. Each party knows and uses the same secret key. It works very simply: The sender uses the secret key to encrypt the message. The receiver uses the same secret key to decrypt the message. This form of cryptography has one hugely insecure factor. How to keep the 'secret' key as a secret! The sender and receiver must agree on the secret key (usually text of some form, similiar to a login password) without any other party finding out. If they are in separate physical locations, communication is required to agree on the key. They must trust a courier, the phone system, or some other transmission system to ensure that the secret key being communicated is not disclosed to anyone else but the two parties. Anyone who overhears or intercepts the key while in transit is capable of decrypting and thus reading all messages encrypted using that key. Key management This is the generation, transmission and storage of keys. All cryptosystems have to deal with key management issues. Secret-key cryptography often has difficulty providing secure key management due to the insecurity of agreeing on a secret key in the first place. Public-key cryptography Diffie and Hellman solved the key management problem in 1976 by inventing Public-key cryptography. This cryptosystem is based on the idea that each person gets a pair of keys, called a public key and a private key. Every user gets their public key published but the private key is kept secret. So the sender and receiver need not have to agree on, and communicate secret information (ie a key). All communication involves public keys only. No private key is ever transmitted or shared. So trusting some communications channel to be secure against eavesdropping or betrayal is no longer an issue. The most important requirement is that no party can figure out the private key from the corresponding public key. Any sender can send a confidential message just using the intended recipient's public key, but it can only be decrypted with the private key solely in the possession of the receiver. Furthermore, public-key cryptography aswell as being used for privacy (encryption), can also be used for authentication (digital signatures - discussed below). How Public-key cryptography functions: The sender wishes to send a message to the receiver He/She looks up the receiver's public key in a directory The public key is used to encrypt the message and it is sent off The receiver uses his/her private key to decrypt the message and read it. No other party listening in can decrypt the message. Anyone can send an encrypted message to the receiver but only the receiver can read it. RSA - An example of a public-key cryptosystem RSA was invented in 1977 by Ron Rivest, Adi Shamir, and Leonard Adleman. It is a public-key cryptosystem used for the purposes of both encryption and authentication. The RSA Algorithm Take two large primes, p and q. Find their product n = pq; n is called the "modulus". Choose a number, e, less than n. e must also be relatively prime to (p-1)(q-1). Find its inverse, d, mod (p-1)(q-1). This means that ed = 1 mod (p-1)(q-1). e and d are called the public and private exponents, respectively. The public key is the pair (n,e) and the private key is d. The factors p and q must be kept secret, or destroyed. It is presumed to be too difficult to obtain the private key d from the public key (n,e). This is the fundamental irony of RSA. We could call this both a flaw and an adequately good enough security measure. If an intruder could factor n into p and q, then he could obtain the private key d. So the entire security of RSA is predicated on the assumption that factoring (of two very large primes) is difficult. In theory an easy factoring method would ``break'' RSA. RSA privacy (encryption) The sender wants to send a private message, m, to the receiver. The sender creates the ciphertext c by exponentiating: c = m^e mod n, where e and n are the receiver's public key. To decrypt, the receiver performs the exponentiation: m = c^d mod n, and recovers the original message m. The relationship between e and d ensures that the receiver correctly recovers m. Since only the receiver knows d, only he/she can decrypt the message. Authentication and Digital signatures While encryption dates back to the times of Caesar, digital signatures are more recent. This is due to the proliferation of digital communications and in this context the exponential growth of the Web. Authentication is the use of digital signatures and holds the same function and meaning for digital documents as handwritten signatures do for printed documents. In paper and ink terms, a signature is an unforgeable piece of information unique to a particular person who has written or has agreed with the contents of the document where their signature is attached. The recipient (as well as a third party) can verify that the document did originate from the person whose signature is attached and also that the document has not been tampered with since it was signed and dispatched. The same concepts hold for electronic messages. Authentication in the context of Web Security is where the receiver of a digital data message can be confident of the identity of the sender and of the validity of the message. Popular examples of authentication protocols in use today are: secret-key cryptosystem: DES, public-key system: RSA (detailed below) Authentication in public-key systems uses digital signatures. All secure cryptosystems consist of two parts: The method of signing the document at the senders end, making forgery an impossibility, and the method of verifying that the signature was actually generated by the real sender, at the receivers end. Public-key cryptography for the purposes of authentication works as follows The sender, to sign a message, does a computation involving both their private key and the message itself. The resulting output of this computation is called the digital signature and it is attached to the message. The package is then sent. The receiver needs to verify the signature. This is achieved by performing some computation involving: - the message - the supposed senders signature and - the sender's public key If the results hold in this simple mathematical relation then the signature is verified as genuine. If not, they are discarded because the signature may be fraudulent or the message may have been altered. So it would seem that there is no way secure digital signatures can be the cause of conflict. The signer of a document would never be able to disown it by later claiming it was forged. RSA authentication (digital signature writing) The sender wants to send a signed document m to the receiver. The sender creates a digital signature s by exponentiating: s = m^d mod n, where d and n belong to the sender's key pair. He/She sends s and m to the receiver. In order to verify the signature, the receiver performs the exponentiation: m = s^e mod n, where e and n belong to the sender's public key, and hence has checked that the message m has been recovered intact. So in keeping with public-key principles, encryption and authentication take place without any sharing of private keys. Each person uses only other people's public keys and his or her own well guarded private key. Again anyone can send an encrypted message or verify a signed message, using only public keys, but only someone in possession of the correct private key can decrypt or sign a message. Public-key cryptography versus Secret-key cryptography The advantages and disadvantages: - The obvious advantage of public-key cryptography is increased security in that the private keys need not ever be communicated, transmitted or revealed to anyone. - This, in contrast, is the insecurity of a secret-key system. There is always the possiblility that another rogue party could discover the secret key while it is being transmitted for agreement purposes. - From the authentication point of view public-key systems are a major advantage in that they can provide a method for digital signatures. Authentication via a secret-key system would require the sharing of some secret key and sometimes requires trust of a third party as well. A sender could then deny any association with a previously signed message by claiming that the shared secret was somehow compromised by one of the parties sharing the secret. However this conflict would never arrive using public-key authentication because each user is responsible for protecting his/her private key. This property of public-key authentication is called "non-repudiation". - From the judicial point of view, digitally signed messages can be proved authentic to a third party, such as a judge, thus allowing such messages to be legally binding. - The major disadvantage of using public-key cryptography for encryption is speed of encrypting a message before dispatching it. Most popular Secret-key encryption methods are significantly faster than any public- key encryption methods currently available. So obviously the trade-off involves secure key management against speed. - A compromise is achieved where public-key cryptography can share the burden with secret-key cryptography to get the best of both worlds. Encryption combining public keys and secret keys In order to utilise both the security advantages of public-key systems, and the speed advantages of secret-key systems, the solution is to combine public- and secret-key systems. Initially the public-key system can be used to encrypt a secret key. The secret is probably small in size, so speed of encryption is not important. Once such a key has been securely communicated between patries, it is then used to encrypt a complete file or message. This may be large in size, but the sender and receiver have the assurance that it is being encrypted as quickly as possibly and that the secret-key has been shared using a sound secure method. This is indeed the case in RSA. Conclusion Public-key cryptography is not meant to replace secret-key cryptography, but rather to supplement it, to make it more secure. The first use of public- key techniques is for secure key exchange in an (otherwise) speedy secret-key system. Hence secret-key cryptography is still extremely important. Parimal Sudas Assitt. Professor Hi all, Good & Valuable info. For the question about how to use this technology at personal level, Please visit Trustport.com site. Esign - Handles all certificates and encryption in communication Disk Image & Archive encryption of trustport total protection implements Encryption technologies which will benefit home user also. Good article. Thanks for sharing Prof. Parimal Sudas! Fantastic Information content. However are these techniques used anywhere in industry nowadays? I have heard that most financial transactions are secured by using triple DES algorithms. I am a Information security enthusiast and would like to work in this domain. I am an aspiring IT engg and would like to opt Information security as my career prospect. It would really be helpful if you can write about some latest trends in IT security. thank you Very Good Article. Thanks thanks...one of my favorite subject Fantastic article. Thanks for sharing. I have worked in PKI domain as a Consultant with a Certification Body and I have never come across such detailed explanation. Thanks keep up the good work.
1.1 2.1 3.1 3.2 4.1 5.1 5.2 6.1 7.1 7.2 8.1 8.2 9.1 10.1 11.1 11.2 12.1 13.1 13.2 14.1 15.1 16.1 17.1 18.1 19.1 20.1 21.1 21.2 22.1 23.1 24.1 25.1 25.2 26.1 26.2 27.1 27.2 28.1 29.1 30.1 30.2 31.1 32.1 33.1 33.2 34.1 35.1 36.1 36.2 37.1 37.2 38.1 39.1 40.1 41.1 42.1 43.1 43.2 44.1 44.2 45.1 46.1 47.1 48.1 49.1 50.1 50.2 51.1 51.2 52.1 53.1 53.2 54.1 55.1 56.1 57.1 58.1 59.1 60.1 60.2 61.1 62.1 63.1 64.1 64.2 65.1 66.1 67.1 67.2 68.1 69.1 70.1 71.1 72.1 73.1 74.1 75.1 76.1 77.1 78.1 79.1 80.1 81.1 81.2 82.1 83.1 84.1 85.1 86.1 86.2 87.1 88.1 89.1 90.1 91.1 92.1 93.1 94.1 94.2 95.1 95.2 96.1 97.1 98.1 99.1 100.1 100.2 101.1 102.1 102.2 103.1 104.1 104.2 105.1 106.1 107.1 108.1 109.1 110.1 111.1 112.1 113.1 114.1 115.1 116.1 117.1 118.1 119.1 120.1 120.2 120.3 121.1 122.1 123.1 124.1 125.1 126.1 127.1 128.1 129.1 129.2 130.1 131.1 131.2 132.1 133.1 134.1 135.1 136.1 137.1 138.1 138.2 138.3 139.1 139.2 140.1 141.1 141.2 142.1 142.2 143.1 144.1 145.1 145.2 146.1 146.2 147.1 147.2 148.1 149.1 150.1 150.2 151.1 151.2 151.3 152.1 152.2 153.1 154.1 155.1 156.1 157.1 158.1 159.1 159.2 160.1 160.2 161.1 162.1 163.1 163.2 164.1 165.1 165.2 166.1 167.1 168.1 169.1 169.2 170.1 170.2 171.1 172.1 172.2 173.1 174.1 175.1 175.2 176.1 177.1 178.1 179.1 180.1 181.1 182.1 182.2 183.1 184.1 185.1 186.1 187.1 188.1 188.2 189.1 190.1 191.1 192.1 193.1 193.2 195.1 195.2 197.1 197.2 199.1 200.1 201.1
Uvod- Općenito o digitalnom potpisu Današnji opće prihvaćeni način ovjeravanja dokumenata vlastoručnim potpisom vuče korijene od samih početaka ljudske pismenosti. Potpisi se danas nalaze na najrazličitijm dokumentima, od različitih ugovora, naloga, čekova pa sve do privatnih pisama. Prema postojećim zakonima potpisom se smatra ne samo vlastoručni potpis, već i bilo koji drugi znak na dokumentu načinjen s ciljem ovjeravanja dokumenta. Ipak, na računalima se ne smatra svaki potpis digitalnim potpisom. Različite znakovne ili tekstualne oznake u datotekama ili elektronskoj pošti ili kopije vlastoručnog potpisa krajnje su neprimjerene i nepouzdane, prije svega zbog trivijalnog krivotvorenja. Razvojem i širenjem računala a napose računalnih mreža, postalo je jasno da je potreban posve novi način ovjeravanja. Temelji za pouzdanu provjeru porijekla informacija, «digitalni potpis», stvoreni su 1976. godine otkrićem kriptografije javnog ključa (Diffie-Hellman), koja se još naziva i asimetričnom kriptografijom. Zanimljivo je napomenuti da je ovaj način kriptiranja podataka, prema nekim informacijama bio poznat britanskoj tajnoj službi nekoliko godina prije nego spomenutoj dvojici istraživača. Danas, kada većina razvijenih zemalja u svoje zakone uvodi i zakon o digitalnom potpisu, ovo područje se nalazi na granici dva svijeta, kriptografije i prava. Osim pravnih problema oko primjene digitalnog potpisa, postoje i pravni problemi vezani uz implementaciju algoritama digitalnog potpisa, uglavnom zbog softverskih patenata kojima je velik broj algoritama zaštićen, ali i zbog restriktivnih regulativa pojedinih zemalja vezanih uz kriptografske proizvode općenito. Tako je npr. izvoz «jakog» enkripcijskog softvera iz SAD-a bio zabranjen sve do pred kraj 1999. godine. Isto tako, u Francuskoj je upotreba alata za enkripciju bila zabranjena do početka 1999. Ipak, naglim širenjem elektronskog poslovanja postalo je nužno ovakve odredbe ukinuti, i omogućiti kako sigurnu zaštitu informacija šifriranjem tako i zaštitu od mogućih prijevara, autentifikacijom. Upravo idealnim za ovo potonje nameće se digitalni potpis. Osnovni principi rada digitalnog potpisa Slika 1. Princip digitalnog potpisa Pretpostavimo da dvoje ljudi Luka i Petar, žele razmjenjivati potpisane poruke (podatke) tj. žele biti sigurni u identitet osobe od koje su poruku dobili. Kao prvo, obje osobe kreiraju par komplementarnih ključeva, javni i tajni ključ. Važno je naglasiti da se poznavanjem javnog ključa ne može izračunati tajni ključ u nekom razumnom vremenu (vrijeme potrebno za izračunavanje tajnog ključa iz poznatog javnog ključa, tj. razbijanje šifre, mjeri se milijunima godina na danas najjačim raspoloživim računalima). Nakon kreiranja ključeva, Luka i Petar razmjenjuju svoje javne ključeve, a potom Luka, koristi svoj tajni ključ za šifriranje sažetka poruke koji je izračunao nekom od «Hash» funkcija. Hash funkcija je funkcija koja iz zadane poruke (podataka) računa sažetak fiksne duljine. Kada Petar uspije dešifrirati sažetak poruke javnim ključem od Luke, on još računa i sažetak primljene poruke koji potom uspoređuje s upravo dešifriranim, i ako je izračunati sažetak jednak onom dešifriranom, primatelj može biti siguran u porijeklo poruke (podataka), jer je poruka mogla biti šifrirana jedino Lukinim tajnim ključem, kao i u integritet poruke. Slika 2. Princip potpisivanja poruke U cijeloj proceduri samo je jedna stvar slaba karika. Moramo biti apsolutno sigurni da javni ključ za koji mislimo da pripada Luki zaista i pripada njemu. Naime, ukoliko Petar ima javni ključ od neke treće osobe, a vjeruje da ključ pripada pošiljatelju Luki, tad je ta treća osoba u mogućnosti krivotvoriti Lukine podatke . Uloga povjerljive stranke Opisani problem rješava se na način da se uvodi «povjerljiva stranka». Pretpostavka je da povjerljivoj stranci sve ostale stranke vjeruju, te da svoje javne ključeve osobno odnesu na potpisivanje, s tim da im PS prethodno provjeri uobičajene «fizičke» dokumente. U tom slučaju PS koristi svoj tajni ključ za potpisivanje javnog ključa te time garantira svima ostalima ispravnost potpisanog javnog ključa. Postoji i druga mogućnost, a to je da PS svima generira par ključeva, te uz prethodnu fizičku autentifikaciju, dodjeljuje ključeve. U tom slučaju svatko tko bi htio provjeriti ispravnost potpisa neke osobe morao bi u bazi javnih ključeva (koju čuva PS) pronaći javni ključ te osobe i potom tim ključem pokušati dešifrirati primljene podatke. Nedostatak ovog drugog modela je taj što u tom slučaju PS posjeduje i tajne ključeve što predstavlja znatan sigurnosni problem ako se isti par ključeva koristi osim za potpisivanje i za šifriranje podataka. Potpisi i zakoni Zakonske regulative (zemalja koje imaju zakon o digitalnom potpisu) ne određuju niti jednu tehnologiju potpisivanja kao dominantnu, već samo donose propise kojih se svaka od tehnologija mora pridržavati. Kao prvo, od digitalnog se potpisa očekuje da bude jedinstven osobi koja ga koristi, drugo, da se može provjeriti kome pripada odnosno da li zaista pripada osobi koja ga je koristila, treće, da je u potpunoj kontroli osobe koja ga koristi, četvrto, da potvrđuje i sebe i podatke koje potpisuje. Već iz ovog vidimo da postoji znatna prednost digitalnog potpisa nad klasičnim metodama autentifikacije. Najveća prednost je ta što se valjanost potpisa provjerava svaki put pri primitku dokumenta, za razliku od klasičnih potpisa koji se provjeravaju tek na sudu, kad se prijevara već odigrala. Osim ove prednosti postoji još jedna značajna prednost, a to je nemogućnost naknadne izmjene potpisanog dokumenta, kao i nemogućnost potpisivanja praznih dokumenata. Ipak, ukoliko krivotvoritelj uspije doći do tajnog ključa, tada bez ikakvih problema može falsificirati podatke bez da postoji i najmanja mogućnost utvrđivanja različitosti takvog potpisa od pravog potpisa, što kod klasičnih metoda ipak nije slučaj. Nemali broj kriptografskih algoritama zaštićen je različitim patentima. Tako je npr. najrašireniji asimetrični kriptografski algoritam, RSA, bio patentiran 17 godina sve do rujna 2000. godine, a drugom isto tako vrlo značajnom protokolu, Diffie-Hellman protokolu, patent je istekao u travnju 1997. godine. Nažalost, ovo nisu jedini takvi primjeri kao ni jedini problemi u široj primjeni kriptografskih algoritama. Proizvođači kriptografskog softvera (bili) su prisiljeni proizvoditi po dvije ili čak tri različite verzije istog softverskog paketa da bi se udovoljilo svim izvoznim i patentnim regulativama; zabrana izvoza kriptografskog softvera iz SAD-a s ključem dužim od 40-bita bila je na snazi do pred kraj 1999. godine, tako da je npr. NAI («Network Associates») bio prisiljen imati dvije verzije svog programa PGP, jednu za tržište SAD-a a drugu za internacionalnu tržište. Ipak, obje su verzije koristile «jaku» enkripciju tako što je iskorištena «rupa» u zakonu SAD-a kojim se zabranjuje izvoz softvera u binarnom obliku ali ne i izvornog koda na papiru. Osim ovog, postojao je i problem zbog patentiranog RSA algoritma, tako da verzije za SAD nisu koristile istu inačicu kao i internacionalne. Sličan problem javlja se i s pojavom novog američkog standarda za digitalno potpisivivanje («Digital Signature Standard», DSS, 1994), jer se dijelovi korištenog algoritma (koji sam po sebi nije patentiran) nalaze pod patentnom zaštitom autora sličnog algoritma temeljenog na diskretnim logaritmima. Ovaj primjer ipak odskače iz mnoštva drugih upravo zbog toga što se radi o standardu koji su obavezne koristiti sve državne ustanove SAD-a; drugim riječima ovaj će patent vrlo vjerojatno američki porezni obveznici osjetiti na vlastitom džepu. Na kraju spomenimo još i zabranu izvoza bilo kakvog kriptografskog softvera zemljama poput Iraka, Sjeverne Koreje ili Kube. Kriptografski temelji digitalnog potpisa Današnje tehnike digitalnog potpisivanja temelje se na algoritmima asimetrične kriptografije, poznate još i pod nazivom kriptografija javnog ključa (engl. «public key cryptography»). Algoritme javnog ključa (engl. «public-key algotithms») možemo podijeliti u tri osnovne grupe: 1. algoritmi temeljeni na praktičnoj nemogućnosti faktoriziranja velikih prim brojeva (RSA) 2. algoritmi temeljeni na praktičnoj nemogućnosti izračunavanja diskretnih logaritama (Diffie-Hellman protokol, DSA) 3. algoritmi temeljeni na eliptičnim krivuljama (praktične realizacije ove metode su tek u povojima) Osim ovih algoritama postoji još i nekolicina rjeđe korištenih, temeljenih na praktičnoj nemogućnosti utvrđivanja sadržaja ruksaka (engl. «knapsack algorithms», Merkle), no većina današnjih komercijalnih implementacija se može svrstati u jednu od tri glavne kategorije. Recimo još i to da se različite verzije Knapsack algoritma ne smatraju sigurnima zbog toga jer su Rivest i Shamir (neovisno jedan o drugom, Rivest prvu verziju, Shamir dorađenu nakon prvotnog uspješnog razbijanja) uspjeli «razbiti» ovakvu zaštitu. 5. a) Korištenje RSA Tipičan algoritam iz prve skupine je i najčešće korišteni algoritam javnog ključa, RSA. Algoritam započinje na sljedeći način. Izaberimo dva velika prim broja p i q. Nakon toga izračunamo n=p*q i z=(p-1)*(q-1). U slijdećem koraku uzimamo broj relativno prost broju z i nazivamo ga Još nam je jedino potreban e takav da vrijedi e*d=1 mod z. Kad smo izračunali sve ove parametre, spremni smo za šifriranje podataka. Prije svega potrebno je poruku P podijeliti u dijelove od kojih svaki sadrži najviše n znakova (obično se zbog toga uzimaju blokovi po k bitova tako da vrijedi 2k = n). Da bismo šifrirali poruku računamo C=Pe (mod n) a za dešifriranje je potrebno izračunati P=Cd (mod n). Za šifriranje RSA algoritmom potrebni su dakle e i n, a za dešifriranje d i n. Iz toga vidimo da se javni ključ sastoji od (e,n) a tajni ključ od (d,n). Sigurnost ove metode sadržana je u tome što je vrlo teško faktorizirati velike prim brojeve. Teoretski postupak izračunavanja RSA algoritma krajnje je jednostavan. Naime, faktoriziranjem n dobijemo p i q. Iz p i q vrlo jednostavno izračunamo z. Uz poznati z i e (koji je dio javnog ključa) Euklidovim algoritmom dolazimo do d i imamo i tajni ključ (d,n). Ipak, da bi se faktorizirao 200-znamenkasti prim broj potrebno je oko 4 milijarde godina, uz korištenje najboljeg mogućeg algoritma i računala s vremenom izvođenja instrukcije od 1 sec. 5. b) Korištenje DSA “Digital Signature Algorithm” se koristi za potpisivanje kao i za provjeru valjanosti već načinjenog potpisa. Svaki potpisnik posjeduje javni i tajni ključ. Tajni ključ se koristi u procesu stvaranja digitalnog potpisa, a javni ključ se koristi u procesu provjere valjanosti potpisa. U oba slučaja se algoritam primjenjuje na sažetak poruke, M, načinjen korištenjem “Secure Hash Algorithm” funkcije. Bez poznavanja tajnog ključa potpisnika nije moguće stvoriti valjan potpis, tj. nije moguće krivotvoriti potpis (u razumnom vremenskom periodu). Unatoč tome, svatko je u mogućnosti provjeriti valjanost potpisa korištenjem javnog ključa potpisnika. Prije korištenja DSA mora se utvrditi nekakva povezanost para ključeva (javnog i tajnog) sa korisnikom. To se obično ostvaruje već opisanim potpisivanjem javnog ključa od strane “povjerljive stranke” (engl. “trusted party”) uz prethodnu provjeru stvarnih fizičkih dokumenata. Slika 3. Uspješni završetak dogovora o digitalnom potpisu Zaključak Budućnost digitalnog potpisa je u svakom slučaju svijetla. Koja god tehnologija ili algoritam bili korišteni, teško je već danas zamisliti svijet računalnih mreža bez odgovarajućih algoritama autentifikacije. No unatoč tomu što je digitalni potpis dio računalnog svijeta koji se vrlo brzo mijenja i prihvaća novitete, pri oslanjanju na jedan od algoritama za digitalni potpis važno je razmišljati ne samo o današnjoj računalnoj moći, već i o nadolazećim računalima koja će eventualno biti dovoljno snažna za krivotvorenje potpisa pukom silom (engl. “brute force attack”). Druga, uvijek prisutna neugodna mogućnost je da već danas postoji način “razbijanja” kripto zaštite (isto tako i digitalnih potpisa) pomoću nekih brzih metoda faktoriziranja (velikih) prim brojeva, koje bi tad ugrozile ne samo kripto zaštitu algoritmima poput danas najraširenijeg RSA, već bi vrlo lako osporile i digitalne potpise (načinjene s RSA ili sličnim algoritmom). Ipak, dok se to ne dogodi (ako se ikad dogodi), ostaje nam vjerovati saznanjima današnje matematike koja kaže da je digitalni potpis praktički neprobojan ne samo danas, već i za desetljeća koja dolaze. LITERATURA: Slika 1. Princip digitalnog potpisa (http://images.google.hr/images?hl=hr&q=digitalni+potpis&um=1&ie=UTF-8&sa=N&tab=wi, Slika 2. Princip potpisivanja poruke (http://images.google.hr/images?hl=hr&q=digitalni+potpis&um=1&ie=UTF-8&sa=N&tab=wi, Slika 3. Uspješni završetak dogovora o digitalnom potpisu (http://images.google.hr/images?hl=hr&q=digitalni+potpis&um=1&ie=UTF-8&sa=N&tab=wi, Wikipedija- slobodna enciklopedija (23.03.2008)http://hr.wikipedia.org/wiki/Kriptografija preuzmi seminarski rad u wordu » » »