来源:上海樊伊电子科技有限公司 发布:2018-01-14 20:35
The Internet of Things opens up a new universe of connected and intelligent devices that can work together to provide virtually unlimited capabilities, and most of these new capabilities will be personalized. Much of the value of the IoT comes from the ability to customize products and services to a customera€?s individual, and immediate, needs. The greatest challenges to the IoT will come in securing confidential information from unauthorized access as well as authorizing access to only the information wea€?re comfortable divulging.
Fortunately, a method exists for securing our confidential information and communications while also authenticating the senders and receivers of the information with whom we wish to securely share. However, this method involves a great deal of mathematics, with complex cryptographic algorithms at the core. Lucky for us, these mathematical algorithms can be buried inside the electronic devices we use within the IoT so that we need not understand the details of a€?howa€? this cryptography is accomplished. However, it does help to have a bit of background on a€?whata€? these cryptographic algorithms do for us as well as the types of devices that can provide the security we need to protect us in the brave new IoT world.
Figure 1:The Internet of Things requires advanced security to protect our privacy. (Source: IStockPhoto.com)
One of the earlier uses of cryptography involved a familiar substitution code where one letter was substituted for another throughout a short message. If the receiver knew the substitution formula, perhaps a simple shift cypher where the a€?Aa€? in the message turned into a a€?Ba€? and the a€?Ba€? in the message turned into a a€?C,a€? it was easy to decode the message. Anyone seeing the encrypted message wouldna€?t know the contents unless they also knew the secret key. Unfortunately, these simple types of cyphers proved very easy to decode with just a few trial-and-error attempts.
In the modern digital world, it turns out we can use much more complex methods to encrypt messages a€” methods that use the powerful processing capabilities of computers, or even MCUs. These methods still use the familiar concept of a secret key and a cryptographic algorithm for encrypting messages, but can also use digital processing techniques (cryptographic mathematics functions) to make it very difficult to decrypt the message without the secret key. Unfortunately, the processing capabilities available using modern computers can also make it easier to break codes that are too simplistic. Thus, a need has risen to create codes that are too complex for even powerful digital computers to break using a€?brute-forcea€? (trial-and-error) approaches.
A common method for using mathematics to create difficult-to-break cryptographic functions is to find a math problem that is very difficult to solve, but one that can be solved much more easily with a a€?hint.a€? As an example, consider the product of two very large prime numbers. It can be proven that if you only know the product, it is time consuming to determine the two prime factors computationally. It also can be proven that the message can be encrypted using this product in such a way that it can only be decrypted quickly if the two prime factors (that is, the hint) are known. Moreover, these facts allow you to publish the product openly as your a€?publica€? key and anyone wishing to send you a secure message can use it with the knowledge that only someone who knows the prime factors can decrypt the message. If that person also has a public key you can respond to their message using their public key to encrypt your message, resulting in a secure communications channel! A common use of this secure channel is to send keys that can be used as shared secrets for other cryptographic algorithms that are still very robust, but require less computing power than the public key system.