In computing, time is counted as signed
integer - a number of seconds that has passed from January 1st 1970 at 00:00h
(12:00h AM). To go in the past (before 01/01/1970) a negative number must be
used. This is commonly known as "Unix Timestamp".
Only 32 bits are used to store
"words" in 32bit processor technology (a "word" can be
anything, from data to mathematical or logical instructions). Having 32 bits or
binary places and using one bit for sign, as this is signed number, we have a
span from -2³¹ to 2³¹-1 which is, translated to decimal notation, a span from
-2,147,483,648 to 2,147,483,647.
So, when a number of seconds passed from
Thursday, January 1st at 00:00:00 passes a number of 2,147,483,647 or 19th of
January 2038 - all computers using this technology will have their date set
back to 13th of January 1901! No one knows what can happen with security
systems driven on 32bit technology.
There is no universal solution for this
problem for existing systems. While 64bit systems are not affected by this issue,
all 32bit systems using "Unix Timestamp" to store time will be
affected. They can switch to unsigned integer numbers, but then the span will
be only from 1970 to year 2106, so it's unusable if those systems need to use
dates before 01/01/1970. Hopefully all systems will switch to 64bit technology
by year 2038, but that's probably impossible for some embedded systems.