Encrypt entire site - request access
There is no built-in way to do two-way encryption in Drupal, but there are two modules that will extend Drupal to support encryption:


Encrypt
AES


Encrypt:


Includes multiple encryption methods from simple to complex depending on libraries available on the server.
Focused on being a simple API that doesn't do much on its own.
Sub-module Field Encrypt let you use it to encrypt fields without coding (but beta only, no stable release of this one).
Uses CTools plugins for encryption methods and key providers.
Contains unit tests for all the features.
Stable Drupal 7 release, about 1400 installed sites.


AES:


Includes support for one encryption method (AES).
Built in functionality focused on two-way password encryption. Other uses requires coding by means of the API.
Requires use of the PHP extension mcrypt or the phpseclib (PHP Secure Communications Library) external library.
Has no built-in testing.
Stable Drupal 7 release, about 3000 installed sites.


You should be able to encrypt the entire site by using either of these modules and create a simple custom module that uses the hook system to encrypt content before it is stored in the datebase and decrypt as part of rendering content.

You may even do it without creating a custom module by means of Encrypt with sub-module Field Encrypt - if you find the beta-realese of the latter stable enough for your uses.

(PS: I can tell you how to restrict access as well, but that need to be a separate question).