O CPF é composto por onze dígitos, onde os dois últimos são os dígitos verificadores, que são criados a partir dos nove primeiros.
O cálculo é efetuado em duas etapas utilizando o número 11 como módulo divisor.
Para exemplificar melhor, iremos calcular os dígitos verificadores de um CPF imaginário, por exemplo, 123.123.123-XX.
Primeiro pega-se os nove primeiros dígitos multiplica pelo decréscimo de 10, depois some os valores obtidos.
Ex: soma = 1*10 + 2*9 + 3*8 + 1*7 + 2*6 + 3*5 + 1*4 + 2*3 + 3*2;
Agora pegue o resultado da soma e faça a divisão por 11.
Ex: divisao = soma / 11;
O resultado da divisão será 9 quociente e 3 de resto, faça a subtração de 11 pelo resto da divisão.
Ex: dv = 11 - 3;
O primeiro digito verificador será 8, agora multiplique 8 por 2.
Ex: digito = 8*2;
Agora vamos calcular o segundo digito verificador, dessa vez iremos multiplica os nove primeiros dígitos pelo decréscimo
de 11 e soma com o resultado de 8*2.
Ex: soma= 1*11 + 2*10 + 3*9 + 1*8 + 2*7 + 3*6 + 1*5 + 2*4 + 3*3 +8*2;
Agora pege o resultado da soma e faça a divisão por 11.
Ex: divisao = soma / 11;
O resultado da divisão será 12 quociente e 4 de resto, faça a subtração de 11 pelo resto da divisão.
Ex: dv = 11 - 4;
O segundo digito verificador será 7.
O resultado final será = 123.123.123-XX
Veja abaixo exemplo que fiz em php.