Reconstructing the absolute counts from your information:
test set:
total cases correct cases correct approx. 95 % c.i. class 0 81 51 63 % 52 % - 73 % class 1 210 199 95 % 91 % - 97 %
Comparing the confidence intervals for sensitivity & specificity for the test set with the observed sensitivity & specificity for the cross validation, both CV results are actually within the confidence interval.
You can similarly compute confidence intervals for the cross validation results.
If all your models (LR, rF, ...) consistently show this difference, then I'd become suspicious on whether the test set does indeed differ in some important way from the training set.
You explain that you kept the last 20% for independent testing, and that may be cause of trouble if there's some drift in the data.
Whether this comparison of hold out and cross validation is the best option depends hugely on whether you have enough samples to afford setting aside the hold out set. You basically pay for the unbiasedness by much wider confidence intervals due to fewer test cases.
You can, however calculate beforehand whether the uncertainty of the holdout test allows you to draw the conclusions you need to draw.
If you need literature, we have a paper where we discuss this in more detail: Beleites, C. et al.: Sample size planning for classification models., Anal Chim Acta, 760, 25-33 (2013)
(also available on arXiv: 1211.1323)
You can calculate binomial confidence intervals e.g.in R by
library (binom) binom.confint (51, 81)
Side note: standard deviation over the cross validation folds is a somewhat awkward measure as it conflates model stability with test sample size.