The biggest problem with Digital Rights Management and/or Technical Protection Measures is that the biggest proponents of such schemes don’t understand the technology. For that reason I’m going to try to explain it in simple terms, that a non-programmer can understand.
I’ve programmed for a long time. I got my start using punch cards on an IBM mainframe, before Microsoft’s 1975 founding. I’ve worked on a variety of operating systems, on a variety of hardware. This doesn’t mean that I’m the world’s best programmer. I’m not. It’s just that I’ve been around long enough, and done enough things that I understand things that the average computer user doesn’t have the background to understand, just like a lawyer is going to understand law better than I will. I’m going to try to explain things as simply as possible, and I will include some examples using Beginner’s All-purpose Symbolic Instruction Code (BASIC). BASIC was designed to be human readable. A non-programmer can understand most of BASIC by looking at it.
DRM/TPM adds one or more levels of inefficiency into a system. In certain cases you want to add a level of inefficiency. An example would be in on-line banking, where the level of inefficiency added by identity management is a social necessity.
In computer operating systems, a certain level of inefficiency, like sign on ID, password, and access level, is considered a basic necessity. Too much adds costs to the system and slows operations.
A good example is Microsoft’s Windows Vista operating system, which added very little functionality over the earlier Windows XP operating system, but which required a far more powerful computer to run because of the new DRM sub-system. Microsoft’s competitor Apple was actually able to improve operating system performance of OS X during that time so that newer versions ran faster than older versions on the same hardware. Other operating systems (especially Linux) outperform both OS X and Windows now, which is why most of the world’s supercomputers use the Linux operating system.
Basic DRM/TPM often runs only once, during program start up. Such simple systems as this don’t need a lot of processing power, but are less secure. It is possible for a cracker to bypass the DRM/TPM in one place, and have a fully functioning program.
The more complex the DRM/TPM system, the more processing power is needed. The Windows Vista DRM sub-system mentioned above was far more complex, and required far more processing power. The greater the processing power required for a system to work, the greater the electrical power .
For all the examples we are going to assume that each command uses ONE unit of power. This is for illustrative purposes only. Different computer processors require differing amounts of power for the same operation, and at different speeds. This is a vastly simplified explanation.
Let’s look at an example:
10 PRINT “Hello World”
This is the first program that many programmers wrote. It’s simple – it includes a single command – ‘PRINT‘ The Print command starts at the first space to the right of the first quotation mark and displays the character on the screen, and continues displaying the characters one after another until it reaches the second quotation mark. There are eleven characters between the quotation marks (the space is a character) so that one line program uses ELEVEN units of power.
Let’s change the program a bit.
10 LET variable=1
20 PRINT “Hello World”
40 IF variable<11 GOTO 20
In the above five lines we’ve set up a simple loop, which prints ‘Hello World’ ten times. The first line sets up a variable, and assigns it the value of ONE. The second line prints ‘Hello World’. The third line adds ONE to the variable. The fourth line checks the variable, and if it’s less than TEN sends the program back to the second line. The fifth line stops program execution. Let’s take a look at the costs to run this program.
Line 10 – costs 2 units
Line 20 – costs 11 units
Line 30 – costs 2 units
Line 40 – costs 3 units
Line 50 – costs 1 unit
Lines 20, 30, and 40 run 10 times each, so that’s 16*10=160 units. Lines 10 and 50 run once each for a total of 3 units. The total number of units to run the program is thus 163 units. If you ran the original program 10 times, the cost to run it would be 110 units, 53 units less, however you would need to manually hit the run button 10 times, so the second program is more efficient.
In a simplified LOGON procedure the user has to enter their USER NAME and PASSWORD, at which time the operating system checks the USER NAME to see if it exists, then checks the password to see if it’s entered correctly, and then assigns the user the access level specified. The password file is encrypted using a one way algorithm, in simple terms if your password is ‘PASSWORD’ the LOGON routine will apply the encryption routine to it, and check the result, which might be “XPALADOC” against the encrypted password stored in the file. Remember, this is vastly simplified. In very general terms this is how it works. The cost to run a simple, stripped down LOGON routine like I’ve illustrated would be 1500-2000 units. Real World LOGON routines will be a lot more complex.
The two program examples about don’t do much. The LOGON procedure doesn’t do much either, without an operating system. The basis of an operating system is the KERNEL. The current Linux KERNEL has 2.4 MILLION lines of code. You need to add a DESKTOP, a NETWORKING STACK, etc. A study in 2007 found that Ubuntu, a linux variant, consisted of 121,000,000 lines of code, if Office suite, image editors, optical disk burners, etc. was installed. That’s a lot of code.
Now we turn around, and we add a DRM/TPM sub-system. I’m specifically targeting Windows Vista, because there are some excellent explanations of the VISTA DRM/TPM sub-system. The information that I’m using is from people whose explanations seem correct.
In Windows Vista the DRM/TPM sub-system, the operating systems makes checks on the physical components, to make sure that they meet content protection standards. So that it isn’t possible to divert a copy of the work that is playing, to another port to backup to disc. For example if I was playing a Blue-Ray disk under Windows Vista, or Windows Seven, both work in the same general way, the operating system would ‘poll’ the components used during playback to make sure that they meet the standards required. It does this every so many milliseconds, and the check is not a simple one, it doesn’t just ask the device what it is, it then runs a series of tests (diagnostics) to decide if the device was modified. What if I had added extra ports to my monitor so that I could then copy the video feed to my hard drive? Its supposed to detected modifications like this.
Remember our programming examples above? Simple DRM/TPM systems like the ones I used to write would run once per program (at startup). The most complex DRM/TPM system that I wrote, which was a multiphase DRM system, could in theory have executed one hundred times during the program run, depending upon the users menu choices. Each check would have used up about 4000-5000 units. This was a very simple DRM system. I’ve never seen the source code of the system Microsoft implemented in Windows Vista. I do know that the DRM/TPM sub-system runs all the time, so that its called into action the second someone puts a Blue-Ray disc into the drive.
Let’s assume that it runs every ten milliseconds – or one hundred times per second (to make the math easy). Let’s assume that if no ‘protected content’ is in use, that the system makes only minimal checks, that it’s twice as complex as the most complex DRM/TPM that I wrote, which was pretty simple, so it takes 10,000 units to run. Since it runs 100 times, that’s 1,000,000 units. Assume that it’s ten times more complicated if a Blue-Ray (or HD-DVD) disc is in the drive, in which case we use 10,000,000 units per second. You watch a ninety minute movie, so the DRM/TPM sub-system uses 900,000,000 units while you watch it. During the same time, if you weren’t watching a movie, the computer still would have used 90,000,000 units.
On newer computers the checks happen so quickly you don’t notice the slowdown. On the computers available when Windows Vista first came on the market the slowdown was noticeable.
There’s power usage to consider as well. Of course if the DRM/TPM sub-system didn’t exist, you would use less power.
This is where DRM/TPM have an impact on Climate Change. In the United States over fifty percent of electrical power is generated by burning coal. Every extra CPU (Central Processing Unit) cycle burns a small bit of coal. With the huge number of computers in the United States the extra amount of coal consumed per year is significant.
There are a lot of people who don’t believe in climate change, including people in the Canadian government. But there’s also your expenses. How much extra money are you spending on electricity every year because of an inefficient system?
The amount of wasted power varies by computer. Intel, AMD and VIA make X86 and X86-64 processors. These processors use more power for the same operations than ARM or MIPS processors (which is why your cellphone has an ARM processor). Changing the supporting chips changes the power used too. The newest NVidia Graphics Processors are supposedly spectacular power hogs. If you use an Intel integrated graphics chip instead the system’s power consumption will drop, with a loss of capabilities. Most large companies buy server computers that designed for power efficiency, home and small office computers aren’t necessarily as efficient. Add DRM/TPM to a system that is less efficient, and the DRM/TPM waste will be worse.
If the Canadian Government, and the Opposition parties are serious about Climate Change, they need to consider the effects of DRM/TPM. I know, that if asked, the MPAA/MPA/RIAA/CRIA companies will claim either that DRM/TPM uses no power, or that its use is insignificant. I say otherwise. The answer is to have one of our large universities carry out a peer-reviewed study of computer power usage, with and without DRM/TPM. The study should cover Tablet Computers, Mobile Phones, DVD Players, and other devices which use DRM/TPM. This needs to happen before the introduction of new copyright legislation. Otherwise Canadians may find ourselves with two sets of legislation at cross purposes.
Tuesday May 11, 2010
Note: This article was updated Thursday April 7, 2016 when I noticed that some of the text had shifted colour. I’ve changed the WordPress theme, and that may be the reason. I know it wasn’t shifting colours when originally published. WB