The Diffie-Hellman Key exchange is one of the older (and consequently simpler) asymmetric key exchange protocols. There are few better ways to understand the basic principles of asymmetric key exchange.
Diffie Hellman is a technique which produces a shared symmetric key based on asymmetric values. That is, without access to both ends of the
SQL, as we have already established, is built on collections of tables. These tables can be linked together by queries to form increasingly complex tables, which allows us to draw conclusions that would otherwise be extraordinarily difficult to obtain.
There are some very powerful (yet weird) things we can do to create more useful queries.
As we design functions, we have to consider how they will work in the real world. There are two common considerations as we compare solutions:
Time complexity - The amount of time it will take for our solution to complete
Space complexity - The amount of memory that our solution will consume
Unfortunately, because we can't afford
What's the first thing you think when I say the word: Pointer. Generally, you either think of a particular register (unlikely) or a hexadecimal number representing a location in memory (likely). Personally, I'm in the latter category, which is why this problem arose.
I was in the middle of programming, and I decided to allocate
Pointers are numbers, which means we can use math to change where they point. For example, in an array we store the pointer for index 0, then add to it in order to find the later indexes. For example, if we store a uint32_t (32-bit integer) array at the address location 0x8FFFFF00, the
We've looked at the basics of performing basic math in C, but there are a few more things we should discuss before we write any code.
We know that there are many different kinds of numbers. For example, we have signed numbers (which can be positive or negative) and unsigned numbers (which are assumed
If we're being honest, we don't start programming because we want to print out clever one-liners to a terminal. We want to calculate something complicated or massive, and we want to do it quickly.
Variables, functions, and symbols
We all know what a number is, right? We may behind many countries in mathematics and science, but
This section should wrap us up on binary for now.
Floating Point Numbers
Up until this point, we have dealt exclusively with integer representation binary. Everything we have done has been a whole value, with no fractions.
Floating point numbers are those fractions. More accurately, it is a number whose values can be between one and zero.
Apologies for the title, but I can't think of a better way to put it.
The simplest way to handle integers in binary is to treat every number as a positive number. This is called the unsigned integer representation. With the exception of subtraction, studied earlier, we have always used the unsigned integer representation before.
In my last post, we discovered binary as a form of numeric representation. Like decimal, we can perform basic arithmetic operations with binary (and, consequently, hex).
We all know that 1 + 1 = 2, right? In binary, 1 + 1 = 10, as 10 is the binary representation of 2. By the same token,