I am a Software Development Engineer in Test working for the Windows Sound team. You can contact me via email: mateer at microsoft dot com
Friend key: 28904932216450_59cd9d55374be03d8167d37c8ff4196b
I'm reading Joan Daemen and Vincent Rijmen's book The Design of Rijndael and I'm giving myself a refresher course on group theory.
Key to the encryption standard is the Galois field on 256 elements GF(2^{8}). A multiplication table of 256 elements by 256 elements quickly becomes a wall of text, so let's reason by analogy and look at GF(2^{2}).
There are a number of ways to represent elements of the field; we'll start by representing them as polynomials with degree at most 1, and with integer coefficients modulo 2. There are four such polynomials: {0, 1, x, x + 1}.
Here are the addition and multiplication tables:
Hold on. What's that funny-looking m?
It's a "reduction polynomial" which brings the product back down to degree 1 or less. It has to be a polynomial of degree 2. There are four such polynomials: let's try each and see what we get.
Note that the first three polynomials all factor into products of lower-degree polynomials: x^{2} = x(x), x^{2} + 1 = (x + 1)(x + 1), x^{2} + x = x(x + 1). Only x^{2} + x + 1 is prime; and this prime reduction polynomial generates a complete multiplication table with no 0s. This is a necessary condition to be a field. Our final tables are:
We can also write our elements in binary form: 0 => 00, 1 => 01, x => 10, and x + 1 => 11. In this notation our tables become:
Rijndael works in GF(2^{8}) and uses a reduction polynomial of x^{8} + x^{4} + x^{3} + x + 1. They say this is prime. I sure hope so.
A common convention within Microsoft when going out of office is to create two calendar appointments in Outlook:
I'm always forgetting one of the steps under 2., so I'm creating this blog post. Next time I go out of office I'll remember to check this post.
Last time we talked about why a full-scale digital sine wave has a power measurement of -3.01 dB FS (Spoiler: because it's not a square wave.)
This time we'll discuss why an atmospheric sound which generates a root-mean-square pressure of 1 Pascal has a power measurement 94 dB SPL.
As before, dB is defined as 10 log_{10}(P_{A}^{2} / P_{B}^{2}) where P_{B} is a reference level.
Before, we had a digital measurement with an obvious ceiling: sample values of -1 and 1. So the reference point 0 dB FS was defined in terms of the signal with the greatest possible energy.
In the analog domain, there isn't an obvious ceiling. We instead consider the floor - the quietest possible signal that is still audible by human ears.
This is a rather wishy-washy definition, but the convention is to take P_{B} = 20 μPa = 0.00002 Pa exactly.
So our 0 dB SPL reference point is when P_{A} = P_{B}: 0 dB SPL = 10 log_{10}(0.00002^{2} / 0.00002^{2}) = 10 log_{10}(1) = 10 (0) = 0.
What if the pressure level is 1 Pascal? This is a quite loud sound, somewhere between heavy traffic and a jackhammer.
1 Pa in dB SPL =
10 log_{10}(1^{2} / P_{B}^{2}) =
20 log_{10}(1 / P_{B}) =
-20 log_{10}(P_{B}) =
-20 log_{10}(2(10^{-5})) =
-20 (log_{10 }2 + log_{10 }10^{-5}) =
-20 ((log_{10 }2) - 5) =
100 - 20 log_{10 }2 ≈ 93.9794 dB SPL
So 1 Pa is actually a tiny bit less than 94 dB SPL; it's closer to 93.98 = (100 - 6.02) dB SPL.