A device comprising: a processor; a memory configured to store (i) a plurality of driver-associated encryption keys, and (ii) for each of the plurality of driver-associated encryption keys, a corresponding driver identifier; the plurality of driver identifiers corresponding to respective drivers of a vehicle; an input device; and a communication interface configured to communicate with a vehicle diagnostic monitor and a remote server, the communication interface including cell-phone circuits, wherein the device is configured to communicate with the remote server directly over a wireless communication link between the device and the remote server, the processor configured to: receive, using the communication interface, a key assignment command from the remote server, the key assignment command identifying an encryption key and comprising a driver identifier; store the received driver identifier in association with the assigned encryption key; determine a current driver of the vehicle by receiving from the input device of the device data that identifies the current driver; select, as a current encryption key, one of the plurality of the driver-associated encryption keys that corresponds to one of the driver identifiers matching the data that identifies the current driver; collect, using the communication interface, vehicle data from the vehicle diagnostic monitor; encrypt the vehicle data using the current encryption key to produce encrypted vehicle data; and transmit, using the communication interface, the encrypted vehicle data to the remote server. a processor; a memory configured to store (i) a plurality of driver-associated encryption keys, and (ii) for each of the plurality of driver-associated encryption keys, a corresponding driver identifier; the plurality of driver identifiers corresponding to respective drivers of a vehicle; an input device; and a communication interface configured to communicate with a vehicle diagnostic monitor and a remote server, the communication interface including cell-phone circuits, wherein the device is configured to communicate with the remote server directly over a wireless communication link between the device and the remote server, the processor configured to: receive, using the communication interface, a key assignment command from the remote server, the key assignment command identifying an encryption key and comprising a driver identifier; store the received driver identifier in association with the assigned encryption key; determine a current driver of the vehicle by receiving from the input device of the device data that identifies the current driver; select, as a current encryption key, one of the plurality of the driver-associated encryption keys that corresponds to one of the driver identifiers matching the data that identifies the current driver; collect, using the communication interface, vehicle data from the vehicle diagnostic monitor; encrypt the vehicle data using the current encryption key to produce encrypted vehicle data; and transmit, using the communication interface, the encrypted vehicle data to the remote server. receive, using the communication interface, a key assignment command from the remote server, the key assignment command identifying an encryption key and comprising a driver identifier; store the received driver identifier in association with the assigned encryption key; determine a current driver of the vehicle by receiving from the input device of the device data that identifies the current driver; select, as a current encryption key, one of the plurality of the driver-associated encryption keys that corresponds to one of the driver identifiers matching the data that identifies the current driver; collect, using the communication interface, vehicle data from the vehicle diagnostic monitor; encrypt the vehicle data using the current encryption key to produce encrypted vehicle data; and transmit, using the communication interface, the encrypted vehicle data to the remote server.