TABLE 1: EFS Encryption Process Summary
Step in Sequence Process
1The user profile loads to the Registry, if necessary.
2EFS creates a log file named efsX.log in the System Volume Information subdirectory. X is a unique number in the filename (e.g., efs0.log). EFS writes to the log file when performing subsequent steps in the encryption process so that EFS can recover the file in case of system failure during the encryption process.
3Microsoft Base Cryptographic Provider generates a random 128-bit FEK for the file.
4EFS reads the HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\EFS\CurrentKeys\CertificateHash Registry value to identify the user's public key/private key pair.
5EFS creates a DDF key ring with an entry for the user and associates the key ring with the file. The entry contains a copy of the FEK that the user's EFS public key encrypted.
6EFS creates a DRF key ring for the file with an entry for each Recovery Agent on the system. Each entry contains a copy of the FEK that the Recovery Agent's EFS public key encrypted.
7EFS creates a backup file, efsX.tmp, in the directory in which the file undergoing encryption resides. X is a unique number in the filename (e.g., efs0.tmp).
8EFS places the DDF and DRF key rings in a header and adds the header to the file as the file's EFS attribute.
9EFS marks the backup file as encrypted and copies the original file to the backup file.
10EFS destroys the original file's contents and copies the backup to the original file. The copy operation results in the data's encryption, because the backup file is marked as encrypted.
11EFS deletes the backup file.
12EFS deletes the log file.
13The user profile unloads from the Registry if it loaded in step 1.